标题:写这个超级简单的程序,c语言可以吗
只看楼主
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
得分:0 
回复 9楼 外部三电铃
单个的程序威胁到整个系统,可能性是必然有的,但是概率基本是等于0的。就像黑客帝国里面,救世主的产生是必然,但也不是随便就产生的。
2019-01-08 21:26
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:0 
看起来很有意思啊。

saber,别哭.
2019-01-08 21:57
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
回复 10楼 wuji158
你选择高级语言写还是机器码?最好是机器码,因为高级语言还要涉及到编译。假设你的程序是C语言写的。如果要求程序可以变异,那么至少得做出这么几件事:

1. 内嵌/找到这个程序的C源代码
2. 做出一点修改
3. 调用编译器
4. 执行编译后的程序

问题在于,怎么做出修改,使得:
1. 新的程序仍然能够找到自己的源代码(光这点就至少不是“随机”修改)
2. 修改之后仍然能过编译
3. 修改的“随机性”必然不能破坏上面的四件事的大体框架,不然做出的程序就没用了

这样的修改不是不能做,但是显然不随机了。产生出来的都是一模一样的二代程序,没意义。

这是因为C语言写的程序类似人类,是“高级生物”,你蚯蚓切一刀能活,细胞还能分裂,但是具有完整功能的人类切一刀只能死掉。

所以,这样的程序只能用机器码写,这才能保证即使是随机修改,程序依然能够执行。

但是,机器码的程序随机修改之后,还能继续保持功能的概率是非常非常低的,别说去睡个觉吃个饭,你计算机跑1000年大概也不容易能有哪怕一个稍微有点儿功能的程序(文中那个“22字节程序”)

毕竟,在这个地球上,从氨基酸到原核细胞,再到真核细胞,“随机”的时间都是按照10亿年为单位算的,而原始汤中的化学反应,进行的可比计算机快多了……



专心编程………
飞燕算法初级群:3996098
我的Blog
2019-01-10 00:43
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
得分:0 
回复 13楼 StarWing83
谢谢大神的指导,我也是想用机器猫写,机器码的学习如何入手啊
2019-01-13 14:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492560-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015741 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved