使用 WinDbg 查找模块的基地址
Find base address for a module using WinDbg
如何确定 WinDbg 中特定模块(例如,ntoskrnl.exe)的基地址?这可能吗?
lm
(列表模块)显示 DLL 的信息。您可以使用 lm m <name>
按名称过滤,例如
0:000> lm m ntdll
Browse full module list
start end module name
77b90000 77d33000 ntdll (pdb symbols) d:\debug\symbols\wntdll.pdb74039C87B27BF997A06A9E2B1C84E61\wntdll.pdb
“开始”栏中的数字是基地址。您可以使用 !lmi
确认它只是一个不同的术语。该命令的输出明确提到“基址”:
0:000> !lmi ntdll
Loaded Module Info: [ntdll]
Module: ntdll
Base Address: 77b90000
[...]
事实上,模块本身的名称就可以作为基地址,所以你实际上不需要copy/paste,键入或记住基地址。例如。而不是
0:000> db 77b90000 L2
77b90000 4d 5a MZ
你也可以使用
0:000> db ntdll L2
77b90000 4d 5a MZ
(实际上 !lmi
的示例已经使用了该技巧)
如何确定 WinDbg 中特定模块(例如,ntoskrnl.exe)的基地址?这可能吗?
lm
(列表模块)显示 DLL 的信息。您可以使用 lm m <name>
按名称过滤,例如
0:000> lm m ntdll
Browse full module list
start end module name
77b90000 77d33000 ntdll (pdb symbols) d:\debug\symbols\wntdll.pdb74039C87B27BF997A06A9E2B1C84E61\wntdll.pdb
“开始”栏中的数字是基地址。您可以使用 !lmi
确认它只是一个不同的术语。该命令的输出明确提到“基址”:
0:000> !lmi ntdll
Loaded Module Info: [ntdll]
Module: ntdll
Base Address: 77b90000
[...]
事实上,模块本身的名称就可以作为基地址,所以你实际上不需要copy/paste,键入或记住基地址。例如。而不是
0:000> db 77b90000 L2
77b90000 4d 5a MZ
你也可以使用
0:000> db ntdll L2
77b90000 4d 5a MZ
(实际上 !lmi
的示例已经使用了该技巧)