gawen 发表于 2014-4-29 15:53:25

请高手帮忙分析一下关键代码

点击导出QQ按钮,出错后,被 断下,来到这里:

00454AA0   .83EC 64       sub   esp, 64
00454AA3   .56            push    esi
00454AA4   .8B7424 74   mov   esi, dword ptr
00454AA8   .57            push    edi
00454AA9   .8B7E 08       mov   edi, dword ptr
00454AAC   .57            push    edi
00454AAD   .E8 5E650100   call    0046B010
00454AB2   .83C4 04       add   esp, 4
00454AB5   .85C0          test    eax, eax
00454AB7   .74 10         je      short 00454AC9
00454AB9   .8D4424 08   lea   eax, dword ptr
00454ABD   .50            push    eax
00454ABE   .56            push    esi
00454ABF   .E8 ACDEFFFF   call    00452970
00454AC4   .83C4 08       add   esp, 8
00454AC7   .EB 42         jmp   short 00454B0B
00454AC9   >81FF 04000080 cmp   edi, 80000004                  ;Switch (cases 80000002..80000004)
00454ACF   .75 04         jnz   short 00454AD5
00454AD1   .8B0E          mov   ecx, dword ptr              ;Case 80000004 (SINGLE STEP) of switch 00454AC9
00454AD3   .EB 3A         jmp   short 00454B0F
00454AD5   >81FF 02000080 cmp   edi, 80000002
00454ADB   .75 12         jnz   short 00454AEF
00454ADD   .8B16          mov   edx, dword ptr              ;Case 80000002 (DATATYPE MISALIGNMENT) of switch 00454AC9
00454ADF   .8D4C24 08   lea   ecx, dword ptr
00454AE3   .51            push    ecx
00454AE4   .52            push    edx
00454AE5   .E8 D6400200   call    00478BC0
00454AEA   .83C4 08       add   esp, 8
00454AED   .EB 1C         jmp   short 00454B0B
00454AEF   >81FF 03000080 cmp   edi, 80000003
00454AF5   .75 1C         jnz   short 00454B13
00454AF7   .8B4E 04       mov   ecx, dword ptr          ;Case 80000003 (BREAKPOINT) of switch 00454AC9
00454AFA   .8B16          mov   edx, dword ptr
00454AFC   .8D4424 08   lea   eax, dword ptr
00454B00   .50            push    eax
00454B01   .51            push    ecx
00454B02   .52            push    edx
00454B03   .E8 F8390200   call    00478500
00454B08   .83C4 0C       add   esp, 0C
00454B0B   >8D4C24 08   lea   ecx, dword ptr
00454B0F   >85C9          test    ecx, ecx
00454B11   .75 09         jnz   short 00454B1C
00454B13   >C64424 08 00mov   byte ptr , 0            ;Default case of switch 00454AC9
00454B18   .8D4C24 08   lea   ecx, dword ptr
00454B1C   >8B46 20       mov   eax, dword ptr
00454B1F   .BA F0727600   mov   edx, 007672F0
00454B24   .85C0          test    eax, eax
00454B26   .74 03         je      short 00454B2B
00454B28   .8B56 18       mov   edx, dword ptr
00454B2B   >8B46 0C       mov   eax, dword ptr
00454B2E   .8BF0          mov   esi, eax
00454B30   .F7D6          not   esi
00454B32   .81E6 00100000 and   esi, 1000
00454B38   .8D0470      lea   eax, dword ptr
00454B3B   .50            push    eax                              ; /Style
00454B3C   .52            push    edx                              ; |Title
00454B3D   .51            push    ecx                              ; |Text
00454B3E   .6A 00         push    0                              ; |hOwner = NULL
00454B40   .FF15 E8E64F00 call    dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
00454B46   .5F            pop   edi
00454B47   .83F8 03       cmp   eax, 3                           ;Switch (cases 2..7)
00454B4A   .5E            pop   esi
00454B4B   .75 0F         jnz   short 00454B5C
00454B4D   .8B4C24 68   mov   ecx, dword ptr           ;Case 3 of switch 00454B47
00454B51   .B8 02000000   mov   eax, 2
00454B56   .8901          mov   dword ptr , eax
00454B58   .83C4 64       add   esp, 64
00454B5B   .C3            retn
00454B5C   >83F8 02       cmp   eax, 2
00454B5F   .75 0F         jnz   short 00454B70
00454B61   .8B5424 68   mov   edx, dword ptr           ;Case 2 of switch 00454B47
00454B65   .B8 01000000   mov   eax, 1
00454B6A   .8902          mov   dword ptr , eax
00454B6C   .83C4 64       add   esp, 64
00454B6F   .C3            retn
00454B70   >83F8 05       cmp   eax, 5
00454B73   .75 0F         jnz   short 00454B84
00454B75   .8B4C24 68   mov   ecx, dword ptr           ;Case 5 of switch 00454B47
00454B79   .B8 04000000   mov   eax, 4
00454B7E   .8901          mov   dword ptr , eax
00454B80   .83C4 64       add   esp, 64
00454B83   .C3            retn
00454B84   >83F8 07       cmp   eax, 7
00454B87   .75 0F         jnz   short 00454B98
00454B89   .8B5424 68   mov   edx, dword ptr           ;Case 7 of switch 00454B47
00454B8D   .B8 06000000   mov   eax, 6
00454B92   .8902          mov   dword ptr , eax
00454B94   .83C4 64       add   esp, 64
00454B97   .C3            retn
00454B98   >83F8 06       cmp   eax, 6
00454B9B   .75 0F         jnz   short 00454BAC
00454B9D   .8B4C24 68   mov   ecx, dword ptr           ;Case 6 of switch 00454B47
00454BA1   .B8 05000000   mov   eax, 5
00454BA6   .8901          mov   dword ptr , eax
00454BA8   .83C4 64       add   esp, 64
00454BAB   .C3            retn
00454BAC   >33D2          xor   edx, edx                         ;Default case of switch 00454B47
00454BAE   .8B4C24 68   mov   ecx, dword ptr
00454BB2   .83F8 04       cmp   eax, 4
00454BB5   .0F95C2      setne   dl
00454BB8   .4A            dec   edx
00454BB9   .83E2 03       and   edx, 3
00454BBC   .8BC2          mov   eax, edx
00454BBE   .8901          mov   dword ptr , eax
00454BC0   .83C4 64       add   esp, 64
00454BC3   .C3            retn

但一直找不出关键代码,还请高手指点,谢谢!

montana 发表于 2014-5-2 22:20:34

软件放出来看看

xinbinchi 发表于 2016-7-2 14:46:50

学习中,谢谢分享。]
页: [1]
查看完整版本: 请高手帮忙分析一下关键代码