今天用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,然后在内核地址空间加入网盾程序代码么?

解决方案 »

  1.   

    在问个问题:头部, Exe 头部
    地址 值 含意
    00000000 5A4D 签名: MZ
    00000002 0090 额外字节
    00000004 0003 页
    00000006 0000 重定位项目
    00000008 0004 标头大小
    0000000A 0000 最小允许
    0000000C FFFF 最大允许
    0000000E 0000 初始 SS
    00000010 00B8 初始 SP
    00000012 0000 校验
    00000014 0000 初始 IP
    00000016 0000 初始 CS
    00000018 0040 重定位表
    0000001A 0000 覆盖头部, Coff 头部
    地址 值 含意
    000000C0 00004550 签名: PE
    000000C4 014C 机器: 014C=I386
    000000C6 0007 区段数
    000000C8 4A14E2A6 时期/日期戳
    000000CC 00000000 指示到符号表
    000000D0 00000000 符号数
    000000D4 00E0 可选标头大小
    000000D6 210E 特性
    头部, 可选头部
    地址 值 含意
    000000D8 010B Magic: 010B=普通可执行,0107=ROM 映像
    000000DA 06 主版本号连接
    000000DB 00 副版本号连接
    000000DC 0010A000 代码段大小
    000000E0 00071400 已初始化数据大小
    000000E4 00000000 未初始化数据大小
    000000E8 00128001 登录指示 RVA
    000000EC 00001000 代码基部
    000000F0 0010B000 数据基部
    000000F4 11000000 映像基数
    000000F8 00001000 区段队列
    000000FC 00000200 文件队列
    00000100 0004 操作系统主版本
    00000102 0000 操作系统副版本
    00000104 0001 用户主版本
    00000106 0000 用户副版本
    00000108 0004 子系统主版本
    0000010A 0000 子系统副版本
    0000010C 00000000 已保留
    00000110 00156000 映像大小
    00000114 00001000 标头大小
    00000118 0012DA27 文件校验
    0000011C 0002 子系统: 1=本地,2=Windows GUI,3=Windows CUI,4=POSIX CUI
    0000011E 0000 DLL 标记 (废弃)
    00000120 00100000 堆栈已保留大小
    00000124 00001000 堆栈提交大小
    00000128 00100000 堆积保留大小
    0000012C 00001000 堆积提交大小
    00000130 00000000 加载器标记 (废弃)
    00000134 00000010 数据目录数
    00000138 00127000 输出表地址
    0000013C 000000A2   & 大小
    00000140 00128A50 输入表地址
    00000144 000000DC   & 大小
    00000148 0010D000 资源表地址
    0000014C 00006794   & 大小
    00000150 00000000 异常表地址
    00000154 00000000   & 大小
    00000158 00000000 安全表地址
    0000015C 00000000   & 大小
    00000160 001289DC 基部重定位表地址
    00000164 00000008   & 大小
    00000168 00000000 调试数据地址
    0000016C 00000000   & 大小
    00000170 00000000 版权数据地址
    00000174 00000000   & 大小
    00000178 00000000 全局 Ptr
    0000017C 00000000   & 大小
    00000180 00000000 TLS 表地址
    00000184 00000000   & 大小
    00000188 00000000 载入配置表地址
    0000018C 00000000   & 大小头部, 区段头部, .rsrc
    地址 值 含意
    00000208 .rsrc    区段名
    00000210 00006794 虚拟大小
    00000214 0010D000 RVA/偏移
    00000218 00006800 Raw 数据大小
    0000021C 00030600 指向 Raw 数据
    00000220 00000000 指向重定位
    00000224 00000000 指向行数
    00000228 0000 重定位号
    0000022A 0000 行数号
    0000022C E0000040 区段标记 (可写入, 可读取, 可执行, 已初始化数据)我在一个论坛里看到有人不知道用的什么工具,能分析出来pe结构,得到这么多信息。
    谁知道这是什么工具啊????????????????????