r506660405
r506660405
2017-11-16 13:07

汇编逆向有一段看不懂了求大神解答

  • 汇编
  • 逆向菜鸟

求大神解答一下下面这段的逻辑~

  int __cdecl sub_40E720(void *, size_t)
sub_40E720 proc near

var_8C= byte ptr -8Ch
var_4C= byte ptr -4Ch
var_4B= dword ptr -4Bh
var_47= dword ptr -47h
var_43= dword ptr -43h
var_3F= word ptr -3Fh
var_3D= byte ptr -3Dh
var_3C= byte ptr -3Ch
var_3B= dword ptr -3Bh
var_37= dword ptr -37h
var_33= dword ptr -33h
var_2F= dword ptr -2Fh
var_2B= word ptr -2Bh
var_29= byte ptr -29h
var_28= byte ptr -28h
var_27= byte ptr -27h
var_26= byte ptr -26h
var_25= byte ptr -25h
var_24= byte ptr -24h
var_23= byte ptr -23h
var_22= byte ptr -22h
var_21= byte ptr -21h
var_20= byte ptr -20h
var_1F= byte ptr -1Fh
var_1E= byte ptr -1Eh
var_1D= byte ptr -1Dh
var_1C= byte ptr -1Ch
var_1B= byte ptr -1Bh
var_1A= byte ptr -1Ah
var_19= byte ptr -19h
var_18= byte ptr -18h
var_17= byte ptr -17h
var_16= byte ptr -16h
var_15= byte ptr -15h
var_14= byte ptr -14h
var_13= byte ptr -13h
var_12= byte ptr -12h
var_11= byte ptr -11h
var_10= byte ptr -10h
var_F= byte ptr -0Fh
var_E= byte ptr -0Eh
var_D= byte ptr -0Dh
var_C= byte ptr -0Ch
var_B= byte ptr -0Bh
var_A= byte ptr -0Ah
var_9= byte ptr -9
var_8= dword ptr -8
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push    ebp
mov     ebp, esp
sub     esp, 8Ch
push    ebx
push    esi
push    edi
lea     edi, [ebp+var_8C]
mov     ecx, 23h
mov     eax, 0CCCCCCCCh
rep stosd
mov     [ebp+var_28], 0D4h
mov     [ebp+var_27], 36h
mov     [ebp+var_26], 96h
mov     [ebp+var_25], 80h
mov     [ebp+var_24], 79h
mov     [ebp+var_23], 0BEh
mov     [ebp+var_22], 16h
mov     [ebp+var_21], 87h
mov     [ebp+var_20], 0E8h
mov     [ebp+var_1F], 0F9h
mov     [ebp+var_1E], 4Dh
mov     [ebp+var_1D], 89h
mov     [ebp+var_1C], 0Dh
mov     [ebp+var_1B], 1Dh
mov     [ebp+var_1A], 0D9h
mov     [ebp+var_19], 2Bh
mov     [ebp+var_18], 0F9h
mov     [ebp+var_17], 0F1h
mov     [ebp+var_16], 38h
mov     [ebp+var_15], 57h
mov     [ebp+var_14], 15h
mov     [ebp+var_13], 79h
mov     [ebp+var_12], 5Fh
mov     [ebp+var_11], 6Dh
mov     [ebp+var_10], 0D8h
mov     [ebp+var_F], 0F5h
mov     [ebp+var_E], 36h
mov     [ebp+var_D], 0F2h
mov     [ebp+var_C], 0D0h
mov     [ebp+var_B], 62h
mov     [ebp+var_A], 0BCh
mov     [ebp+var_9], 0F4h
xor     eax, eax
mov     [ebp+var_8], eax
mov     [ebp+var_4], eax
mov     [ebp+var_3C], 0
xor     ecx, ecx
mov     [ebp+var_3B], ecx
mov     [ebp+var_37], ecx
mov     [ebp+var_33], ecx
mov     [ebp+var_2F], ecx
mov     [ebp+var_2B], cx
mov     [ebp+var_29], cl
mov     [ebp+var_4C], 0
xor     edx, edx
mov     [ebp+var_4B], edx
mov     [ebp+var_47], edx
mov     [ebp+var_43], edx
mov     [ebp+var_3F], dx
mov     [ebp+var_3D], dl
mov     eax, [ebp+arg_4]
push    eax             ; size_t
mov     ecx, [ebp+arg_0]
push    ecx             ; void *
lea     edx, [ebp+var_4C]
push    edx             ; void *
call    _memcpy
add     esp, 0Ch
lea     eax, [ebp+var_3C]
push    eax
lea     ecx, [ebp+var_4C]
push    ecx
call    sub_40100F
add     esp, 8
push    10h             ; size_t
lea     edx, [ebp+var_28]
push    edx             ; void *
lea     eax, [ebp+var_3C]
push    eax             ; void *
call    _memcmp
add     esp, 0Ch
test    eax, eax
jnz     short loc_40E836
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换