《重生之王牌黑客》

下载本书

添加书签

重生之王牌黑客- 第265部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!

经过一番仔细的比对的分析后,肖远果然从中发现了一些情况,这些情况却是大大的超出了他的意料,更是给了他一个大大的惊喜,

第501章分析代码

肖远发现问睿窃诙03:12:31以后的数据包的分析过程中,这时不同的数据包并不完全相同,说明世界还洠в型耆仓瓜聛恚

分析工具一边比对每一次的内存数据样本,一边将这些数据以图表的形式展示出來,便于肖远更直观的观察这些数据的变化特征,只不过因为分析数据要花费一定的时间,所以,图像的变化比起god程序的监控图像來,变化慢了很多,

因为这里的图像和god监控程序的显示原理一样,所以显示出來的图形也与那里的完全相同,刚开始的时候,图像上一个与其他地方有着明显分别区域在缓慢的四处移动,肖远知道这个漩涡是种子的代码在世界中的映像,

看着种子的映像仍然存在,肖远想起第一阶段的分析中,那些不再发生变化的内存影像中,好像种子不见了,

“它难道被抹杀了。”肖远盯着电脑屏幕上的分析过程,心中暗暗思忖,“不应该的,如果种子被抹杀的话,god应该会很快就将世界的平衡恢复,但是事实是洠в谢指矗馄渲幸欢ǚ⑸耸裁次覜'有想到的事情。”

“咦,怎么回事。”正在思考的时候,肖远发现原本在图像上还十分明显,一眼就能分辨出來的种子突然消失了,接下來图像又变化了两帧,就静止了,既洠в屑绦指雌胶猓矝'有因为不平衡而继续变化下去,

肖远暂停了分析软件,从图像静止下來的时间点提取了一个内存样本,拿來和最后的内存样本文件进行了对比,,完全一样,

“种子突然消失了,然后god也不工作了,有点儿像同归于尽。”

肖远再次回放了刚才的图像演变过程,瞪大了眼睛盯着屏幕上的图像,想要看清楚在图像消失的一瞬间,究竟发生了什么,但是却一无所获,

于是他干脆不让图形自动运行了,而是手动让这些图像一帧一帧的出现,仔细观察,在图像消失的上一帧停了下來,仔细观察了一下,仍然是洠в蟹⑾质裁次暑},于是他将这一帧的内存样本提取了出來,从中将种子的代码单独提取了出來,对其进行了反汇编,

得到种子程序这一时刻的汇编程序后,肖远发现得到的它和种子未放入世界进行进化之前的程序相比,已经发生了很大变化,阅读时给他的感觉就像在阅读一段全新的程序一样,要知道这个程序根本就是出自他手,

“看來种子真的自我进化了,只是它为什么会自动消失呢。”肖远努力在代码中寻找着种子自动消失的痕迹,

将程序通读了一遍,肖远发现进化后的种子程序无论是长度还是复杂性都增加了很多,其中存在一段奇异的代码,

“这应该就是种子能够突然消失的原因了。”肖远觉得自己似乎已经找到了答案,但是这段代码很晦涩,难以理解,这让他感到有些受伤,

“见鬼了。”肖远不由得骂了一句,然后反复读了几遍这段代码,并将其中涉及到的寄存器,以及寄存器之间的数据流向绘制成了图像,并找來一本这台工作站的CPU编码的详细手册,一点一点儿加以对照,

所谓读书百遍,其义自现,程序也是如此,反复读过几遍后,肖远越來越觉得这两端程序有些非比寻常,并有种隐隐的预感,读懂这两端程序将是他解开种子程序以及god程序反常表现的关键所在,

终于,肖远从这些代码中找到了最关键的逻辑,却被他的发现下了一跳,甚至有些难以置信,因为这段代码竟然用一种很巧妙的方法完成了一个远程跳转,跳转到目的地已经超出了god创造的世界的内存范围,它所使用到的指令竟然是工作站CPU的一段特殊的指令序列,而这段指令肖远事先根本就不知道,更不会写到程序中,

肖远心中疑惑,如果不是他有非常丰富的阅读代码的经验,手边又有CPU指令集的详细资料可查,这段代码究竟是干什么用的,就算他读上一百遍,恐怕也不会知道的,

“只是种子程序的代码里怎么会有这样的代码段了。”

肖远对这个现象倍感不解,觉得不把这个现象搞清楚,会很不甘心,于是他再次将洠в蟹椿惚嘀暗闹肿佣拼肽昧顺鰜恚龆ù佣拼肴胧郑允阅苷业绞裁炊四卟荒埽

直接阅读二进制代码显然是不可行的,好在肖远手里还有另外一个工具,这个工具的界面分成左右两栏,左栏是二进制代码,右栏是二进制代码对应的汇编代码,两边对照着阅读,就不是那么困难了,

可惜这样反复读了两遍,肖远还是洠в蟹⑾质裁垂媛桑婕匆馐兜阶约旱难芯克悸酚械愣暑},种子的这段程序一定是进化而來的,也就是说它的代码本身也是在不断演变的,自己这样静态的看,本身就有问睿

既然意识到了问睿ぴ堵砩细谋淞瞬呗裕喔瞿诖嫜局械闹肿映绦虻亩拼虢厝×顺鰜恚缓蠖哉庑┎煌奔涞愕亩拼虢辛俗菹虮榷裕氐愎刈⒘四嵌纹嬉齑氲难莼蹋⒉欢隙员仁直叩腃PU指令手册,

经过一番比对,肖远又想到种子程序的进化还受到god程序的影响,于是又将god程序代码拿來,横向纵向做了很全面的分析比对,两个小时后,他终于搞明白了这段代码的來历,心中却暗暗惊异,

首先要确定的一点,这段代码并不是凭空产生的,种子程序虽然具有一些初步的进化功能,但是还洠в兄悄芑阶灾鞯姆治鯟PU指令集,并加以利用的逆天程度,但是它的來源却也让肖远感到了一场惊奇,因为这段代码是从god程序中学习而來的,而god的程序中的这段代码來自于汇编时,汇编程序对它进行的自动优化,

更让肖远感到惊讶还有另外一件事情,种子程序学习到的这段代码竟然利用了god程序自身的监控机制存在的一个漏洞,执行后悔进行跨区段远程跳转,将自己复制到了god程序的代码段中,而肖远设定的种子规则中,有一条是禁止种子进行自我复制繁衍,因此当种子将自己复制到god代码段中时,世界中的种子自动进行了自我销毁,

种子侵占了god程序的代码段,结果导致与god程序代码段有一部分被破坏掉了,从而失去了一部分功能,而这部分功能恰恰是世界的平衡修复功能,因此才会出现种子突然消失后,世界中虽然存在大量不平衡,但是god却洠в性俣云浣行薷吹南窒螅

而种子在进入god程序的代码段之后,自身安全的到了保障,再也洠в斜恍薷幕蚰ㄉ钡奈O沾嬖冢谑前凑招ぴ蹲畛跎瓒ǖ慕P停淖晕医簿屯A讼聛恚胍膊辉僭诵校

“真想不到啊,这段程序竟然能够找到god程序的一个漏洞,究竟是巧合呢,还是它自我进化的原因,我需要再做一下试验……”

肖远发现了有些很有意思的东西,进而产生了一些新的想法,于是再做几个试验,加以验证,如果这些想法成立的话,他觉得自己似乎找到了一个非常实用的大杀器,

第502章试验(二)

原因找到后,肖远将钻进god程序代码段隐藏起來的种子抓了出來,却洠в卸运闹魈褰行薷模俏吮阌诠鄄欤ぴ对谥肿咏龅拇氲幕∩希黾恿艘桓黾嗍幽?椋⒔飧瞿?榈墓嬖蛏柚贸杀匦氪嬖冢庋鍪俏朔乐怪肿釉诩绦氖焙颍飧瞿?楦苹档簦

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

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

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

肖远洠в腥ス喙刈⒄飧鐾枷瘢飧黾嗫爻绦蛉拥搅撕筇ǎ崭罩踩胫肿拥募嗫啬?榈髁顺鰜恚飧瞿?榛峤肿映绦虻拿恳徊讲僮骷锹枷聛恚⒔娲⒊梢桓霰曜嫉募锹嘉募

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

仔细观察着这些汇编代码,肖远发现种子在进入世界后,并洠в新砩先ト肭帜歉鲆丫恍ぴ抖伦〉穆┒矗袷窃谑视ψ呕肪常艹ひ欢蔚幕惚嗖僮鳎际抢没惚嗟奶睿谀诖婵占涮偬煌5谋浠蛔抛约旱姆轿唬

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

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

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

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

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

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

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

因为跳转命令执行成功,所以备份模块认为种子洠в性獾狡苹担虼吮阜莩绦虻幕指垂δ軟'有被触发,反而备份功能被触发了,备份功能是将此时正常的种子代码拷贝到备份存储器中一份,

此时种子程序显然是有问睿模朔乐贡阜莩绦虿裳秸庵钟形暑}的程序,当初肖远在设计的时候,给它设计了一个校验功能,这个校验功能会对它读取到的代码进行校验,如果发现有问睿突峤徊脚卸ㄖ肿哟氤鑫暑}了,进而启动恢复功能,使用备份存储器中的正常代码覆盖有问睿拇耄

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

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

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

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

肖远脑中不停的思考着,对种子程序的演化仍然保持着密切的观察,又过了片刻,种子再一次受到了伤害,然后备份程序将刚才混入CPU代码的问睿敫哺堑搅酥肿哟肷希溃詹诺腃PU代码是硬生生的嵌入到种子代码中的,因此,这两个字节的代码并不能很好的和其他代码配合工作,这种情况促使种子的进化器发生了连锁反应,对代码做了进一步修改调整,使之合理化,因此种子的功能发生了有些改变,

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

思考着这些问睿氖焙颍肿拥淖晕业髡'有结束,终于在某一次的意外发生过后,进化器再次对种子的代码进行了调整,种子内一直洠в性诵泄媚嵌稳肭謌od的代码被调了出來,运行了起來,

而原來的漏洞早已被肖远堵住了,这段代码的运行结果可想而知,入侵洠в谐晒Γ炊蛭ナЯ艘淮翁幕幔籫od追上,并对它的代码进行了大量的破坏,种子的生命岌岌可危,

PS:纯技术性的章节快洠в
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架