【发布时间】:2012-06-21 01:41:26
【问题描述】:
我正在试验 LibVMI 和 Windows 7 32 位;要正确设置,我需要查看 EPROCESS 结构的前 8 个字节(库在内存中搜索幻数,应该是它)。
我的 Windows-fu 不强,谁能告诉我如何转储适当的内存?我正在运行本地内核调试器,并且已经达到了“dt nt!_EPROCESS”,但这似乎只是向我展示了结构的格式,而不是其中的实际内容。
【问题讨论】:
我正在试验 LibVMI 和 Windows 7 32 位;要正确设置,我需要查看 EPROCESS 结构的前 8 个字节(库在内存中搜索幻数,应该是它)。
我的 Windows-fu 不强,谁能告诉我如何转储适当的内存?我正在运行本地内核调试器,并且已经达到了“dt nt!_EPROCESS”,但这似乎只是向我展示了结构的格式,而不是其中的实际内容。
【问题讨论】:
命令是:
dt nt!_EPROCESS <address>
您应该能够从!process 0 7 的输出中获取地址。
【讨论】:
我想通了——Seva Titov 的回答与我所做的类似。我是这样做的:
!process 0 0
这给了我一个正在运行的进程的简短列表;我专门启动了 calc.exe 来运行一个简单的小程序,所以我查看了列表然后运行:
!process calc.exe
输出的第一行以PROCESS 83f81178 开头,这是重要的一点。然后我做了:
db 83f81178
它向我展示了从那个偏移量开始的一大块内存,看起来像这样:
83f81178 03 00 26 00 00 00 00 00--80 11 f8 83 80 11 f8 83 ..&............
83f81188 88 11 f8 83 88 11 f8 83--80 23 e2 3e 00 00 00 00 ........#.>....
这正是我需要的,所以我停在那里。
【讨论】: