今天用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,然后在内核地址空间加入网盾程序代码么?
如下:
其中映射分为2部分,一是映像,这个我明白,这个映像分为3种:
一种是我的程序主动加载的dll文件。
二是其他程序注入到我的进程中的dll。
三内核空间中的映像。但是注意看0x0100000和0x0这两个imagebase,这两个地址是我不能理解的地方,
我的程序PE文件映射到内存的起始地址是0x400000这个地方,显然上面的程序是在内核空间中的。
这些进程有360升级程序,360网盾防护程序,还有输入法和foxmail。对0x0100000和0x0这两个地址:
1 0x0,为什么在这个地址上对应的是映射数据,这个映射数据是怎么来的?为什么是在这个关键的地址上?这个地址是虚拟地址空间的最开始,这里不应该是内核写ldt这些数据的地方么。对于输入法,我到是知道输入法是系统帮助注入到进程当中的,但是为什么注入的是数据,而且还是在0x0这个地方,不应该注入代码么?2 0x0100000 这显然是360网盾程序的虚拟内存地址,我想问的是这个网盾程序是如何把这个地址写到0x010000这个位置的?是写一个驱动程序,修改了内核的GDT,然后在内核地址空间加入网盾程序代码么?
解决方案 »
- 昨天她答应做我女朋友了,所以我今年不用一个人过光棍节了,很开心,很幸福,很甜蜜。
- HOOK PeekMessageW咋就这么费劲呢......
- 请教:关于com接口参数类型的问题
- mysql中插入中文字问题。
- 一个关机代码,请指教为何是错的?
- 这个效果如何做?如: Photoshop 里用鼠标选定一矩形后。有一个流动状态的虚线框。这里如何做出来的?
- 有关显示double类型数据的基础问题
- 软件发布--快车伴侣V1.0--提供源码,内详
- 请问在数学表达式中求e的x次方用什么函数啊???
- 绑定解绑任务栏图标的taskbarpin/taskbarunpin具体程序在哪?
- 内存溢出导致程序崩溃
- 来人啊,救命...........
地址 值 含意
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结构,得到这么多信息。
谁知道这是什么工具啊????????????????????