| 摘要 | 第1-5页 |
| ABSTRACT | 第5-9页 |
| 第一章 引言 | 第9-17页 |
| ·计算机软件保护技术的发展 | 第9-13页 |
| ·基于硬件的保护方式 | 第9-10页 |
| ·基于软件的保护方式 | 第10-13页 |
| ·加壳程序的现状及发展 | 第13-15页 |
| ·本文主要研究工作 | 第15-17页 |
| 第二章 加壳程序基础知识概述 | 第17-31页 |
| ·认识壳 | 第17-19页 |
| ·PE 文件格式 | 第19-25页 |
| ·PE 文件格式概览 | 第19-21页 |
| ·PE 文件的节 | 第21页 |
| ·相对虚拟地址 | 第21-22页 |
| ·数据目录 | 第22页 |
| ·导入函数 | 第22页 |
| ·导出表 | 第22-23页 |
| ·导入表 | 第23-24页 |
| ·基址重定位 | 第24-25页 |
| ·调试目录 | 第25页 |
| ·TLS 初始化 | 第25页 |
| ·PE 文件的加载过程 | 第25-26页 |
| ·结构化异常处理 | 第26-30页 |
| ·SEH 处理流程 | 第26-27页 |
| ·关于 SEH 的嵌套和堆栈展开 | 第27-28页 |
| ·默认SEH 处理 | 第28页 |
| ·SEH 的应用 | 第28-30页 |
| 本章小结 | 第30-31页 |
| 第三章 加壳程序中的反调试技术 | 第31-59页 |
| ·简介 | 第31页 |
| ·调试器检测技术 | 第31-47页 |
| ·进程环境块(PEB)中的调试标志 | 第32-33页 |
| ·进程环境块(PEB)中的堆栈标志 | 第33-34页 |
| ·调试器端口检测 | 第34-35页 |
| ·调试器中断检测 | 第35-36页 |
| ·时间间隔检测 | 第36-37页 |
| ·调试器优先权检测 | 第37-38页 |
| ·检测父进程 | 第38-39页 |
| ·调试器对象检测 | 第39-40页 |
| ·调试器窗口查找 | 第40-41页 |
| ·调试器进程名查找 | 第41页 |
| ·调试器设备名称查找 | 第41-42页 |
| ·OLLYDBG 的页保护检测 | 第42-43页 |
| ·软断点检测 | 第43-44页 |
| ·硬断点检测 | 第44-46页 |
| ·完整性校验 | 第46-47页 |
| ·INT 2D 中断检测 | 第47页 |
| ·调试器攻击技术 | 第47-52页 |
| ·向调试器抛出异常 | 第47-48页 |
| ·输入锁定 | 第48-49页 |
| ·向调试器隐藏线程 | 第49-50页 |
| ·设置UNHANDLED EXCEPTION FILTER | 第50-51页 |
| ·OLLYDBG 格式化字符串漏洞 | 第51-52页 |
| ·其他常用技术 | 第52-58页 |
| ·进程注入 | 第52-53页 |
| ·双进程 | 第53页 |
| ·TLS 回调函数 | 第53-54页 |
| ·入口点偷代码 | 第54-56页 |
| ·IAT 加密 | 第56-57页 |
| ·多线程 | 第57页 |
| ·虚拟机 | 第57-58页 |
| 本章小结 | 第58-59页 |
| 第四章 多态变形技术及对抗启发式代码仿真检测技术 | 第59-81页 |
| ·多态变形技术 | 第59-69页 |
| ·介绍 | 第59-61页 |
| ·随机寄存器选择器 | 第61-63页 |
| ·随机值选择器 | 第63-64页 |
| ·译码器生成器 | 第64-67页 |
| ·垃圾指令生成器 | 第67-69页 |
| ·对抗启发式代码仿真检测技术 | 第69-79页 |
| ·介绍 | 第70-71页 |
| ·通过指令预取反跟踪技术 | 第71-73页 |
| ·通过FPU 的手段 | 第73-74页 |
| ·通过INT 1 的手段 | 第74-75页 |
| ·通过INT 6 的手段 | 第75-76页 |
| ·初始化寄存器方式 | 第76-77页 |
| ·无限循环 | 第77-78页 |
| ·利用SEH 方式 | 第78页 |
| ·多线程解密 | 第78页 |
| ·分析执行逻辑方式 | 第78-79页 |
| 本章小结 | 第79-81页 |
| 第五章 结论 | 第81-82页 |
| 致谢 | 第82-83页 |
| 参考文献 | 第83-86页 |
| 在校期间研究成果 | 第86-87页 |