一种基于程序演进模型的目标代码逆向工程方法与流程

文档序号:11864382阅读:来源:国知局

技术特征:

1.一种基于程序演进模型的目标代码逆向工程方法,包括以下步骤:

步骤A:启动人机交互接口,向人机交互接口分别输入待逆向工程的目标代码文件、程序模型存储文件以及待生成的可再汇编代码文件的存储路径;

步骤B:读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输出提示单元;

步骤C:根据输出提示单元接收的不同的封装格式,在不同的位置取出目标代码文件的起始地址,以及代码段的长度,定位代码段的地址范围;

步骤D:识别目标代码文件首部所记录的处理器体系结构信息;

步骤E:在指定的程序模型存储文件存储路径的目录下创建一个空的程序模型存储文件;

步骤F:结合前一轮创建的程序模型存储文件开始逐条分析代码段起始地址的机器指令,并将指令相关的信息写入到新创建的程序模型存储文件中;

步骤G:如果存在前一轮的程序模型存储文件,则将新生成写入的程序模型存储文件与前一轮所创建的程序模型存储文件进行比较,若两个程序模型没有差异,则表示程序模型已经稳定,则跳转至步骤H;否则,回到步骤E,重新进行分析和修改操作,记录程序模型到新的程序模型存储文件之中。

步骤H:结合最后一个程序模型存储文件中存储的信息,即迭代修改后稳定的机器指令序列,使用对应处理器体系结构的反汇编引擎,生成反汇编代码,写入到最后的可再汇编代码文件中。

2.一种如权利要求1所述的方法,所述步骤B的读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输出提示单元具体包括:

步骤B1,读取文件首部数十个字节,匹配程序库中的样本,若匹配到相应封装格式的字节序列模式,则转到步骤B2;否则,输出:无法识别文件封装,逆向工程结束;

步骤B2:在输出提示单元打印目标代码文件的封装格式,然后转到步骤C。

3.一种如权利要求2所述的方法,所述处理器体系结构信息包括指令集类型信息,根据不同的处理器体系结构,采用不同的反汇编处理引擎进行后续步骤的指令分析与反汇编代码生成操作。

4.一种如权利要求3所述的方法,所述步骤D的识别目标代码文件首部所 记录的处理器体系结构信息具体包括:

步骤D1,控制单元自动识别目标代码文件中机器码的体系结构,若能够识别,则转到步骤E;否则,转到步骤D2;

步骤D2,提示用户自己选择可选的处理器体系结构,选择完成后,转到步骤E。

5.一种如权利要求4所述的方法,所述步骤F具体包括:如果步骤E中创建的程序模型存储文件为第一程序模型存储文件,则直接从代码段起始地址开始逐条地分析机器指令;否则,从上一轮迭代所创建的程序模型存储文件中的取出机器指令序列来进行分析,在此过程中,根据机器指令的操作,对机器指令序列本身进行修改,生成新的机器指令序列,即生成新的程序模型,分析结束后,将该程序模型写入到步骤E中创建的程序模型存储文件中。

6.一种如权利要求5所述的方法,写入程序模型存储文件的信息包括:指令在文件的偏移地址,指令在内存中的映射地址,指令内容以及相应的反汇编代码。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1