发明名称 一种基于程序演进模型的目标代码逆向工程方法
摘要 本发明公开了一种基于程序演进模型的目标代码逆向工程方法,可以自动地识别目标代码文件封装格式,区分目标代码文件代码段,并使用反汇编技术进行分析并生成相应的程序模型,又在前一个程序模型基础上,再次进行分析并生成新的程序模型,不断重复以上过程,逐步精化,最终生成.ASM可再汇编文件。采用本发明,可以对自混淆的、含有指令重叠的目标代码文件进行准确而有效的逆向工程,可以应用于含有自混淆指令,指令重叠等加壳恶意软件的分析与识别以及防反汇编闭源软件的分析。
申请公布号 CN106126225A 申请公布日期 2016.11.16
申请号 CN201610456943.4 申请日期 2016.06.22
申请人 华东师范大学 发明人 史建琦;熊家文;黄滟鸿;何积丰;李昂;方徽星
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 北京乾诚五洲知识产权代理有限责任公司 11042 代理人 付晓青;杨玉荣
主权项 一种基于程序演进模型的目标代码逆向工程方法,包括以下步骤:步骤A:启动人机交互接口,向人机交互接口分别输入待逆向工程的目标代码文件、程序模型存储文件以及待生成的可再汇编代码文件的存储路径;步骤B:读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输出提示单元;步骤C:根据输出提示单元接收的不同的封装格式,在不同的位置取出目标代码文件的起始地址,以及代码段的长度,定位代码段的地址范围;步骤D:识别目标代码文件首部所记录的处理器体系结构信息;步骤E:在指定的程序模型存储文件存储路径的目录下创建一个空的程序模型存储文件;步骤F:结合前一轮创建的程序模型存储文件开始逐条分析代码段起始地址的机器指令,并将指令相关的信息写入到新创建的程序模型存储文件中;步骤G:如果存在前一轮的程序模型存储文件,则将新生成写入的程序模型存储文件与前一轮所创建的程序模型存储文件进行比较,若两个程序模型没有差异,则表示程序模型已经稳定,则跳转至步骤H;否则,回到步骤E,重新进行分析和修改操作,记录程序模型到新的程序模型存储文件之中。步骤H:结合最后一个程序模型存储文件中存储的信息,即迭代修改后稳定的机器指令序列,使用对应处理器体系结构的反汇编引擎,生成反汇编代码,写入到最后的可再汇编代码文件中。
地址 200062 上海市普陀区中山北路3663号