基于动态二进制翻译的逆向调试器的设计与实现
| 摘要 | 第1-4页 |
| Abstract | 第4-7页 |
| 第一章 绪论 | 第7-12页 |
| ·研究背景 | 第7-8页 |
| ·国内外研究现状 | 第8-9页 |
| ·论文的研究问题 | 第9-10页 |
| ·论文的主要工作 | 第10-11页 |
| ·论文的组织结构 | 第11-12页 |
| 第二章 基于二进制翻译的逆向调试相关技术 | 第12-22页 |
| ·可逆向执行技术 | 第12-13页 |
| ·可逆向执行的技术途径 | 第13-15页 |
| ·逆向代码的生成 | 第13-14页 |
| ·类Unix系统调用fork | 第14页 |
| ·程序状态日志记录和重放 | 第14-15页 |
| ·二进制翻译技术 | 第15-17页 |
| ·二进制翻译方法分类 | 第15-16页 |
| ·二进制翻译系统框架 | 第16-17页 |
| ·二进制植入技术 | 第17-20页 |
| ·静态二进制植入技术 | 第17-18页 |
| ·动态二进制植入技术 | 第18-20页 |
| ·本章小结 | 第20-22页 |
| 第三章 基于QEMU的逆向执行技术 | 第22-44页 |
| ·动态二进制翻译系统QEMU | 第22-31页 |
| ·QEMU的运行方式 | 第23-24页 |
| ·QEMU的翻译过程 | 第24-27页 |
| ·QEMU的运行流程 | 第27-31页 |
| ·程序历史状态的记录 | 第31-41页 |
| ·植入和检查点的策略 | 第31-34页 |
| ·寄存器状态的记录 | 第34-35页 |
| ·内存状态的记录 | 第35-40页 |
| ·系统调用的记录 | 第40-41页 |
| ·程序历史状态的重建 | 第41-42页 |
| ·逆向执行策略 | 第41-42页 |
| ·进程空间内存的重建 | 第42页 |
| ·本章小结 | 第42-44页 |
| 第四章 逆向调试器PORD的设计与实现 | 第44-53页 |
| ·逆向调试器架构 | 第44-45页 |
| ·虚拟执行模块 | 第45-48页 |
| ·代码生成管理模块 | 第45-47页 |
| ·记录和重放层 | 第47-48页 |
| ·系统调用模拟 | 第48页 |
| ·调试器后端R-GDB | 第48-52页 |
| ·逆向调试命令及流程 | 第49页 |
| ·R-GDB的实现 | 第49-51页 |
| ·远程服务桩的实现 | 第51-52页 |
| ·本章小结 | 第52-53页 |
| 第五章 实验结果与分析 | 第53-60页 |
| ·实验选取 | 第53-54页 |
| ·实验验证与结果分析 | 第54-59页 |
| ·针对不同翻译模式的负载分析 | 第55-56页 |
| ·针对不同检查点粒度的负载分析 | 第56-58页 |
| ·整体性能分析和讨论 | 第58-59页 |
| ·本章小结 | 第59-60页 |
| 第六章 总结与进一步工作 | 第60-62页 |
| ·本文工作总结 | 第60页 |
| ·进一步研究方向 | 第60-62页 |
| ·多线程并发程序的逆向执行 | 第61页 |
| ·动态二进制翻译机制的进一步优化 | 第61-62页 |
| 致谢 | 第62-63页 |
| 参考文献 | 第63-66页 |
| 作者在读研期间的研究成果 | 第66-67页 |
| 附录 | 第67-68页 |