lm 命令不显示正确的模块
lm command does not show correct module
我使用 WinDbg 分析 Adobe Acrobat Reader,AcroRd32.exe
。我想查看 AcroRd.exe
加载了哪些模块(与 AcroRd32.exe
在同一目录中的 .dll 模块)。
我使用 WinDbg 监控打开一个 PDF 文件,然后使用 lm
命令显示加载的模块。但是,没有与 AcroRd32.exe
具有相同目录的模块 (.DLL)。
这是否意味着 AcroRd32.exe
没有使用这些 DLL?为了验证我的假设,我删除了与 AcroRd32.exe
在同一目录中的所有 DLL 文件。那么AcroRd32.exe
就不能正常启动了。这意味着这些 DLL 是 AcroRd32.exe
所必需的。但是为什么 WinDbg 的 lm
命令没有显示这些 DLL 模块?
Acrobat Reader 启动它自己的另一个实例。您需要调试第二个实例以查看正在加载的模块:
ntdll!LdrpDoDebuggerBreak+0x2b:
77e9db9b cc int 3
0:000> .childdbg 1
Processes created by the current process will be debugged
0:000> sxe cpr
0:000> g
[...]
Executable search path is:
ModLoad: 00c20000 00e45000 AcroRd32.exe
至此,第二个实例即将启动
1:010> g
ntdll!LdrpDoDebuggerBreak+0x2b:
77e9db9b cc int 3
1:010> g
如果您在 Acrobat Reader 加载时中断,您将看到:
1:010> |0s
0:000> lmf
[...]
No Adobe Acrobat Reader DLLs
[...]
0:000> |1s
1:010> lmf
[...]
56910000 56961000 sqlite C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\sqlite.dll
56970000 569a4000 AXE8SharedExpat C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AXE8SharedExpat.dll
569b0000 56a9c000 ACE C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\ACE.dll
56aa0000 56d78000 CoolType C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\CoolType.dll
56d80000 56d9e000 BIB C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\BIB.dll
56da0000 572c2000 AGM C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AGM.dll
[...]
第一个实例没有从 Adobe Acrobat 的目录加载 DLL,但第二个实例有。
我使用 WinDbg 分析 Adobe Acrobat Reader,AcroRd32.exe
。我想查看 AcroRd.exe
加载了哪些模块(与 AcroRd32.exe
在同一目录中的 .dll 模块)。
我使用 WinDbg 监控打开一个 PDF 文件,然后使用 lm
命令显示加载的模块。但是,没有与 AcroRd32.exe
具有相同目录的模块 (.DLL)。
这是否意味着 AcroRd32.exe
没有使用这些 DLL?为了验证我的假设,我删除了与 AcroRd32.exe
在同一目录中的所有 DLL 文件。那么AcroRd32.exe
就不能正常启动了。这意味着这些 DLL 是 AcroRd32.exe
所必需的。但是为什么 WinDbg 的 lm
命令没有显示这些 DLL 模块?
Acrobat Reader 启动它自己的另一个实例。您需要调试第二个实例以查看正在加载的模块:
ntdll!LdrpDoDebuggerBreak+0x2b:
77e9db9b cc int 3
0:000> .childdbg 1
Processes created by the current process will be debugged
0:000> sxe cpr
0:000> g
[...]
Executable search path is:
ModLoad: 00c20000 00e45000 AcroRd32.exe
至此,第二个实例即将启动
1:010> g
ntdll!LdrpDoDebuggerBreak+0x2b:
77e9db9b cc int 3
1:010> g
如果您在 Acrobat Reader 加载时中断,您将看到:
1:010> |0s
0:000> lmf
[...]
No Adobe Acrobat Reader DLLs
[...]
0:000> |1s
1:010> lmf
[...]
56910000 56961000 sqlite C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\sqlite.dll
56970000 569a4000 AXE8SharedExpat C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AXE8SharedExpat.dll
569b0000 56a9c000 ACE C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\ACE.dll
56aa0000 56d78000 CoolType C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\CoolType.dll
56d80000 56d9e000 BIB C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\BIB.dll
56da0000 572c2000 AGM C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AGM.dll
[...]
第一个实例没有从 Adobe Acrobat 的目录加载 DLL,但第二个实例有。