调试NTDLL加载

1 随便切到一个进程

0: kd> !process 0 0 explorer.exe
PROCESS 8157e9a8 SessionId: 0 Cid: 06a4 Peb: 7ffde000 ParentCid: 0688
DirBase: 01f401e0 ObjectTable: e1f44840 HandleCount: 341.
Image: Explorer.EXE

0: kd> !dlls

0x00251f18: C:WINDOWSsystem32 tdll.dll
Base 0x7c920000 EntryPoint 0x7c932c28 Size 0x00093000
Flags 0x80084004 LoadCount 0x0000ffff TlsIndex 0x00000000
LDRP_IMAGE_DLL
LDRP_ENTRY_PROCESSED
LDRP_PROCESS_ATTACH_CALLED 

2 把虚拟地址转为物理地址

0: kd> !vtop 01f401e0 0x7c932c28
X86VtoP: Virt 7c932c28, pagedir 1f401e0
X86VtoP: PAE PDPE 1f401e8 - 0000000003ff7801
X86VtoP: PAE PDE 3ff7f20 - 0000000003bff867
X86VtoP: PAE PTE 3bff990 - 0000000005c7a025
X86VtoP: PAE Mapped phys 5c7ac28
Virtual address 7c932c28 translates to physical address 5c7ac28.

3 往物理地址写入断点

0: kd> !eb 5c7ac28 cc
0: kd> g

ntdll!_DllMainCRTStartupForGS:
001b:7c932c28 cc int 3
0: kd> kvnf
# Memory ChildEBP RetAddr Args to Child
00 04dafc10 7c92118a 7c920000 00000002 00000000 ntdll!_DllMainCRTStartupForGS (FPO: [Non-Fpo])
01 20 04dafc30 7c93b175 7c932c28 7c920000 00000002 ntdll!LdrpCallInitRoutine+0x14
02 74 04dafca4 7c93afee 04dafd30 04dafd30 00b80000 ntdll!LdrpInitializeThread+0xc0 (FPO: [Non-Fpo])
03 78 04dafd1c 7c92e437 04dafd30 7c920000 00000000 ntdll!_LdrpInitialize+0x219 (FPO: [Non-Fpo])
04 00000000 00000000 00000000 00000000 00000000 ntdll!KiUserApcDispatcher+0x7
0: kd> !stacks

原文地址:https://www.cnblogs.com/sysnap/p/4973989.html