| 摘要 | 第1-4页 |
| Abstract | 第4-8页 |
| 第1章 引言 | 第8-11页 |
| ·课题背景与面临的挑战 | 第8-9页 |
| ·定义和要解决的问题 | 第8页 |
| ·研究现状及课题背景 | 第8-9页 |
| ·主要工作及贡献 | 第9-10页 |
| ·论文结构安排 | 第10-11页 |
| 第2章 相关工作综述 | 第11-24页 |
| ·函数调用图生成工具概述 | 第11-13页 |
| ·静态函数调用图生成工具 | 第11-12页 |
| ·动态函数调用图生成工具 | 第12-13页 |
| ·kallsyms机制 | 第13-14页 |
| ·动态跟踪工具相关研究 | 第14-21页 |
| ·工具介绍 | 第14-19页 |
| ·跟踪工具对比分析 | 第19-21页 |
| ·逆向工程流程 | 第21-23页 |
| ·反编译技术 | 第21-22页 |
| ·分析技术 | 第22-23页 |
| ·小结 | 第23-24页 |
| 第3章 基于内核跟踪的动态函数调用图生成工具 | 第24-38页 |
| ·函数调用图生成工具概述 | 第24页 |
| ·设计思路 | 第24-26页 |
| ·动态函数调用图实现 | 第26-33页 |
| ·内核、系统及内核可加载模块的编译 | 第27页 |
| ·运行S2E获取trace数据 | 第27-31页 |
| ·DCG-RTL数据标准 | 第31页 |
| ·中间数据的处理 | 第31-32页 |
| ·扩展LXR功能 | 第32-33页 |
| ·动态函数调用图效果展示 | 第33-34页 |
| ·应用实例 | 第34-36页 |
| ·文件读写的指针函数分析 | 第35页 |
| ·可加载模块分析 | 第35-36页 |
| ·小结 | 第36-38页 |
| 第4章 基于动态函数调用分析的内核可加载模块的逆向工程方法 | 第38-49页 |
| ·基于动态函数调用分析的逆向工程的工作流程 | 第38-39页 |
| ·获取加载模块ELF格式各段的起始位置和大小 | 第39-41页 |
| ·基于动态函数调用分析的逆向工程的实现 | 第41-48页 |
| ·获取跟踪数据 | 第41页 |
| ·筛选数据 | 第41-42页 |
| ·代码分段 | 第42-43页 |
| ·二进制代码反编译 | 第43-44页 |
| ·代码汇集 | 第44-45页 |
| ·编译验证 | 第45-48页 |
| ·小结 | 第48-49页 |
| 第5章 实验验证 | 第49-59页 |
| ·实验环境及准备 | 第49-50页 |
| ·内核可加载模块加载过程 | 第50-51页 |
| ·实验一 | 第51-58页 |
| ·记录跟踪数据 | 第51页 |
| ·数据筛选 | 第51-52页 |
| ·代码分段 | 第52-53页 |
| ·二进制代码反编译 | 第53-55页 |
| ·代码汇集 | 第55-57页 |
| ·编译汇编代码并加载验证 | 第57-58页 |
| ·小结 | 第58-59页 |
| 第6章 结论以及进一步工作 | 第59-61页 |
| ·结论 | 第59-60页 |
| ·进一步工作 | 第60-61页 |
| 参考文献 | 第61-63页 |
| 致谢 | 第63-65页 |
| 个人简历、在学期间发表的学术论文与研究成果 | 第65页 |