| 摘要 | 第1-5页 |
| ABSTRACT | 第5-9页 |
| 第一章 绪论 | 第9-13页 |
| ·课题背景 | 第9-10页 |
| ·本文研究意义 | 第10-11页 |
| ·论文的主要工作 | 第11-12页 |
| ·论文的组织结构 | 第12-13页 |
| 第二章 相关技术基础 | 第13-25页 |
| ·基本概念 | 第13-15页 |
| ·可执行文件 | 第13页 |
| ·加载 | 第13-14页 |
| ·基地址和相对地址 | 第14页 |
| ·重定位 | 第14页 |
| ·进程 | 第14-15页 |
| ·线程 | 第15页 |
| ·Windows 存储管理机制 | 第15-25页 |
| ·虚拟内存 | 第15-16页 |
| ·进程虚拟地址空间 | 第16-18页 |
| ·内核对用户空间的管理 | 第18-20页 |
| ·内核对物理存储的管理 | 第20-21页 |
| ·虚存页面与物理内存的映射 | 第21-22页 |
| ·共享映射区(Section) | 第22-25页 |
| 第三章 PE 文件格式详细分析 | 第25-38页 |
| ·PE 文件格式简介 | 第25-26页 |
| ·PE 文件的大致布局 | 第26-38页 |
| ·文件头部 | 第27-30页 |
| ·PE 段表(The Section Table) | 第30页 |
| ·常用Sections | 第30-38页 |
| 第四章 WINDOWS 系统下可执行文件的加载流程 | 第38-59页 |
| ·运行一个可执行程序的整体流程 | 第38-43页 |
| ·第一阶段:打开目标映像文件,创建Section | 第38-39页 |
| ·第二阶段:创建内核中的进程对象 | 第39-40页 |
| ·第三阶段:创建初始线程 | 第40-41页 |
| ·第四阶段:通知Windows 子系统 | 第41-42页 |
| ·第五阶段:启动初始线程 | 第42页 |
| ·第六阶段:用户空间的初始化和DLL 的链接 | 第42-43页 |
| ·加载可执行文件 | 第43-48页 |
| ·判定可执行文件是否是PE 格式 | 第43页 |
| ·建立共享映射区Section | 第43-45页 |
| ·将共享映射区映射到进程的用户地址空间 | 第45-46页 |
| ·分配物理页面并建立实际的页面映射 | 第46-48页 |
| ·ImportTable 逻辑处理 | 第48页 |
| ·加载系统DLL | 第48页 |
| ·加载其他DLL 文件 | 第48-59页 |
| ·PEB 中相关的数据成员 | 第49页 |
| ·DLL 的加载过程 | 第49-59页 |
| 第五章 WINDOWS 系统下的单进程迁移项目 | 第59-75页 |
| ·总体设计 | 第60-61页 |
| ·总体模块图 | 第60页 |
| ·总体结构说明 | 第60-61页 |
| ·主要的文件格式及全局数据结构 | 第61-64页 |
| ·子模块具体设计与实现 | 第64-73页 |
| ·客户端主模块(CkptManager) | 第64-65页 |
| ·Ckpt.dll 模块 | 第65-70页 |
| ·NetClient 模块 | 第70页 |
| ·NetSever 模块 | 第70-71页 |
| ·RecvManager 模块 | 第71页 |
| ·Recv.dll 模块 | 第71-73页 |
| ·功能测试与分析 | 第73-75页 |
| 第六章 总结与展望 | 第75-76页 |
| 致谢 | 第76-77页 |
| 参考文献 | 第77-79页 |