r506660405 2017-11-16 13:07 采纳率: 0%
浏览 912

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

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

  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条回答 默认 最新

  • threenewbee 2017-11-16 15:52
    关注

    逆向的代码仅供参考,反汇编未必能正确识别数据和指令,尤其是这种动态加载执行的代码。建议你拿调试器去看。

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试