[发明专利]反编译中基于子图同构匹配算法的内在函数识别方法有效
申请号: | 201510340675.5 | 申请日: | 2015-06-18 |
公开(公告)号: | CN104915211B | 公开(公告)日: | 2018-04-17 |
发明(设计)人: | 赵银亮;张磊;刘凯;刘延昭 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F8/53 | 分类号: | G06F8/53 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 岳培华 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种反编译中基于子图同构匹配算法的内在函数识别方法,属于反编译技术领域。本发明通过建立内在函数模板库,对内在函数模板与反编译产生的基于控制流图的目标汇编文件进行子图同构匹配,定位目标汇编文件中目标程序中的经编译优化并内联展开的内在函数。本发明实现了在反编译过程中对内联内在函数的自动识别,同时通过对内在函数的模板和原型进行分析,恢复内在函数的函数名、返回值、返回值类型和函数参数,达到内联内在函数语义提升的目的。经过提升的内联内在函数为反编译中的类型分析提供了更多的类型信息,降低了数据流分析和控制流分析的复杂度,提高了中间代码的抽象层次,增强了反编译结果的可读性。 | ||
搜索关键词: | 反编译 基于 图同构 匹配 算法 内在 函数 识别 方法 | ||
【主权项】:
一种反编译中基于子图同构匹配算法的内在函数识别方法,其特征在于,包括以下步骤:1)针对具体的编译器,构建该编译器的内在函数模板库;其中,内在函数模板库的构建方法包括以下步骤:a)选取具有内在函数调用的程序作为样本程序,在编译器优化选项下编译样本程序生成可执行文件;b)利用IDA反汇编器反汇编可执行文件,生成汇编文件,将汇编文件作为Boomerang反编译器的输入,Boomerang反编译器对汇编文件进行加载和解码,解码模块以连续的汇编指令为基本块,以控制流关系为有向边,构建汇编文件的汇编指令控制流图;c)提取基于汇编指令控制流图的内在函数的控制流子图和汇编指令序列,作为内在函数的模板,并插入到内在函数模板库中;d)重复步骤a)~c),构造出通用计算机体系结构所共有的内在函数的内在函数模板库;2)基于反编译软件Boomerang将目标汇编文件进行解码,构建出目标汇编文件的汇编指令控制流图;3)将内在函数模板库中的内在函数模版与目标汇编文件的汇编指令控制流图进行子图同构匹配,识别目标汇编文件中的目标程序中内联的内在函数;4)结合内在函数的原型和同构映射关系恢复内在函数的函数名、返回值、返回值类型和函数参数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510340675.5/,转载请声明来源钻瓜专利网。