3
我在WinDbg中調試過程的退出代碼,過程退出:獲取終止進程
0:009> g
(bunch of regs...)
ntdll!NtTerminateProcess+0xc:
770ad43c c20800 ret 8
0:009> g
^No runnable debuggees error in 'g'
在這一點上,我如何才能進程的退出代碼?
我在WinDbg中調試過程的退出代碼,過程退出:獲取終止進程
0:009> g
(bunch of regs...)
ntdll!NtTerminateProcess+0xc:
770ad43c c20800 ret 8
0:009> g
^No runnable debuggees error in 'g'
在這一點上,我如何才能進程的退出代碼?
您可以將其作爲ZwTerminateProcess的第二個參數。 NtTerminateProcess只是它的內核版本,對不對?
0:000> kb
ChildEBP RetAddr Args to Child
003ff414 7774d5ac ffffffff 1234abcd 00000000 ntdll!ZwTerminateProcess+0x12
003ff430 759c79ec 00000000 77e8f3b0 ffffffff ntdll!RtlExitUserProcess+0x85
...
或者RtlExitUserProcess
0:000> kn
# ChildEBP RetAddr
00 003ff414 7774d5ac ntdll!ZwTerminateProcess+0x12
01 003ff430 759c79ec ntdll!RtlExitUserProcess+0x85
...
0:000> .frame 01
01 003ff430 759c79ec ntdll!RtlExitUserProcess+0x85
0:000> dd esp L4
003ff414 7771fcc2 7774d5ac ffffffff 1234abcd
的第四個參數我想ZwTerminateProcess =內核,NtTerminateProcess =用戶。反正,很好,謝謝! – Jonathan 2014-09-23 12:32:52
在用戶模式中,Nt *和Zw *是相同的函數(注意兩個符號名稱的地址相同):0:048> x ntdll!* terminateprocess' 774bbeb0 ntdll!NtTerminateProcess() 774bbeb0 ntdll!ZwTerminateProcess(<無參數信息> –
2014-09-23 13:29:37