获取终止进程

问题描述:

我在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 
+0

的第四个参数我想ZwTerminateProcess =内核,NtTerminateProcess =用户。反正,很好,谢谢! – Jonathan 2014-09-23 12:32:52

+1

在用户模式中,Nt *和Zw *是相同的函数(注意两个符号名称的地址相同):0:048> x ntdll!* terminateprocess' 774bbeb0 ntdll!NtTerminateProcess() 774bbeb0 ntdll!ZwTerminateProcess( – 2014-09-23 13:29:37