檢視函式
funnewwlxloggedoutsas
的引數kd> kb
childebp retaddrargs to child
0006edc8 7c9859f2 00000000 c00000050006f0d0 ntdll!dbgbreakpoint
0006ee08 7c986101 0006f0d0 7c9861060006f088 ntdll!rtlunhandledexceptionfilter2+0x27b
0006ee18 7c862cd3 0006f0d0 c0000005002a1e90 ntdll!rtlunhandledexceptionfilter+0x12
0006f088 77c02f0f 0006f0d0 0000000000000000 kernel32!unhandledexceptionfilter+0x149
0006f0a4 0103d4fa 00000000 0006f0d077c05cf5 msvcrt!_xcptfilter+0x161
0006f0b0 77c05cf5 0006f0d8 000000000006f0d8 winlogon!__report_gsfailure+0x29b
0006f0d8 7c9237bf 0006f1c4 0006ffe40006f1e0 msvcrt!_except_handler3+0x61
0006f0fc 7c92378b 0006f1c4 0006ffe40006f1e0 ntdll!executehandler2+0x26
0006f1ac 7c92eafa 00000000 0006f1e00006f1c4 ntdll!executehandler+0x24
0006f1ac 7c930370 00000000 0006f1e00006f1c4 ntdll!kiuserexceptiondispatcher+0xe
0006f4ac 77d1af53 ffffffff 00f4042000f498d8 ntdll!wcslen+0x8
0006f504 77d1a876 00f498d8 100023b80006f528 user32!wvsprintfw+0x23a
0006f518 1000142f 00f498d8 100023b8ffffffff user32!wsprintfw+0x14
0006f650 100015fb 0007c728 010345ab00089ae8 hooklogin!writelog+0x9f [e:\project\procmon\code\hooklogin\dllmain.cpp@ 293]
0006f658
010345ab
00089ae8 00000001 0007c7e4
hooklogin!funnewwlxloggedoutsas+0x3b
[e:\project\procmon\code\hooklogin\dllmain.cpp @ 389]
0006fcd8 01037791 0007b220 0007b22000072364 winlogon!logonattempt+0x162
0006fcfc 010315d5 0007b220 7c80b52900000000 winlogon!mainloop+0x1cf
0006ff50 0103d4d0 01000000 0000000000072364 winlogon!wunotify+0x68f
0006fff4 00000000 7ffde000 000000c80000015c winlogon!__report_gsfailure+0x271
kb命令顯示函式的前
3個引數,如上標紅的部分,
010345ab
為返回位址,原函式定義如下
intwinapi
funnewwlxloggedoutsas(
pvoid
pwlxcontext,
dword
dwsastype,
pluid
pauthenticationid,
psid
plogonsid,
pdword
pdwoptions,
phandle
phtoken,
pwlx_mpr_notify_info
pnprnotifyinfo,
pvoid*
pprofile)
我們知道函式有7個引數,如何檢視函式後面的4個引數呢?我們知道函式 的引數都在棧裡,棧位址
0006f658
,我們看看棧裡
都有什麼
kd> dd 0006f658
0006f6580007c728 010345ab00089ae8 00000001
0006f6680007c7e4 00f3eac0 0006f6bc 0006f6c4
0006f6780006f69c
0006f6cc00000002 0007b220
0006f68800000000 0006f6ac 0006f9c4 77d40494
0006f69877d188b8 ffffffff 77d188b2 758dbdb3
0006f6a800030030 0007c728 0007b220 0007b2b0
0006f6b800000001 00000000 00f3eac0 00089ae8
0006f6c800089ae8 00000000 00000000 0006f774
010345ab
返回位址
00089ae8
第乙個引數
00000001第2
個引數0007c7e4第3
個引數. .
.0006f69c第7
個引數kd> dd 0006f69c
0006f69cffffffff 77d188b2 758dbdb3 00030030
0006f6ac0007c728 0007b220 0007b2b0 00000001
0006f6bc00000000 00f3eac0 00089ae8 00089ae8
0006f6cc00000000 00000000 0006f774 5adc6877
0006f6dc00030030 00001897 0006f7a4 00010000
0006f6ec00020001 000000a0 0000001f 00000011
0006f6fc00000004 00000003 00000000 00000000
0006f70c00000004 00000003 00000000 00000000
由此可以看到第七個引數為
ffffffff
windbg 檢視函式位址
有時候需要檢視函式位址,官方位址 示例 x d f lec teacher c 以下命令將查詢 mymodule 中包含字串 spin 的所有符號。0 000 x mymodule spin 以下命令快速查詢 mymodule 中的 downloadminor 和 downloadmajor 符號。...
Windbg檢視呼叫堆疊 k
無論是分析程式崩潰原因,還是解決程式hang問題,我們最常檢視的就是程式呼叫堆疊。學會windbg呼叫堆疊命令,以及理解堆疊中的各個引數的意義就顯得至關重要。上圖就是乙個典型的windbg堆疊,如果不理解childebp retaddr args to child等引數意義,以及它們之間的來龍去脈,...
在WinDBG中檢視變數的命令
命令dv display variable的縮寫,檢視區域性變數.dv i 檢視區域性變數,並顯示符號的型別和引數型別.dv v 檢視區域性變數,並顯示變數的儲存位置.dv v variablename 指定需要檢視的變數的名字 dv 02sample gglo dv命令可以帶有萬用字元,來檢視具有...