动态跟踪得到的代码如下
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
|