还原前,ehsvc代区段在wjpdqgns,以Ordinal为1的函数为例:
___:1001D1D0 ; Exported entry 1. 1
___:1001D1D0
___:1001D1D0 public _1
___:1001D1D0 _1: ; DATA XREF: wjpdqgns:off_10829ED4o
___:1001D1D0 push 28F65CB2h
___:1001D1D5 cli
___:1001D1D6 inc eax
___:1001D1D7 and cl, [ebp+62h]
___:1001D1DA pusha
___:1001D1DB adc dl, [ebx-3Eh]
___:1001D1DE movsd
___:1001D1DF push es
___:1001D1E0 push edx
___:1001D1E1 movsd
___:1001D1E2 jb short loc_1001D1AF
___:1001D1E4 pusha
___:1001D1E5 outsd
___:1001D1E6 push cs
___:1001D1E7 pusha
___:1001D1E8 adc [esi-17E9E359h], al
___:1001D1EE jp short loc_1001D24E
___:1001D1F0 jmp far ptr 8543h:5C204482h
___:1001D1F0 ; ---------------------------------------------------------------------------
___:1001D1F7 db 50h
___:1001D1F8 dd 0B9AD5124h, 71742827h, 0E9212DD3h, 1D0CCEAh, 0D1FC46E4h
___:1001D1F8 dd 5C8768CBh, 35C49344h, 68A708B3h, 0C17FDAD5h, 21D3C424h
___:1001D1F8 dd 8F4965A9h, 37D24D1Bh, 0FAFF812h, 874825FBh, 0B49F7CEFh
___:1001D1F8 dd 1E1E90F4h, 0DC1D28F6h, 0EC3205D6h, 6A7ECD07h, 0CB3A3C7Eh
___:1001D1F8 dd 580DAA78h
___:1001D24C db 0, 32h //还原前的VMCODE
___:1001D24E ; ---------------------------------------------------------------------------
___:1001D24E
___:1001D24E loc_1001D24E: ; CODE XREF: ___:1001D1EEj
___:1001D24E pop ds
___:1001D24F xor edi, [ebp-7B8E54EAh]
___:1001D255 dec edi
还原后:
.text:1001D1D0 ; Attributes: bp-based frame
.text:1001D1D0
.text:1001D1D0 public _1
.text:1001D1D0 _1 proc near
.text:1001D1D0
.text:1001D1D0 tstrFilename = byte ptr -104h
.text:1001D1D0 arg_0 = dword ptr 8
.text:1001D1D0 arg_4 = dword ptr 0Ch
.text:1001D1D0
.text:1001D1D0 push ebp
.text:1001D1D1 mov ebp, esp
.text:1001D1D3 sub esp, 104h
.text:1001D1D9 push 104h ; nSize
.text:1001D1DE lea eax, [ebp+tstrFilename]
.text:1001D1E4 push eax ; lpFilename
.text:1001D1E5 mov ecx, hModule
.text:1001D1EB push ecx ; hModule
.text:1001D1EC call GetModuleFileNameA
.text:1001D1F2 test eax, eax
.text:1001D1F4 jnz short loc_1001D239
.text:1001D1F6 call GetLastError
.text:1001D1FC push eax
.text:1001D1FD push offset aD_3 ; " %d"
.text:1001D202 sub esp, 10h
.text:1001D205 mov edx, esp
.text:1001D207 mov eax, dword_1011CF70
.text:1001D20C mov [edx], eax
.text:1001D20E mov ecx, dword_1011CF74
.text:1001D214 mov [edx+4], ecx
.text:1001D217 mov eax, dword_1011CF78
.text:1001D21C mov [edx+8], eax
.text:1001D21F mov ecx, dword_1011CF7C
.text:1001D225 mov [edx+0Ch], ecx
.text:1001D228 push 0
.text:1001D22A call sub_10016310
.text:1001D22F add esp, 1Ch
.text:1001D232 mov eax, 1
.text:1001D237 jmp short loc_1001D252
.text:1001D239 ; ---------------------------------------------------------------------------
.text:1001D239
.text:1001D239 loc_1001D239: ; CODE XREF: _1+24j
.text:1001D239 mov edx, [ebp+arg_4]
.text:1001D23C push edx ; int
.text:1001D23D lea eax, [ebp+tstrFilename]
.text:1001D243 push eax ; lptstrFilename
.text:1001D244 mov ecx, [ebp+arg_0]
.text:1001D247 push ecx ; int
.text:1001D248 call sub_10026E60
.text:1001D24D add esp, 0Ch
.text:1001D250 xor eax, eax
.text:1001D252
.text:1001D252 loc_1001D252: ; CODE XREF: _1+67j
.text:1001D252 mov esp, ebp
.text:1001D254 pop ebp
.text:1001D255 retn 8
.text:1001D255 _1 endp
[ 此帖被小枫工作组在2014-01-06 15:46重新编辑 ]