Windows应用程序内存防护研究
| 摘要 | 第1-5页 |
| Abstract | 第5-9页 |
| 图目录 | 第9-10页 |
| 表目录 | 第10-11页 |
| 1. 引言 | 第11-13页 |
| ·研究背景 | 第11页 |
| ·本文的研究内容 | 第11-12页 |
| ·本文的组织结构 | 第12页 |
| ·攻读硕士阶段的主要工作 | 第12-13页 |
| 2. Windows的内存管理机制及其安全威胁 | 第13-24页 |
| ·虚拟地址空间 | 第13-15页 |
| ·虚拟地址空间划分 | 第13-14页 |
| ·进程地址空间初始化 | 第14-15页 |
| ·页表管理 | 第15-16页 |
| ·x86的地址转译过程 | 第15-16页 |
| ·Windows操作系统页表结构 | 第16页 |
| ·物理内存管理 | 第16-19页 |
| ·相关API函数 | 第19-20页 |
| ·安全威胁分析 | 第20-24页 |
| ·来自进程外部的攻击 | 第20-21页 |
| ·修改CR3寄存器 | 第20-21页 |
| ·直接操作页表 | 第21页 |
| ·来自进程内部的攻击 | 第21-24页 |
| ·用户态代码 | 第21页 |
| ·内核态代码 | 第21-24页 |
| 3. 相关研究分析 | 第24-30页 |
| ·游戏保护 | 第24-26页 |
| ·游戏系统安全威胁 | 第24-25页 |
| ·游戏保护措施 | 第25-26页 |
| ·禁止非法读取和修改游戏进程内存数据 | 第25页 |
| ·禁止对游戏程序的调试 | 第25页 |
| ·禁止对游戏程序的代码注入 | 第25-26页 |
| ·游戏保护系统分析 | 第26页 |
| ·NICKLE | 第26-28页 |
| ·NICKLE保护模型 | 第26-28页 |
| ·NICKLE分析 | 第28页 |
| ·基于虚拟化的物理页帧加密技术 | 第28-30页 |
| ·基于虚拟化的物理页帧加密技术模型 | 第28-29页 |
| ·模型分析 | 第29-30页 |
| 4. Windows应用程序内存防护系统设计 | 第30-40页 |
| ·设计目标和假设 | 第30-31页 |
| ·系统架构设计 | 第31-37页 |
| ·Hypervisor架构 | 第31-32页 |
| ·影子页表 | 第32-33页 |
| ·页表访问控制 | 第33-34页 |
| ·其他进程的页表访问控制 | 第33-34页 |
| ·受保护进程的页表访问控制 | 第34页 |
| ·物理页帧加密 | 第34-35页 |
| ·数据不可执行 | 第35-37页 |
| ·安全分析 | 第37-40页 |
| ·进程外部攻击 | 第37-38页 |
| ·写CR3寄存器 | 第37-38页 |
| ·直接修改页表 | 第38页 |
| ·进程内部攻击 | 第38-40页 |
| ·内核态代码 | 第38页 |
| ·用户态代码 | 第38-40页 |
| 5. Windows应用程序内存防护系统实现 | 第40-55页 |
| ·Intel VT技术 | 第40-41页 |
| ·VMM初始化 | 第41-42页 |
| ·预处理与加载 | 第42-45页 |
| ·进程页表管理 | 第45-46页 |
| ·硬件支持 | 第45页 |
| ·页表管理策略 | 第45-46页 |
| ·CR3访问控制 | 第45-46页 |
| ·其他进程页表的访问控制 | 第46页 |
| ·受保护进程的页表的管理 | 第46页 |
| ·模式切换 | 第46-52页 |
| ·用户模式切换到内核模式 | 第47-50页 |
| ·jmp和call指令 | 第47-48页 |
| ·int指令 | 第48-49页 |
| ·SYSENTER和SYSCALL指令 | 第49-50页 |
| ·内核模式切换到用户模式 | 第50-52页 |
| ·ret指令 | 第50页 |
| ·iret指令 | 第50-51页 |
| ·SYSEXIT和SYSRET指令 | 第51-52页 |
| ·延迟同步 | 第52-54页 |
| ·延迟加密 | 第52-53页 |
| ·延迟解密 | 第53-54页 |
| ·系统DLL保护 | 第54-55页 |
| 6. 系统原型测试与分析 | 第55-59页 |
| ·测试环境 | 第55页 |
| ·功能测试 | 第55-57页 |
| ·性能测试 | 第57-59页 |
| 7. 总结与展望 | 第59-60页 |
| 参考文献 | 第60-62页 |
| 致谢 | 第62-63页 |