基于ROP技术的攻击自动化构造与程序混淆研究
| 摘要 | 第4-5页 |
| ABSTRACT | 第5页 |
| 第一章 引言 | 第9-13页 |
| 1.1 研究背景 | 第9-11页 |
| 1.2 研究内容 | 第11页 |
| 1.3 本文组织 | 第11-13页 |
| 第二章 相关工作 | 第13-30页 |
| 2.1 代码复用攻击的发展 | 第13-20页 |
| 2.1.1 Return-into-libc | 第13-14页 |
| 2.1.2 ROP | 第14-17页 |
| 2.1.3 JOP | 第17页 |
| 2.1.4 SROP | 第17-18页 |
| 2.1.5 TOP | 第18-19页 |
| 2.1.6 ROP的新发展 | 第19-20页 |
| 2.2 针对ROP的防御措施 | 第20-26页 |
| 2.2.1 ASLR | 第20-22页 |
| 2.2.2 CFI | 第22-23页 |
| 2.2.3 Taint | 第23-25页 |
| 2.2.4 其它防御措施 | 第25-26页 |
| 2.3 程序混淆与逆向工程 | 第26-28页 |
| 2.3.1 Phoenix反编译技术 | 第26-27页 |
| 2.3.2 信号处理机制混淆控制流技术 | 第27-28页 |
| 2.4 研究的意义 | 第28-29页 |
| 2.5 本章小结 | 第29-30页 |
| 第三章 攻击自动化构造研究 | 第30-55页 |
| 3.1 隐蔽性设计 | 第30-33页 |
| 3.1.1 Gadget搜索 | 第30-32页 |
| 3.1.2 Payload可打印 | 第32-33页 |
| 3.1.3 Gadget的指令条数 | 第33页 |
| 3.2 多态性设计 | 第33-34页 |
| 3.3 自动化构造 | 第34-44页 |
| 3.3.1 自动化构造概述 | 第34-35页 |
| 3.3.2 建立语义树 | 第35-37页 |
| 3.3.3 构建状态机 | 第37-39页 |
| 3.3.4 Gadget排布 | 第39-42页 |
| 3.3.5 内存排布 | 第42-43页 |
| 3.3.6 扩展研究English ROP | 第43-44页 |
| 3.4 系统实现 | 第44-46页 |
| 3.5 测试与分析 | 第46-55页 |
| 3.5.1 ROP自动化构造有效性测试 | 第46-48页 |
| 3.5.2 自动化构造效率 | 第48-49页 |
| 3.5.3 隐蔽性效果 | 第49-50页 |
| 3.5.4 多态性效果 | 第50-52页 |
| 3.5.5 个案研究 | 第52-54页 |
| 3.5.6 扩展测试English ROP | 第54-55页 |
| 第四章 ROP混淆程序控制流研究 | 第55-65页 |
| 4.1 ROP混淆程序控制流的框架 | 第55-56页 |
| 4.2 反汇编并划分基本块 | 第56页 |
| 4.3 ROP插桩 | 第56-58页 |
| 4.4 汇编与重编译 | 第58页 |
| 4.5 整合与重构 | 第58-59页 |
| 4.6 ROP混淆控制流技术的测试和评价 | 第59-65页 |
| 4.6.1 ROP混淆程序控制流效果 | 第59-61页 |
| 4.6.2 ROP混淆控制流的负载 | 第61-65页 |
| 第五章 总结 | 第65-67页 |
| 5.1 本文工作的意义 | 第65页 |
| 5.2 不足和改进 | 第65-67页 |
| 参考文献 | 第67-71页 |
| 攻读硕士学位期间参与的科研项目 | 第71页 |
| 攻读硕士学位期间完成的论文 | 第71-72页 |
| 致谢 | 第72-73页 |