受伤
“见鬼了.”肖远不由得骂了一句.然后反复读了几遍这段代码.并将其中涉及到的寄存器.以及寄存器之间的数据流向绘制成了图像.并找來一本这台工作站的CPU编码的详细手册.一点一点儿加以对照
所谓读书百遍.其义自现.程序也是如此.反复读过几遍后.肖远越來越觉得这两端程序有些非比寻常.并有种隐隐的预感.读懂这两端程序将是他解开种子程序以及god程序反常表现的关键所在
终于.肖远从这些代码中找到了最关键的逻辑.却被他的发现下了一跳.甚至有些难以置信.因为这段代码竟然用一种很巧妙的方法完成了一个远程跳转.跳转到目的地已经超出了god创造的世界的内存范围.它所使用到的指令竟然是工作站CPU的一段特殊的指令序列.而这段指令肖远事先根本就不知道.更不会写到程序中
肖远心中疑惑.如果不是他有非常丰富的阅读代码的经验.手边又有CPU指令集的详细资料可查.这段代码究竟是干什么用的.就算他读上一百遍.恐怕也不会知道的
“只是种子程序的代码里怎么会有这样的代码段了.”
肖远对这个现象倍感不解.觉得不把这个现象搞清楚.会很不甘心.于是他再次将沒有反汇编之前的种子二进制代码拿了出來.决定从二进制代码入手.试试能找到什么端倪不能
直接阅读二进制代码显然是不可行的.好在肖远手里还有另外一个工具.这个工具的界面分成左右两栏.左栏是二进制代码.右栏是二进制代码对应的汇编代码.两边对照着阅读.就不是那么困难了
可惜这样反复读了两遍.肖远还是沒有发现什么规律.随即意识到自己的研究思路有点儿问題.种子的这段程序一定是进化而來的.也就是说它的代码本身也是在不断演变的.自己这样静态的看.本身就有问題
既然意识到了问題.肖远马上改变了策略.将多个内存样本中的种子程序的二进制代码截取了出來.然后对这些不同时间点的二进制代码进行了纵向比对.重点关注了那段奇异代码的演化过程.并不断对比手边的CPU指令手册
经过一番比对.肖远又想到种子程序的进化还受到god程序的影响.于是又将god程序代码拿來.横向纵向做了很全面的分析比对.两个小时后.他终于搞明白了这段代码的來历.心中却暗暗惊异
首先要确定的一点.这段代码并不是凭空产生的.种子程序虽然具有一些初步的进化功能.但是还沒有智能化到自主的分析CPU指令集.并加以利用的逆天程度.但是它的來源却也让肖远感到了一场惊奇.因为这段代码是从god程序中学习而來的.而god的程序中的这
请收藏:https://m.ljsd9.cc
(温馨提示:请关闭畅读或阅读模式,否则内容无法正常显示)