| 摘要 | 第5-7页 |
| ABSTRACT | 第7-8页 |
| 缩略语对照表 | 第11-15页 |
| 第一章 绪论 | 第15-19页 |
| 1.1 软件逆向工程的研究意义 | 第15-16页 |
| 1.2 国内外发展现状 | 第16-17页 |
| 1.3 论文内容及结构安排 | 第17-19页 |
| 第二章 软件逆向的基础 | 第19-29页 |
| 2.1 二进制可执行代码 | 第19-20页 |
| 2.1.1 分析二进制可执行代码的必要性 | 第19页 |
| 2.1.2 二进制对象文件格式 | 第19-20页 |
| 2.2 相关专业术语 | 第20-24页 |
| 2.2.1 反汇编 | 第20-21页 |
| 2.2.2 类布局和RTTI | 第21页 |
| 2.2.3 虚函数和虚表 | 第21-22页 |
| 2.2.4 API | 第22页 |
| 2.2.5 Windows消息机制 | 第22-23页 |
| 2.2.6 MSVC和GCC | 第23-24页 |
| 2.3 在软件逆向工程中使用工具 | 第24-29页 |
| 2.3.1 在逆向工程中使用分析工具的必要性 | 第24页 |
| 2.3.2 常见软件逆向工具简介 | 第24-25页 |
| 2.3.3 Intel指令结构 | 第25页 |
| 2.3.4 反汇编器工作原理 | 第25-27页 |
| 2.3.5 利用静态工具进行分析 | 第27-29页 |
| 第三章 静态逆向分析模型 | 第29-33页 |
| 3.1 使用IDA进行静态逆向分析的各个阶段 | 第29页 |
| 3.2 分析前处理 | 第29-33页 |
| 3.2.1 去除保护机制 | 第29-31页 |
| 3.2.2 分析程序中用到的函数 | 第31页 |
| 3.2.3 分析程序中的资源 | 第31页 |
| 3.2.4 分析入.函数 | 第31-32页 |
| 3.2.5 识别库函数 | 第32-33页 |
| 第四章 C语言元素分析 | 第33-43页 |
| 4.1 识别变量 | 第33-34页 |
| 4.1.1 识别栈变量 | 第33页 |
| 4.1.2 识别堆变量 | 第33页 |
| 4.1.3 寄存器变量和临时变量 | 第33-34页 |
| 4.1.4 识别全局变量和静态变量 | 第34页 |
| 4.2 识别特殊类型 | 第34-36页 |
| 4.2.1 识别字符串 | 第34-35页 |
| 4.2.2 识别结构体 | 第35-36页 |
| 4.3 识别语句 | 第36-39页 |
| 4.3.1 识别表达式 | 第36页 |
| 4.3.2 识别循环语句 | 第36-37页 |
| 4.3.3 识别分支语句 | 第37-39页 |
| 4.4 识别用户函数 | 第39-43页 |
| 4.4.1 函数序言(prolog)和函数结语(epilog) | 第39-40页 |
| 4.4.2 识别函数参数栈 | 第40-41页 |
| 4.4.3 识别函数栈变量 | 第41页 |
| 4.4.4 识别函数返回值类型 | 第41-42页 |
| 4.4.5 判定函数边界 | 第42-43页 |
| 第五章 分析程序中的C++语言元素 | 第43-59页 |
| 5.1 识别new和delete操作符 | 第43页 |
| 5.2 识别类 | 第43-51页 |
| 5.2.1 编译器对类及类实例的处理行为 | 第43-46页 |
| 5.2.2 识别RTTI信息 | 第46-47页 |
| 5.2.3 识别不同类型的对象 | 第47-48页 |
| 5.2.4 识别类构造函数和析构函数 | 第48-49页 |
| 5.2.5 识别创建对象实例行为 | 第49-50页 |
| 5.2.6 识别类成员函数 | 第50页 |
| 5.2.7 重建类 | 第50-51页 |
| 5.3 识别异常处理 | 第51-59页 |
| 5.3.1 C++异常处理 | 第51-52页 |
| 5.3.2 32位程序SEH结构化异常处理 | 第52-55页 |
| 5.3.3 64位程序SEH结构化异常处理 | 第55-59页 |
| 第六章 逆向模型的测试 | 第59-67页 |
| 6.1 使用代码分析工具辅助分析 | 第59-60页 |
| 6.2 使用该模型分析C++程序实例 | 第60-67页 |
| 6.2.1 实施逆向模型操作流程 | 第60-65页 |
| 6.2.2 重建开发文档 | 第65-67页 |
| 第七章 总结与展望 | 第67-69页 |
| 7.1 主要工作和结论 | 第67页 |
| 7.2 未来工作展望 | 第67-69页 |
| 参考文献 | 第69-73页 |
| 致谢 | 第73-75页 |
| 作者简介 | 第75-77页 |
| 1.基本情况 | 第75页 |
| 2.教育背景 | 第75页 |
| 3.在学期间的研究成果 | 第75-77页 |