| 
																		
 动态跟踪得到的代码如下 
VPC 虚拟机 OS XP+SP2  英文版  CPU 单核 
指列出不同的部分 
804de764 0f8546feffff    jne     nt!Dr_FastCallDrSave (804de5b0)         [br=0]// 804de76a 8b5d60          mov     ebx,dword ptr [ebp+60h]  //ebx=ktrap_frame.ebp 804de76d 8b7d68          mov     edi,dword ptr [ebp+68h]  //edi=ktrap_frame.eip 804de770 89550c          mov     dword ptr [ebp+0Ch],edx  //krap_frame.DbgArgPointer= 804de773 e91545d101      jmp     821f2c8d .....//设置ktrap_frame中前4个和调试有关的字段 821f2c8d c74508000ddbba  mov     dword ptr [ebp+8],0BADB0D00h  //krap_frame.DbgArgMark= 821f2c94 895d00          mov     dword ptr [ebp],ebx  821f2c97 897d04          mov     dword ptr [ebp+4],edi 821f2c9a e928a4f8ff      jmp     8217d0c7 
..... 8217d0c7 9c              pushfd 8217d0c8 50              push    eax 8217d0c9 a11494f1f5      mov     eax,dword ptr ds:[F5F19414h] ds:0023:f5f19414=???????? 8217d0ce 800802          or      byte ptr [eax],2 8217d0d1 804c240502      or      byte ptr [esp+5],2 8217d0d6 58              pop     eax 8217d0d7 9d              popfd 
而真实机器是:  xp+sp2 中文 双核 
804dee8e 8b7d68          mov     edi,dword ptr [ebp+68h] 804dee91 89550c          mov     dword ptr [ebp+0Ch],edx 804dee94 c74508000ddbba  mov     dword ptr [ebp+8],0BADB0D00h 804dee9b 895d00          mov     dword ptr [ebp],ebx 804dee9e 897d04          mov     dword ptr [ebp+4],edi      //设置完krap_frame中的前4个和调试有关的寄存器 就是sti了。 804deea1 fb              sti 804deea2 8bf8            mov     edi,eax 804deea4 c1ef08          shr     edi,8 804deea7 83e730          and     edi,30h 804deeaa 8bcf            mov     ecx,edi 804deeac 03bee0000000    add     edi,dword ptr [esi+0E0h] 804deeb2 8bd8            mov     ebx,eax 
																		 
																	 |