获取终止进程
问题描述:
我在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