[发明专利]一种基于程序演进模型的目标代码逆向工程方法有效
申请号: | 201610456943.4 | 申请日: | 2016-06-22 |
公开(公告)号: | CN106126225B | 公开(公告)日: | 2019-02-12 |
发明(设计)人: | 史建琦;熊家文;黄滟鸿;何积丰;李昂;方徽星 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 张斯盾 |
地址: | 200062 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于程序演进模型的目标代码逆向工程方法,可以自动地识别目标代码文件封装格式,区分目标代码文件代码段,并使用反汇编技术进行分析并生成相应的程序模型,又在前一个程序模型基础上,再次进行分析并生成新的程序模型,不断重复以上过程,逐步精化,最终生成.ASM可再汇编文件。采用本发明,可以对自混淆的、含有指令重叠的目标代码文件进行准确而有效的逆向工程,可以应用于含有自混淆指令,指令重叠等加壳恶意软件的分析与识别以及防反汇编闭源软件的分析。 | ||
搜索关键词: | 一种 基于 程序 演进 模型 目标 代码 逆向 工程 方法 | ||
【主权项】:
1.一种基于程序演进模型的目标代码逆向工程方法,包括以下步骤:步骤A:启动人机交互接口,向人机交互接口分别输入待逆向工程的目标代码文件、程序模型存储文件以及待生成的可再汇编代码文件的存储路径;步骤B:读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输出提示单元;步骤C:根据输出提示单元接收的不同的封装格式,在不同的位置取出目标代码文件的起始地址,以及代码段的长度,定位代码段的地址范围;步骤D:识别目标代码文件首部所记录的处理器体系结构信息;步骤E:在指定的程序模型存储文件存储路径的目录下创建一个空的程序模型存储文件;步骤F:结合前一轮创建的程序模型存储文件开始逐条分析代码段起始地址的机器指令,并将指令相关的信息写入到新创建的程序模型存储文件中;步骤G:如果存在前一轮的程序模型存储文件,则将新生成写入的程序模型存储文件与前一轮所创建的程序模型存储文件进行比较,若两个程序模型没有差异,则表示程序模型已经稳定,则跳转至步骤H;否则,回到步骤E,重新进行分析和修改操作,记录程序模型到新的程序模型存储文件之中;步骤H:结合最后一个程序模型存储文件中存储的信息,即迭代修改后稳定的机器指令序列,使用对应处理器体系结构的反汇编引擎,生成反汇编代码,写入到最后的可再汇编代码文件中;其特征在于,步骤D中:所述处理器体系结构信息包括指令集类型信息,根据不同的处理器体系结构,采用不同的反汇编处理引擎进行后续步骤的指令分析与反汇编代码生成操作;步骤F中:如果步骤E中创建的程序模型存储文件为第一程序模型存储文件,则直接从代码段起始地址开始逐条地分析机器指令;否则,从上一轮迭代所创建的程序模型存储文件中的取出机器指令序列来进行分析,在此过程中,根据机器指令的操作,对机器指令序列本身进行修改,生成新的机器指令序列,即生成新的程序模型,分析结束后,将该程序模型写入到步骤E中创建的程序模型存储文件中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610456943.4/,转载请声明来源钻瓜专利网。