为什么lm命令不显示模块?

时间:2018-04-28 21:45:01

标签: debugging kernel virtual-machine windbg

我在虚拟机中打开了一个计算器,但是当尝试使用命令lm从windbg查看它时,它没有显示出来。

kd> !process 0 0 calc.exe
PROCESS ffffe0000046a080
    SessionId: 1  Cid: 0144    Peb: 7ff7f76df000  ParentCid: 0868
    DirBase: 18290000  ObjectTable: ffffc000031739c0  HandleCount: <Data Not Accessible>
    Image: calc.exe

kd> .process ffffe0000046a080
Implicit process is now ffffe000`0046a080
kd> !peb
PEB at 00007ff7f76df000
    InheritedAddressSpace:    No
    ReadImageFileExecOptions: No
    BeingDebugged:            No
    ImageBaseAddress:         00007ff7f8060000
    Ldr                       00007ffdc286f3c0
    Ldr.Initialized:          Yes
    Ldr.InInitializationOrderModuleList: 0000008db0261ae0 . 0000008db028fb60
    Ldr.InLoadOrderModuleList:           0000008db0261c40 . 0000008db028fb40
    Ldr.InMemoryOrderModuleList:         0000008db0261c50 . 0000008db028fb50
                    Base TimeStamp                     Module
            7ff7f8060000 5215ed3e Aug 22 05:51:42 2013 C:\Windows\system32\calc.exe
            7ffdc2740000 523d5305 Sep 21 03:04:21 2013 C:\Windows\SYSTEM32\ntdll.dll
            7ffdc03e0000 523d5199 Sep 21 02:58:17 2013 C:\Windows\system32\KERNEL32.DLL
            7ffdbfec0000 523d557d Sep 21 03:14:53 2013 C:\Windows\system32\KERNELBASE.dll

更改上下文并没有帮助,但我不得不尝试一下。我记得列在列表顶部的 calc ,但我不知道在什么情况下

kd> lm
start             end                 module name
fffff800`00000000 fffff800`00088000   CI         (deferred)             
fffff800`0008a000 fffff800`000f0000   mcupdate_GenuineIntel   (deferred)             
fffff800`000f0000 fffff800`000fe000   werkernel   (deferred)             
...

2 个答案:

答案 0 :(得分:3)

使用.process / p / r

或使用
.reload / user

列出您的用户模式模块

kd> !process 0 0 calc.exe
PROCESS 865a3030  SessionId: 1  Cid: 0fe4    Peb: 7ffda000  ParentCid: 0850
    DirBase: 7e24a6e0  ObjectTable: c44a2df0  HandleCount:  81.
    Image: calc.exe

kd> .process 865a3030
Implicit process is now 865a3030
kd> lm m calc*
Browse full module list
start    end        module name

kd> .reload /user
Loading User Symbols

kd> lm m calc*
Browse full module list
start    end        module name
00e00000 00ec0000   calc       (deferred)             

kd> !process 0 0 calc.exe
PROCESS 865a3030  SessionId: 1  Cid: 0fe4    Peb: 7ffda000  ParentCid: 0850
    DirBase: 7e24a6e0  ObjectTable: c44a2df0  HandleCount:  81.
    Image: calc.exe

kd> .process 865a3030
Implicit process is now 865a3030
kd> lm m calc*
Browse full module list
start    end        module name


kd> .process /p /r 865a3030
Implicit process is now 865a3030
Loading User Symbols

kd> lm m calc*
Browse full module list
start    end        module name
00e00000 00ec0000   calc       (deferred)             

答案 1 :(得分:0)

在做了blabb之后,它确实显示了它,实际上不仅列出了内核内存(fffff8 ...),还列出了用户内存(00007 ..)。

kd> lm
start             end                 module name
00007ff7`35260000 00007ff7`35346000   calc       (deferred)             
00007ffa`f7500000 00007ffa`f7563000   oleacc     (deferred)             
[...]       
00007ffa`fcbe0000 00007ffa`fcd89000   ntdll      (deferred)             
fffff800`00000000 fffff800`0005f000   volmgrx    (deferred)             
[...]     
fffff800`000dd000 fffff800`0013f000   CLFS       (deferred)