文件名称:反编译中数据类型重构技术研究
文件大小:2.68MB
文件格式:CAJ
更新时间:2018-07-13 09:01:50
反编译 数据类型 重构技术
反编译是软件逆向分析的重要手段之一,是将由编译产生的二进制代码转换成与之逻 辑和功能等价的高级代码形式,在代码移植、软件理解与维护等方面具有重要作用。随着 互联网软件的飞速增长,反编译在保障软件可用性及系统安全性方面作用凸显。类型重构 作为反编译的关键步骤,对提高反编译结果的可读性具有重要意义。 论文以动静结合的反编译框架为基础,首先通过分析指令中含库函数调用的程序上下 文环境,得出对应于函数参数和返回值的变量类型,然后通过分析中间语言 BIL 中操作符 的类型特征,制定了基于操作符的类型提取规则,并根据规则得出指令中非函数调用处变 量的类型信息;根据中间语句的不同操作类型,结合类型变量的三元组表示方法分别从三 个方面阐述了用已获取的类型信息推导未知类型的过程;针对指针与整型变量的歧义问 题,给出了基于运行时信息指针辅助判定方法,同时针对基本类型重构结果不确定的情况, 给出了基于数据流分析框架的双向类型传播模型,通过构建类型格并在格的基础上求解类 型传播方程,从而达到类型细化的目的;通过分析复杂数据结构的存储特点及寻址方式, 以等价类划分的思想求取复杂数据结构的内存布局,并以已得到基本类型来恢复复杂数据 结构的类型。