代码逆向分析中的语句恢复与算法识别技术研究
Research on Statement Recovery and Algorithm Recognition in Code Reverse Analysis
在代码逆向分析过程中,提高代码抽象层次并识别代码中包含的算法,对于分析代码结构、理解代码功能具有重要意义.本文着重研究代码逆向分析中的类高级语句恢复技术,并以此为基础识别代码中包含的特定算法,为代码分析提供支持.论文在分析中间语言文法的基础上,设计了中间语言上的数据流分析方法,重点阐述了建立语句定义和使用集合的原则,解决了寄存器重叠对语句定义集合的影响,建立了语句中寄存器和标志位的数据流信息;利用数据流分析结果,提出寄存器回溯的方法,并着重讨论了回溯过程中寄存器重叠定义和寄存器多定义点问题,基于此设计语句恢复方法,解决了调用语句中寄存器参数识别和恢复等难点问题;分析一类典型算法在高级语言中的特点,提取特征表达式作为算法的特征模式,设计了基于XML的算法特征描述模式;运用算符优先分析方法建立表达式的抽象语法树,提出基于抽象语法树相容性判定的表达式识别方法,并设计了严格相容和变形相容两种识别策略,实现特征表达式的自动识别;最后设计实现了语句恢复和算法识别原型工具.测试结果表明,原型工具能够恢复得到准确率在95%以上的类高级语句,在此基础上以特征表达式为识别目标,成功实现了十余种特定算法的识别.
- 作者:
- 方霞
- 学位授予单位:
- 解放军信息工程大学
- 专业名称:
- 计算机应用技术
- 授予学位:
- 硕士
- 学位年度:
- 2009年
- 导师姓名:
- 尹青
- 中图分类号:
- TP311.52
- 关键词:
- 代码逆向分析;中间语言;数据流分析;语句恢复;类高级语言;算法识别;特征表达式
- Code Reverse Analysis;Intermediate Language;Data Flow Analysis;Statement Recovery;Approximate High level Language;Algorithm Recognition;Characteristic Expression