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

技术编号:14014744 阅读:80 留言:0更新日期:2016-11-17 20:32
本发明专利技术公开了一种基于程序演进模型的目标代码逆向工程方法,可以自动地识别目标代码文件封装格式,区分目标代码文件代码段,并使用反汇编技术进行分析并生成相应的程序模型,又在前一个程序模型基础上,再次进行分析并生成新的程序模型,不断重复以上过程,逐步精化,最终生成.ASM可再汇编文件。采用本发明专利技术,可以对自混淆的、含有指令重叠的目标代码文件进行准确而有效的逆向工程,可以应用于含有自混淆指令,指令重叠等加壳恶意软件的分析与识别以及防反汇编闭源软件的分析。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种基于程序演进模型的目标代码逆向工程方法
技术介绍
随着软件复杂度的提高,逆向工程越来越引起人们的重视,成为软件工程领域的一个新兴分支。使用目标代码逆向工程技术是为了在没有源代码的情况下,直接从已编译的或被特殊处理的最终目标程序出发,应用多种技术手段,复原程序行为语义信息,从而帮助了解程序的原理。分析恶意软件、闭源软件的漏洞、闭源软件的互操作性、目标程序与源程序的一致性、验证编译器的性能和准确性以及在调试过程中显示汇编指令都是目标代码逆向工程技术的关键应用场景。对目标代码进行逆向工程,根据其逆向工程的结果分析病毒运行机制、评估软件质量与推断程序行为目的的需求越来越多。传统的目标代码逆向工程技术主要有线性扫描与递归下降两种经典基础方法。线性扫描为反汇编程序假设可执行的二进制代码包含了多个连续的二进制代码流,并且连续地对它进行解码。而被广泛应用的一款著名商业化的反汇编软件IDA Pro则运用了递归下降的方法。与线性扫描技术相比,递归下降技术试图在每个控制转移指令中确定更多可能的目标地址。通常,目标代码逆向工程模型是指可以用于表示目标代码中的指令操本文档来自技高网...
一种基于程序演进模型的目标代码逆向工程方法

【技术保护点】
一种基于程序演进模型的目标代码逆向工程方法,包括以下步骤:步骤A:启动人机交互接口,向人机交互接口分别输入待逆向工程的目标代码文件、程序模型存储文件以及待生成的可再汇编代码文件的存储路径;步骤B:读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输出提示单元;步骤C:根据输出提示单元接收的不同的封装格式,在不同的位置取出目标代码文件的起始地址,以及代码段的长度,定位代码段的地址范围;步骤D:识别目标代码文件首部所记录的处理器体系结构信息;步骤E:在指定的程序模型存储文件存储路径的目录下创建一个空的程序模型存储文件;步骤F:结合前一轮创建的程序模型存储文件开始逐条分析代码段起...

【技术特征摘要】
1.一种基于程序演进模型的目标代码逆向工程方法,包括以下步骤:步骤A:启动人机交互接口,向人机交互接口分别输入待逆向工程的目标代码文件、程序模型存储文件以及待生成的可再汇编代码文件的存储路径;步骤B:读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输出提示单元;步骤C:根据输出提示单元接收的不同的封装格式,在不同的位置取出目标代码文件的起始地址,以及代码段的长度,定位代码段的地址范围;步骤D:识别目标代码文件首部所记录的处理器体系结构信息;步骤E:在指定的程序模型存储文件存储路径的目录下创建一个空的程序模型存储文件;步骤F:结合前一轮创建的程序模型存储文件开始逐条分析代码段起始地址的机器指令,并将指令相关的信息写入到新创建的程序模型存储文件中;步骤G:如果存在前一轮的程序模型存储文件,则将新生成写入的程序模型存储文件与前一轮所创建的程序模型存储文件进行比较,若两个程序模型没有差异,则表示程序模型已经稳定,则跳转至步骤H;否则,回到步骤E,重新进行分析和修改操作,记录程序模型到新的程序模型存储文件之中。步骤H:结合最后一个程序模型存储文件中存储的信息,即迭代修改后稳定的机器指令序列,使用对应处理器体系结构的反汇编引擎,生成反汇编代码,写入到最后的可再汇编代码文件中。2.一种如权利要求1所述的方法,所述步骤B的读取目标代码文件首部,识别目标代码文件的封装格式,并将其封装格式打印到输...

【专利技术属性】
技术研发人员:史建琦熊家文黄滟鸿何积丰李昂方徽星
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1