WinDbg 檢視函式的引數

2021-06-19 18:11:18 字數 3341 閱讀 6679



檢視函式

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命令可以帶有萬用字元,來檢視具有...