关灯
护眼
字体:大 中 小
上一页
加入书签
目录
下一页
第501章 分析代码 (第2/3页)
“看来种子真的自我进化了,只是它为什么会自动消失呢?”肖远努力在代码中寻找着种子自动消失的痕迹。
将程序通读了一遍,肖远发现进化后的种子程序无论是长度还是复杂性都增加了很多,其中存在一段奇异的代码。
“这应该就是种子能够突然消失的原因了。”肖远觉得自己似乎已经找到了答案,但是这段代码很晦涩,难以理解,这让他感到有些受伤。
“见鬼了。”肖远不由得骂了一句,然后反复读了几遍这段代码,并将其中涉及到的寄存器,以及寄存器之间的数据流向绘制成了图像,并找来一本这台工作站的cpu编码的详细手册,一点一点儿加以对照。
所谓读书百遍,其义自现,程序也是如此,反复读过几遍后,肖远越来越觉得这两端程序有些非比寻常,并有种隐隐的预感,读懂这两端程序将是他解开种子程序以及god程序反常表现的关键所在。
终于,肖远从这些代码中找到了最关键的逻辑,却被他的发现下了一跳,甚至有些难以置信,因为这段代码竟然用一种很巧妙的方法完成了一个远程跳转,跳转到目的地已经超出了god创造的世界的内存范围,它所使用到的指令竟然是工作站cpu的一段特殊的指令序列,而这段指令肖远事先根本就不知道,更不会写到程序中。
肖远心中疑惑,如果不是他有非常丰富的阅读代码的经验,手边又有cpu指令集的详细资料可查,这段代码究竟是干什么用的,就算他读上一百遍,恐怕也不会知道的。
“只是种子程序的代码里怎么会有这样的代码段了?”
肖远对这个现象倍感不解,觉得不把这个现象搞清楚,会很不甘心,于是他再次将没有反汇编之前的种子二进制代码拿了出来,决定从二进制代码入手,试试能找到什么端倪不能。
直接阅读二进制代码显然是不可行的,好在肖远手里还有另外一个工具,这个工具的界面分成左右两栏,左栏是二进制代码,右栏是二进制代码对应的汇编代码,两边对照着阅读,就不是那么困难了。
可惜这样反复读了两遍,肖远还是没有发现什么规律,随即意识到自己的研究思路有点儿问题,种子的这段程序一定是进化而来的,也就是说它的代码本身也是在不断演变的,自己这样静态的看,本身就有问题。
既然意识到了问题,肖远马上改变了策略,将多个内存样本中的种子
(本章未完,请点击下一页继续阅读)
上一页
加入书签
目录
下一页