表目录 | 第7-8页 |
图目录 | 第8-9页 |
摘要 | 第9-10页 |
ABSTRACT | 第10页 |
第一章 绪论 | 第11-16页 |
1.1 课题研究背景与意义 | 第11-12页 |
1.1.1 软件逆向工程与关键函数定位 | 第11页 |
1.1.2 关键函数定位的意义 | 第11-12页 |
1.2 国内外相关技术研究与发展现状 | 第12-14页 |
1.3 研究目标与内容 | 第14-15页 |
1.4 论文结构安排 | 第15-16页 |
第二章 关键函数定位相关技术研究 | 第16-21页 |
2.1 动态二进制分析技术研究 | 第16-19页 |
2.1.1 动态二进制分析技术介绍 | 第16-18页 |
2.1.2 Pin 相关技术研究 | 第18-19页 |
2.2 基于 Pin 的关键函数定位技术研究思路 | 第19-20页 |
2.3 本章小结 | 第20-21页 |
第三章 基于 API 函数调用分析的定位技术 | 第21-37页 |
3.1 API 函数参数库的建立 | 第21-25页 |
3.1.1 API 函数声明和结构体表达式识别 | 第21-23页 |
3.1.2 API 函数参数信息提取 | 第23-25页 |
3.2 程序行为信息获取 | 第25-31页 |
3.2.1 API 函数调用信息 | 第25-29页 |
3.2.2 线程信息 | 第29-30页 |
3.2.3 可执行模块信息 | 第30页 |
3.2.4 字符串引用信息 | 第30-31页 |
3.3 基于 API 函数调用关联分析的函数定位方法 | 第31-32页 |
3.4 基于 Windows 操作系统消息机制的函数定位方法 | 第32-36页 |
3.4.1 Windows 操作系统消息机制研究 | 第32-34页 |
3.4.2 基于消息机制的定位方法 | 第34-36页 |
3.5 本章小结 | 第36-37页 |
第四章 基于程序执行轨迹差异比对的定位技术 | 第37-48页 |
4.1 程序执行差异比对原理 | 第37-38页 |
4.2 程序执行轨迹的获取技术 | 第38-42页 |
4.2.1 程序执行轨迹相关定义 | 第38-39页 |
4.2.2 程序执行轨迹的获取 | 第39-42页 |
4.3 基于函数调用集合的差异比对方法 | 第42-44页 |
4.3.1 函数调用集合差集计算 | 第42-43页 |
4.3.2 差异函数集合聚类分析 | 第43-44页 |
4.4 基于函数调用序列的差异比对方法 | 第44-47页 |
4.4.1 序列比对算法 | 第45页 |
4.4.2 函数序列比对方法 | 第45-47页 |
4.5 本章小结 | 第47-48页 |
第五章 关键函数定位原型系统设计与实现 | 第48-64页 |
5.1 系统设计框架 | 第48-49页 |
5.2 API 参数库设计 | 第49-50页 |
5.3 动态分析插件模块 | 第50-55页 |
5.3.1 API 函数调用信息获取与存储 | 第50-52页 |
5.3.2 Windows 消息监控 | 第52页 |
5.3.3 普通函数调用信息获取与存储 | 第52-54页 |
5.3.4 其他信息获取 | 第54-55页 |
5.4 数据分析模块 | 第55-58页 |
5.4.1 线程信息获取 | 第55-56页 |
5.4.2 字符串引用信息 | 第56-57页 |
5.4.3 执行轨迹分析 | 第57-58页 |
5.5 关键函数定位模块 | 第58-63页 |
5.5.1 基于 API 函数调用分析的定位方法 | 第58-59页 |
5.5.2 基于执行差异比对的定位方法 | 第59-63页 |
5.6 本章小结 | 第63-64页 |
第六章 原型系统测试与结果分析 | 第64-75页 |
6.1 测试环境 | 第64页 |
6.2 测试用例 | 第64-65页 |
6.3 测试内容与步骤 | 第65页 |
6.3.1 功能测试 | 第65页 |
6.3.2 性能测试 | 第65页 |
6.4 测试结果与分析 | 第65-73页 |
6.4.1 功能测试 | 第65-72页 |
6.4.2 性能测试 | 第72-73页 |
6.5 本章小结 | 第73-75页 |
结束语 | 第75-77页 |
参考文献 | 第77-81页 |
作者简历 攻读硕士学位期间完成的主要工作 | 第81-83页 |
致谢 | 第83页 |