4.3.1 windows
四种状况建立新进程并调用MmInitializeProcessAddressSpace, 调用完这个函数的时候,一个进程的地址空间基本创建了,函数
可执行文件的映像和ntdll.dll(内存区对象)已经被映射到恰当的虚拟地址范围内。线程
介绍到 在新进程的地址空间中,会克隆系统空间的页目录到新进程的页目录.对象
KeAttachProcess() 与 KeDetachProcess()进程
KeAttachProcess()函数的执行的时候,会把当前线程附载在新的的进程对象上,关键是把CR3切换为新进程的页目录内存
KeDetachProcess 把线程恢复到父进程!it
4.3.2基础
每一个进程都有本身独立的页目录,前半部分对应于0x0 -- 0x7ff fffff 是每一个进程私有的,后半部分是拷贝系统空间的页目录。方法
4.3.3 VAD来管理0x0 -- 0x7ff fffff 空间!文件
4.3.4 在VAD的节点中有一种重要的类型 内存区对象。 内存区对象是windows 平台 ,两个或多个进程之间共享内存的一种经常使用方法。
它能够被映射到系统的页面文件或者其余文件上!
内存区对象分种:一种创建在页面文件的基础上,称为:页面文件支撑的内存区
另一种被映射到其余文件,称为文件支撑的内存区,或者文件映射对象