基于动态二进制分析的关键函数定位技术研究
Research on Locating of Key Functions Based on Dynamic Binary Analysis
对关键函数进行快速定位是提高逆向分析效率的有效手段,不仅可以缩小软件逆向分析的范围,而且降低了逆向分析的复杂度.目前,在软件逆向工程领域对关键函数进行定位大多是利用人工分析的方法,还没有成熟通用的理论和工具.本文对现有的人工分析方法进行总结,在此基础上研究如何利用动态二进制分析的方法对关键函数进行快速定位.本文介绍了关键函数定位的概念、研究意义及发展现状,分析了已有研究成果存在的不足,在此基础上提出了基于API函数调用分析和基于程序执行轨迹差异比对的两种关键函数定位技术.基于API函数调用分析的定位技术主要思想是:利用动态二进制插桩方法获取程序执行过程中的API函数调用、线程、可执行模块、字符串引用和消息传递等信息,然后利用API函数调用关联分析和操作系统消息机制对关键函数进行定位;基于程序执行轨迹差异比对的定位技术主要思想是:首先获取程序函数调用级粒度的执行轨迹信息,然后利用函数调用集合比对和函数调用序列比对的方法对关键函数进行定位.为了提高了函数定位的效率和准确率,使用了函数聚类算法消除函数集合比对结果中的噪声函数,并将生物学序列比对技术应用于函数调用序列比对方法中.最后本文设计并实现了一个基于动态二进制插桩技术的关键函数定位原型系统,并选取了多款不同类型的应用程序对原型系统进行测试.结果表明,该系统能够快速准确地定位关键函数.
- 作者:
- 王乾
- 学位授予单位:
- 解放军信息工程大学
- 专业名称:
- 计算机软件与理论
- 授予学位:
- 硕士
- 学位年度:
- 2012年
- 导师姓名:
- 舒辉
- 中图分类号:
- TP311.5
- 关键词:
- 动态二进制分析;函数定位;API调用序列;行为分析;执行轨迹;差异比对
- Dynamic Binary Analysis;Locating Function;API Calling Sequence;BehaviorAnalysis;Execution Trace;Difference Comparison