摘要 | 第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页 |