| 摘要 | 第1-5页 |
| Abstract | 第5-10页 |
| 第一章 绪论 | 第10-17页 |
| ·背景及意义 | 第10-13页 |
| ·软件漏洞对信息安全的影响 | 第10-11页 |
| ·对软件漏洞的分析方法 | 第11-12页 |
| ·本课题的意义 | 第12-13页 |
| ·国外研究技术现状 | 第13-15页 |
| ·研究内容 | 第15页 |
| ·论文结构安排 | 第15-17页 |
| 第二章 补丁比对算法研究 | 第17-25页 |
| ·补丁比对的层级 | 第17-20页 |
| ·字节级比对 | 第17-18页 |
| ·指令级比对 | 第18-19页 |
| ·控制流级 | 第19-20页 |
| ·图形化比对技术 | 第20-21页 |
| ·图形化同构算法 | 第20-21页 |
| ·指令级图形化比对算法 | 第21页 |
| ·结构化比对技术 | 第21-23页 |
| ·基于结构化签名比对算法 | 第22页 |
| ·基于可信基点的结构化签名比对算法 | 第22-23页 |
| ·图形化与结构比对技术的比较 | 第23-24页 |
| ·本章小结 | 第24-25页 |
| 第三章 一般补丁比对工具的关键技术 | 第25-36页 |
| ·机器指令逆向技术 | 第25-33页 |
| ·Windows平台PE文件格式 | 第25-29页 |
| ·Intel汇编指令结构 | 第29-31页 |
| ·第三方反汇编工具 | 第31-33页 |
| ·控制流图与函数调用图生成技术 | 第33-35页 |
| ·Graphviz | 第33-34页 |
| ·DOT语言 | 第34-35页 |
| ·本章小结 | 第35-36页 |
| 第四章 基于可执行文件签名的比对算法的设计与实现方案 | 第36-52页 |
| ·基于可执行文件签名的补丁比对算法 | 第36-39页 |
| ·可执行文件签名的定义 | 第36-37页 |
| ·映射扩充结构化比对算法 | 第37-38页 |
| ·签名自匹配结构化比对算法 | 第38页 |
| ·整体算法描述 | 第38-39页 |
| ·函数签名的设计 | 第39-44页 |
| ·基本块的划分与签名 | 第39-41页 |
| ·函数签名的设计 | 第41-42页 |
| ·函数签名的实现 | 第42-44页 |
| ·可执行文件签名的设计 | 第44-46页 |
| ·可执行文件签名的设计 | 第44页 |
| ·可执行文件签名的实现 | 第44-46页 |
| ·两种比对算法的选择与实现 | 第46-51页 |
| ·映射扩充结构化比对算法的实现 | 第47-48页 |
| ·签名自匹配结构化比对算法的实现 | 第48-49页 |
| ·可执行文件签名判决子 | 第49-51页 |
| ·本章小结 | 第51-52页 |
| 第五章 基于可执行文件签名补丁比对软件BinaryPatchMatch的设计与实现 | 第52-66页 |
| ·总体架构设计 | 第52-53页 |
| ·指令逆向与签名模块的设计与实现 | 第53-57页 |
| ·模块的设计思路 | 第53页 |
| ·可执行文件签名功能的实现 | 第53-54页 |
| ·基本块的划分与签名功能的实现 | 第54-55页 |
| ·函数信息获取功能的实现 | 第55-56页 |
| ·数据存储功能的实现 | 第56-57页 |
| ·比对模块的设计与实现 | 第57-62页 |
| ·模块的设计思路 | 第57-58页 |
| ·数据读取功能的实现 | 第58页 |
| ·函数控制流图与签名功能的实现 | 第58-61页 |
| ·函数调用图的生成 | 第61-62页 |
| ·可执行文件签名判决功能的实现 | 第62页 |
| ·比对功能的实现 | 第62页 |
| ·BinaryPatchMatch用户界面模块的设计与实现 | 第62-65页 |
| ·输入界面 | 第63页 |
| ·比对结果显示界面 | 第63-64页 |
| ·可执行文件结构化分析界面 | 第64-65页 |
| ·本章小结 | 第65-66页 |
| 第六章 BinaryPatchMatch的性能测试以及在Windows补丁比对中的应用 | 第66-73页 |
| ·BinaryPatchMatch性能测试 | 第66-69页 |
| ·BinaryPatchMatch软件包介绍 | 第66页 |
| ·测试环境 | 第66-67页 |
| ·测试用例 | 第67页 |
| ·测试步骤 | 第67页 |
| ·测试数据与结果 | 第67-68页 |
| ·测试结果分析与比较 | 第68-69页 |
| ·BinaryPatchMatch在Windows补丁比对中的应用 | 第69-72页 |
| ·用IDAPro插件进行基本块划分与签名 | 第69-70页 |
| ·BinaryPatchMatch对db文件进行比对 | 第70-72页 |
| ·对比对结果进行后续分析 | 第72页 |
| ·本章小结 | 第72-73页 |
| 第七章 结束语 | 第73-75页 |
| ·本文工作总结 | 第73页 |
| ·下一步的工作 | 第73-75页 |
| 参考文献 | 第75-77页 |
| 致谢 | 第77-78页 |
| 攻读学位期间发表的学术论文目录 | 第78页 |