今天用process explorer看我的程序进程中所加载的模块信息:
如下:

其中映射分为2部分,一是映像,这个我明白,这个映像分为3种:
一种是我的程序主动加载的dll文件。
二是其他程序注入到我的进程中的dll。
三内核空间中的映像。
但是注意看0x0100000和0x0这两个imagebase,这两个地址是我不能理解的地方,
我的程序PE文件映射到内存的起始地址是0x400000这个地方,显然上面的程序是在内核空间中的。
这些进程有360升级程序,360网盾防护程序,还有输入法和foxmail。
对0x0100000和0x0这两个地址:
1 0x0,为什么在这个地址上对应的是映射数据,这个映射数据是怎么来的?为什么是在这个关键的地址上?这个地址是虚拟地址空间的最开始,这里不应该是内核写ldt这些数据的地方么。对于输入法,我到是知道输入法是系统帮助注入到进程当中的,但是为什么注入的是数据,而且还是在0x0这个地方,不应该注入代码么?
2 0x0100000 这显然是360网盾程序的虚拟内存地址,我想问的是这个网盾程序是如何把这个地址写到0x010000这个位置的?是写一个驱动程序,修改了内核的GDT,然后在内核地址空间加入网盾程序代码么?