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页 |