windows内核情景分析学习笔记12

来源:互联网 发布:网络恐怖小说排行榜 编辑:程序博客网 时间:2024/06/06 01:28

1、windows进程的用户空间

windows用户空间与系统空间的分界线是0x80000000。

应用软件在用户空间可以访问的最高地址是0x7ffeffff,从0x7fff0000就不让访问了,因为在分界线下留了64KB的隔离区。

应用软件在用户空间可以访问的最低地址是0x00010000,从0开始的64KB也不让访问。

 

特殊空间:

在系统空间的0xffdf0000处,存放着_KUSER_SHARED_DATA结构(4KB),这个结构是所有进程共享的。这个结构的字段都是一些系统信息,如NtSystemRoot字段,存放的是系统根目录的路径名。

 

用户空间中的格局安排:

用户空间的创建及其大的格局由内核函数MmInitializeProcessAddressSpace()实现。

除了EXE文件,还有一些DLL也要装入或映射到用户空间,其中有ntdll.dll是特殊的。此DLL在内核初始化时候,系统为其创建了一个文件映射区对象,并使全局指针PspSystemDllSection指向该对象的数据结构。

在MmInitializeProcessAddressSpace后,使用PspMapSystemDll建立ntdll.dll的映射。

之后,是进程环境块PEB的建立。这是由MmCreatePeb完成的。