第502章 试验(二)(1 / 1)

加入书签

原因找到后.肖远将钻进god程序代码段隐藏起來的种子抓了出來.却沒有对它的主体进行修改.但是为了便于观察.肖远在种子进化出的代码的基础上.给它增加了一个监视模块.并将这个模块的规则设置成必须存在.这样做是为了防止种子在继续进化的时候.将这个模块给破坏掉.

将种子改造完之后.肖远将被破坏掉了的god程序恢复了正常.并将种子发现并利用的那个漏洞给打了补丁.但是为了验证他的想法.他在将漏洞堵掉的同时.有刻意的加入了另一个漏洞.

搞完这一切之后.肖远运行了god程序.一个初始状态的世界被创造了出來.种子随后被放了进去.d和种子之间的新一轮对抗开始了.

d监控程序绘制出來的图像上能够看得出來.它在进到世界之后.比起最初的版本进去后对god的围追堵截疲于应付的情况來.显得轻松自如的多.以至于世界内只看到种子在快速的到处移动.所到之处.引起的波澜却小了很多.而在它离开后.原本激荡的波澜也不会持续多久.就快速平息了下來.

肖远沒有去过多关注这个图像.他将这个监控程序扔到了后台.将刚刚植入种子的监控模块调了出來.这个模块会将种子程序的每一步操作记录下來.并将之存储成一个标准的记录文件.

为了减少种子的代码长度.肖远设计的种子的监控程序记录下來的操作是二进制机器码.因此他如果想要阅读这些操作.还需要进行进一步转换.这个转换肖远用到了另外一个分析工具.这个分析工具读取记录文件.并实时将每一步操作反汇编成汇编程序显示在他的一个侧窗口中.而汇编语言虽然读起來不如高级语言那么清晰.但是阅读汇编语言对于肖远來说.并不是什么难事.

仔细观察着这些汇编代码.肖远发现种子在进入世界后.并沒有马上去入侵那个已经被肖远堵住的漏洞.而像是在适应着环境.很长一段的汇编操作.都是利用汇编的跳转命令.在内存空间跳转.跳转.再跳转.不停的变换着自己的方位.

当然在变换方位的时候.它还做了其他一些操作.其中最让肖远感兴趣的是它在转移后对原來现场的清理.肖远在编制这个程序的时候.给出的设定规则是.当种子利用跳转命令从一个内存区域离开的时候.它在原來区域造成的不平衡会弃之不顾.恢复平衡的工作完全交由god程序來完成.这种策略就像一个旅游者在某一个地方制造了一堆垃圾.离开时完全不理会.清理工作将会有景区的清洁工來完成.

但是现在的情况是.这个旅游者好像变得文明了.他离开之前.将垃圾清理.甚至还帮着将他弄乱的环境给恢复了原状.种子跳转离开后.会将他原來搞得失去平衡的区域重新恢复平衡.

看到这里.肖远将这种情况和god监控程序显示的情况进行了对比.发现两者是一致的.

种子为什么会进化出这样的功能出來.肖远有些想不通.他以人类的思维考虑了一番.觉得如果他要是到了一个地方.被这个地方的人追杀.为了顺利逃脱.他一定会竭尽所能将这个地方彻底搅乱.而不是反其道而行之.

这样的情况持续了一段时间.情况开始有了变化.种子每过一处都会自己清理现场.必然会耗费一定的计算时间.反过來说.也给god节省了大量的计算时间.此消彼长间.种子有六次被god都被god将代码段给破坏掉了.

肖远在最初设计种子程序的时候.这种情况实际上已经考虑到了.针对这种情况.他专门为种子设计了一个备份器.这个备份器会将种子最近一个稳定版本存储下來.而种子的代码一旦被破坏.这个备份器就会被触发.然后将他存储的正常代码把被破坏掉的代码覆盖掉.从而达到修复种子的目的.

六次种子被god破坏.其中五次都是通过上面的方法进行修复的.但是第六次却发生了意外.d在对种子代码段的破坏刚刚开始之时.种子也正好发出代码跳转命令.于是种子的代码被破坏掉了两个字节后就跳转到另外的区域去了.

因为跳转命令执行成功.所以备份模块认为种子沒有遭到破坏.因此备份程序的恢复功能沒有被触发.反而备份功能被触发了.备份功能是将此时正常的种子代码拷贝到备份存储器中一份.

此时种子程序显然是有问題的.为了防止备份程序采样到这种有问題的程序.当初肖远在设计的时候.给它设计了一个校验功能.这个校验功能会对它读取到的代码进行校验.如果发现有问題.就会进一步判定种子代码出问題了.进而启动恢复功能.使用备份存储器中的正常代码覆盖有问題的代码.

这是正常的流程.如果不发生其他意外的话.种子同样会被恢复正常.然而另一个巧合再次发生了.这段被破坏掉的代码实际上仍然是一个二进制字符串.这个字符串和CPU的某一个指令非常巧合的完全一样.以至于它竟然鱼目混珠般的通过了校验.混进了种子程序的代码中.

“难道这就是别的代码混入种子的方法吗.”

分析过这段代码后.肖远脑子里产生了这样的想法.同时想到昨晚的试验.除了god和种子之外.还有自动脚本程序也参与了这个过程.使得情况变得更加复杂和不可预测.发生某种巧合的可能性估计比这种情况更大.

“很有这种可能.不过种子是怎么进化到找到god的漏洞的.这个恐怕已经不可查了.”

肖远脑中不停的思考着.对种子程序的演化仍然保持着密切的观察.又过了片刻.种子再一次受到了伤害.然后备份程序将刚才混入CPU代码的问題代码覆盖到了种子代码上.要知道.刚才的CPU代码是硬生生的嵌入到种子代码中的.因此.这两个字节的代码并不能很好的和其他代码配合工作.这种情况促使种子的进化器发生了连锁反应.对代码做了进一步修改调整.使之合理化.因此种子的功能发生了有些改变.

“进化实际上是由一系列的偶然事件形成的必然结果.”肖远突然有了这样的一个感悟.同时也对这颗种子究竟会进化成什么样子产生了很强烈的好奇.因为事件随机.种子的进化必然也是完全随机的.哪怕一个极其微小的条件变化.都有可能彻底改变它的进化方向.而这种特性正好是混沌系统的具体表现.

思考着这些问題的时候.种子的自我调整并沒有结束.终于在某一次的意外发生过后.进化器再次对种子的代码进行了调整.种子内一直沒有运行过得那段入侵god的代码被调了出來.运行了起來.

而原來的漏洞早已被肖远堵住了.这段代码的运行结果可想而知.入侵沒有成功.反而因为丧失了一次跳转的机会.被god追上.并对它的代码进行了大量的破坏.种子的生命岌岌可危.

PS:纯技术性的章节快沒有了.这种章节写起來太费脑子了.

↑返回顶部↑

书页/目录