首页
社区
课程
招聘
有没朋友愿意解释一下这段ASM
发表于: 2006-6-15 22:14 4167

有没朋友愿意解释一下这段ASM

2006-6-15 22:14
4167
谢谢~~随便说下也好...
顺便问下77 和EB改成什么呢?
我只知道74<=>75 84 <=>85
004086A0   .  8B4424 08     mov     eax, [esp+8]
004086A4   .  3D 18020000   cmp     eax, 218                         ;  Switch (cases 1..600)
004086A9   .  0F87 66010000 ja      00408815
004086AF   .  0F84 44010000 je      004087F9
004086B5   .  83F8 10       cmp     eax, 10
004086B8   .  0F87 9B000000 ja      00408759
004086BE   .  0F84 83000000 je      00408747
004086C4   .  8D48 FF       lea     ecx, [eax-1]
004086C7   .  83F9 0E       cmp     ecx, 0E
004086CA   .  0F87 72020000 ja      00408942
004086D0   .  33D2          xor     edx, edx
004086D2   .  8A91 70894000 mov     dl, [ecx+408970]
004086D8   .  FF2495 5C8940>jmp     [edx*4+40895C]
004086DF   >  8B4424 10     mov     eax, [esp+10]                    ;  Case 1 of switch 004086A4
004086E3   .  8B4C24 04     mov     ecx, [esp+4]
004086E7   .  50            push    eax
004086E8   .  51            push    ecx
004086E9   .  E8 62170000   call    00409E50
004086EE   .  83C4 08       add     esp, 8
004086F1   .  F7D8          neg     eax
004086F3   .  1BC0          sbb     eax, eax
004086F5   .  F7D8          neg     eax
004086F7   .  48            dec     eax
004086F8   .  C2 1000       retn    10
004086FB   >  8B5424 04     mov     edx, [esp+4]                     ;  Case F of switch 004086A4
004086FF   .  52            push    edx
00408700   .  E8 DB200000   call    0040A7E0
00408705   .  83C4 04       add     esp, 4
00408708   .  33C0          xor     eax, eax
0040870A   .  C2 1000       retn    10
0040870D   >  8B4424 04     mov     eax, [esp+4]                     ;  Case 2 of switch 004086A4
00408711   .  50            push    eax
00408712   .  E8 79210000   call    0040A890
00408717   .  83C4 04       add     esp, 4
0040871A   .  33C0          xor     eax, eax
0040871C   .  C2 1000       retn    10
0040871F   >  8B4424 10     mov     eax, [esp+10]                    ;  Case 5 of switch 004086A4
00408723   .  8BC8          mov     ecx, eax
00408725   .  C1E9 10       shr     ecx, 10
00408728   .  0FBFD1        movsx   edx, cx
0040872B   .  8B4C24 0C     mov     ecx, [esp+C]
0040872F   .  52            push    edx
00408730   .  8B5424 08     mov     edx, [esp+8]
00408734   .  0FBFC0        movsx   eax, ax
00408737   .  50            push    eax
00408738   .  51            push    ecx
00408739   .  52            push    edx
0040873A   .  E8 B1220000   call    0040A9F0
0040873F   .  83C4 10       add     esp, 10
00408742   .  33C0          xor     eax, eax
00408744   .  C2 1000       retn    10
00408747   >  8B4424 04     mov     eax, [esp+4]                     ;  Case 10 of switch 004086A4
0040874B   .  50            push    eax
0040874C   .  E8 9F210000   call    0040A8F0
00408751   .  83C4 04       add     esp, 4
00408754   .  33C0          xor     eax, eax
00408756   .  C2 1000       retn    10
00408759   >  8D48 B2       lea     ecx, [eax-4E]
0040875C   .  81F9 C7000000 cmp     ecx, 0C7
00408762   .  0F87 DA010000 ja      00408942
00408768   .  33D2          xor     edx, edx
0040876A   .  8A91 94894000 mov     dl, [ecx+408994]
00408770   .  FF2495 808940>jmp     [edx*4+408980]
00408777   >  8B4424 0C     mov     eax, [esp+C]                     ;  Case 113 of switch 004086A4
0040877B   .  8B4C24 04     mov     ecx, [esp+4]
0040877F   .  50            push    eax
00408780   .  51            push    ecx
00408781   .  E8 2A0F0000   call    004096B0
00408786   .  83C4 08       add     esp, 8
00408789   .  33C0          xor     eax, eax
0040878B   .  C2 1000       retn    10
0040878E   >  8B4424 0C     mov     eax, [esp+C]                     ;  Case 111 of switch 004086A4
00408792   .  8B4C24 10     mov     ecx, [esp+10]
00408796   .  8BD0          mov     edx, eax
00408798   .  25 FFFF0000   and     eax, 0FFFF
0040879D   .  C1EA 10       shr     edx, 10
004087A0   .  52            push    edx
004087A1   .  8B5424 08     mov     edx, [esp+8]
004087A5   .  51            push    ecx
004087A6   .  50            push    eax
004087A7   .  52            push    edx
004087A8   .  E8 E3180000   call    0040A090
004087AD   .  83C4 10       add     esp, 10
004087B0   .  33C0          xor     eax, eax
004087B2   .  C2 1000       retn    10
004087B5   >  8B4424 0C     mov     eax, [esp+C]                     ;  Case 115 of switch 004086A4
004087B9   .  8BC8          mov     ecx, eax
004087BB   .  25 FFFF0000   and     eax, 0FFFF
004087C0   .  C1E9 10       shr     ecx, 10
004087C3   .  0FBFD1        movsx   edx, cx
004087C6   .  8B4C24 04     mov     ecx, [esp+4]
004087CA   .  52            push    edx
004087CB   .  50            push    eax
004087CC   .  8B4424 18     mov     eax, [esp+18]
004087D0   .  50            push    eax
004087D1   .  51            push    ecx
004087D2   .  E8 79280000   call    0040B050
004087D7   .  83C4 10       add     esp, 10
004087DA   .  33C0          xor     eax, eax
004087DC   .  C2 1000       retn    10
004087DF   >  8B5424 10     mov     edx, [esp+10]                    ;  Case 4E of switch 004086A4
004087E3   .  8B4424 0C     mov     eax, [esp+C]
004087E7   .  8B4C24 04     mov     ecx, [esp+4]
004087EB   .  52            push    edx
004087EC   .  50            push    eax
004087ED   .  51            push    ecx
004087EE   .  E8 1D280000   call    0040B010
004087F3   .  83C4 0C       add     esp, 0C
004087F6   .  C2 1000       retn    10
004087F9   >  8B5424 10     mov     edx, [esp+10]                    ;  Case 218 of switch 004086A4
004087FD   .  8B4424 0C     mov     eax, [esp+C]
00408801   .  8B4C24 04     mov     ecx, [esp+4]
00408805   .  52            push    edx
00408806   .  50            push    eax
00408807   .  51            push    ecx
00408808   .  E8 53230000   call    0040AB60
0040880D   .  83C4 0C       add     esp, 0C
00408810   .  33C0          xor     eax, eax
00408812   .  C2 1000       retn    10
00408815   >  3D F7050000   cmp     eax, 5F7
0040881A   .  0F87 AA000000 ja      004088CA
00408820   .  0F84 8D000000 je      004088B3
00408826   .  3D F5050000   cmp     eax, 5F5
0040882B   .  77 64         ja      short 00408891
0040882D   .  74 46         je      short 00408875
0040882F   .  8BC8          mov     ecx, eax
00408831   .  81E9 C8040000 sub     ecx, 4C8
00408837   .  74 25         je      short 0040885E
00408839   .  83E9 04       sub     ecx, 4
0040883C   .  0F85 00010000 jnz     00408942
00408842   .  8B5424 10     mov     edx, [esp+10]                    ;  Case 4CC of switch 004086A4
00408846   .  8B4424 0C     mov     eax, [esp+C]
0040884A   .  8B4C24 04     mov     ecx, [esp+4]
0040884E   .  52            push    edx
0040884F   .  50            push    eax
00408850   .  51            push    ecx
00408851   .  E8 CA240000   call    0040AD20
00408856   .  83C4 0C       add     esp, 0C
00408859   .  33C0          xor     eax, eax
0040885B   .  C2 1000       retn    10
0040885E   >  8B5424 10     mov     edx, [esp+10]                    ;  Case 4C8 of switch 004086A4
00408862   .  8B4424 04     mov     eax, [esp+4]
00408866   .  52            push    edx
00408867   .  50            push    eax
00408868   .  E8 73390000   call    0040C1E0
0040886D   .  83C4 08       add     esp, 8
00408870   .  33C0          xor     eax, eax
00408872   .  C2 1000       retn    10
00408875   >  8B4C24 10     mov     ecx, <========跳到这里表示失败了[esp+10]                    ;  Case 5F5 of switch 004086A4
00408879   .  8B5424 0C     mov     edx, [esp+C]
0040887D   .  8B4424 04     mov     eax, [esp+4]
00408881   .  51            push    ecx
00408882   .  52            push    edx
00408883   .  50            push    eax
00408884   .  E8 472B0000   call    0040B3D0
00408889   .  83C4 0C       add     esp, 0C
0040888C   .  33C0          xor     eax, eax
0040888E   .  C2 1000       retn    10
00408891   >  3D F6050000   cmp     eax, 5F6
00408896   .  0F85 A6000000 jnz     00408942
0040889C   .  8B4C24 10     mov     ecx, [esp+10]                    ;  Case 5F6 of switch 004086A4
004088A0   .  8B5424 04     mov     edx, [esp+4]
004088A4   .  51            push    ecx
004088A5   .  52            push    edx
004088A6   .  E8 352D0000   call    0040B5E0
004088AB   .  83C4 08       add     esp, 8
004088AE   .  33C0          xor     eax, eax
004088B0   .  C2 1000       retn    10
004088B3   >  8B4424 10     mov     eax, [esp+10]                    ;  Case 5F7 of switch 004086A4
004088B7   .  8B4C24 04     mov     ecx, [esp+4]
004088BB   .  50            push    eax
004088BC   .  51            push    ecx
004088BD   .  E8 AE290000   call    0040B270
004088C2   .  83C4 08       add     esp, 8
004088C5   .  33C0          xor     eax, eax
004088C7   .  C2 1000       retn    10
004088CA   >  8D88 08FAFFFF lea     ecx, [eax-5F8]
004088D0   .  83F9 08       cmp     ecx, 8
004088D3   .  77 6D         ja      short 00408942
004088D5   .  FF248D 5C8A40>jmp     [ecx*4+408A5C]
004088DC   >  8B5424 10     mov     edx, [esp+10]                    ;  Case 5FA of switch 004086A4
004088E0   .  8B4424 04     mov     eax, [esp+4]
004088E4   .  52            push    edx
004088E5   .  50            push    eax
004088E6   .  E8 25290000   call    0040B210
004088EB   .  83C4 08       add     esp, 8
004088EE   .  33C0          xor     eax, eax
004088F0   .  C2 1000       retn    10
004088F3   >  8B4C24 10     mov     ecx, [esp+10]                    ;  Case 600 of switch 004086A4
004088F7   .  8B5424 04     mov     edx, [esp+4]
004088FB   .  51            push    ecx
004088FC   .  52            push    edx
004088FD   .  E8 DE370000   call    0040C0E0
00408902   .  83C4 08       add     esp, 8
00408905   .  33C0          xor     eax, eax
00408907   .  C2 1000       retn    10
0040890A   >  8B4424 10     mov     eax, [esp+10]                    ;  Case 5FB of switch 004086A4
0040890E   .  8B4C24 0C     mov     ecx, [esp+C]
00408912   .  8B5424 04     mov     edx, [esp+4]
00408916   .  50            push    eax
00408917   .  51            push    ecx
00408918   .  52            push    edx
00408919   .  E8 E22F0000   call    0040B900
0040891E   .  83C4 0C       add     esp, 0C
00408921   .  33C0          xor     eax, eax
00408923   .  C2 1000       retn    10
00408926   >  8B4424 10     mov     eax, [esp+10]                    ;  Case 5F8 of switch 004086A4
0040892A   .  8B4C24 0C     mov     ecx, [esp+C]
0040892E   .  8B5424 04     mov     edx, [esp+4]
00408932   .  50            push    eax
00408933   .  51            push    ecx
00408934   .  52            push    edx
00408935   .  E8 362E0000   call    0040B770
0040893A   .  83C4 0C       add     esp, 0C
0040893D   .  33C0          xor     eax, eax
0040893F   .  C2 1000       retn    10
00408942   >  8B4C24 10     mov     ecx, [esp+10]                    ;  Default case of switch 004086A4
00408946   .  8B5424 0C     mov     edx, [esp+C]
0040894A   .  51            push    ecx                              ; /lParam
0040894B   .  52            push    edx                              ; |wParam
0040894C   .  50            push    eax                              ; |Message
0040894D   .  8B4424 10     mov     eax, [esp+10]                    ; |
00408951   .  50            push    eax                              ; |hWnd
00408952   .  FF15 04724100 call    [<&USER32.DefWindowProcA>]       ; \DefWindowProcA
00408958   .  C2 1000       retn    10

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 50161
活跃值: (20615)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
首先你得搞明白这个结构,OD己提示很清楚了,这是一个SWITCH-CASE语句:

switch(a)
{
        case 1        :……
                                        break;
        case 0x0F        :……;
                                        break;
        case 5        :……;
                                        break;
        ……
        default        :……;
                                        break;
}

汇编里的用一个跳转表来实现SWITCH-CASE的:
004086D8   jmp     [edx*4+40895C]
2006-6-15 22:42
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
3
翻了一下楼主的帖子,好像全是求助的嘛。套用北极星2003版主签名里的那段话:
“如果只是索取,资源终将枯竭,只有大家都把经验共享出来,我们的思维才会充满活力。”
2006-6-15 22:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
付出也要看能力啊。对于反汇编方面我真的连门都没入..
如果我有能力,我就不用问这么菜的问题了.
而且这是每个人都经过的阶段..
并且我没打算深入,只是因为需要.所以我才去研究.
2006-6-16 11:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 康科 发布
付出也要看能力啊。对于反汇编方面我真的连门都没入..
如果我有能力,我就不用问这么菜的问题了.
而且这是每个人都经过的阶段..
并且我没打算深入,只是因为需要.所以我才去研究.


弄懂了基础的东西再来这里混吧
2006-6-16 12:41
0
游客
登录 | 注册 方可回帖
返回
//