首页
社区
课程
招聘
[求助]怎样处理通过JMP判断跳转的代码?
发表于: 2008-3-11 11:40 6299

[求助]怎样处理通过JMP判断跳转的代码?

2008-3-11 11:40
6299
一段代码,就是一堆的JMP(没有CALL跟判断跳转),就连调用API也是用JMP,请问这种代码有什么方法处理?

00401AA1    - E9 1D910200   jmp     0042ABC3
00401AA6      66:8B06       mov     ax, word ptr [esi]
00401AA9      66:01D8       add     ax, bx
00401AAC      8D76 02       lea     esi, dword ptr [esi+2]
00401AAF      66:F7D8       neg     ax
00401AB2      66:FFC0       inc     ax
00401AB5      66:C1C8 06    ror     ax, 6
00401AB9      86C4          xchg    ah, al
00401ABB      66:01C3       add     bx, ax
00401ABE      66:50         push    ax
00401AC0      E9 59000000   jmp     00401B1E
00401AC5      66:5A         pop     dx
00401AC7      66:58         pop     ax
00401AC9      F6D2          not     dl
00401ACB      F6D0          not     al
00401ACD      20C2          and     dl, al
00401ACF      66:52         push    dx
00401AD1      9C            pushfd
00401AD2      E9 47000000   jmp     00401B1E
00401AD7      5A            pop     edx
00401AD8      58            pop     eax
00401AD9      F7E2          mul     edx
00401ADB      50            push    eax
00401ADC      52            push    edx
00401ADD      9C            pushfd
00401ADE      E9 3B000000   jmp     00401B1E
00401AE3      5A            pop     edx
00401AE4      011424        add     dword ptr [esp], edx
00401AE7      9C            pushfd
00401AE8      E9 31000000   jmp     00401B1E
00401AED      66:54         push    sp
00401AEF      E9 2A000000   jmp     00401B1E
00401AF4      58            pop     eax
00401AF5      5A            pop     edx
00401AF6      66:59         pop     cx
00401AF8      0FADD0        shrd    eax, edx, cl
00401AFB      50            push    eax
00401AFC      9C            pushfd
00401AFD      E9 1C000000   jmp     00401B1E
00401B02      55            push    ebp
00401B03      50            push    eax
00401B04      56            push    esi
00401B05      9C            pushfd
00401B06      53            push    ebx
00401B07      51            push    ecx
00401B08      57            push    edi
00401B09      52            push    edx
00401B0A      56            push    esi
00401B0B      68 00000000   push    0
00401B10      8B7424 28     mov     esi, dword ptr [esp+28]
00401B14      BF 00504100   mov     edi, 00415000
00401B19      89F3          mov     ebx, esi
00401B1B      033424        add     esi, dword ptr [esp]
00401B1E      8A16          mov     dl, byte ptr [esi]
00401B20      00DA          add     dl, bl
00401B22      C0CA 05       ror     dl, 5
00401B25      F6D2          not     dl
00401B27      80EA D4       sub     dl, 0D4
00401B2A      C0CA 02       ror     dl, 2
00401B2D      F6DA          neg     dl
00401B2F      46            inc     esi
00401B30      F6D2          not     dl
00401B32      FEC2          inc     dl
00401B34      C0CA 02       ror     dl, 2
00401B37      00D3          add     bl, dl
00401B39      0FB6C2        movzx   eax, dl
00401B3C      FF2485 405041>jmp     dword ptr [eax*4+415040]  //主要跳转!
00401B43      F71424        not     dword ptr [esp]
00401B46      66:5A         pop     dx
00401B48      66:211424     and     word ptr [esp], dx
00401B4C      9C            pushfd
00401B4D    ^ E9 CCFFFFFF   jmp     00401B1E
00401B52      5A            pop     edx
00401B53      66:8F02       pop     word ptr [edx]
00401B56    ^ E9 C3FFFFFF   jmp     00401B1E
00401B5B      0FB606        movzx   eax, byte ptr [esi]
00401B5E      00D8          add     al, bl
00401B60      F6D8          neg     al
00401B62      2C 0C         sub     al, 0C
00401B64      46            inc     esi
00401B65      34 BD         xor     al, 0BD
00401B67      F6D0          not     al
00401B69      FEC0          inc     al
00401B6B      F6D0          not     al
00401B6D      00C3          add     bl, al
00401B6F      66:FF3407     push    word ptr [edi+eax]
00401B73    ^ E9 A6FFFFFF   jmp     00401B1E
00401B78      66:5C         pop     sp
00401B7A    ^ E9 9FFFFFFF   jmp     00401B1E
00401B7F      5A            pop     edx
00401B80      58            pop     eax
00401B81      59            pop     ecx
00401B82      F7F1          div     ecx
00401B84      50            push    eax
00401B85      52            push    edx
00401B86      9C            pushfd
00401B87    ^ E9 92FFFFFF   jmp     00401B1E
00401B8C      58            pop     eax
00401B8D      5A            pop     edx
00401B8E      66:59         pop     cx
00401B90      0FA5D0        shld    eax, edx, cl
00401B93      50            push    eax
00401B94      9C            pushfd
00401B95    ^ E9 84FFFFFF   jmp     00401B1E
00401B9A      66:5A         pop     dx
00401B9C      001424        add     byte ptr [esp], dl
00401B9F      9C            pushfd
00401BA0    ^ E9 79FFFFFF   jmp     00401B1E
00401BA5      5A            pop     edx
00401BA6      66:0FB60A     movzx   cx, byte ptr [edx]
00401BAA      66:51         push    cx
00401BAC    ^ E9 6DFFFFFF   jmp     00401B1E
00401BB1      5A            pop     edx
00401BB2      66:58         pop     ax
00401BB4      8802          mov     byte ptr [edx], al
00401BB6    ^ E9 63FFFFFF   jmp     00401B1E
00401BBB      0FB70E        movzx   ecx, word ptr [esi]
00401BBE      66:01D9       add     cx, bx
00401BC1      66:F7D9       neg     cx
00401BC4      66:FFC1       inc     cx
00401BC7      66:C1C9 06    ror     cx, 6
00401BCB      83C6 02       add     esi, 2
00401BCE      86CD          xchg    ch, cl
00401BD0      66:01CB       add     bx, cx
00401BD3      91            xchg    eax, ecx
00401BD4      98            cwde
00401BD5      50            push    eax
00401BD6    ^ E9 43FFFFFF   jmp     00401B1E
00401BDB      8B06          mov     eax, dword ptr [esi]
00401BDD      29D8          sub     eax, ebx
00401BDF      83C6 04       add     esi, 4
00401BE2      0FC8          bswap   eax
00401BE4      05 B8AEB5E0   add     eax, E0B5AEB8
00401BE9      C1C0 10       rol     eax, 10
00401BEC      F7D0          not     eax
00401BEE      40            inc     eax
00401BEF      C1C0 1D       rol     eax, 1D
00401BF2      29C3          sub     ebx, eax
00401BF4      50            push    eax
00401BF5    ^ E9 24FFFFFF   jmp     00401B1E
00401BFA      55            push    ebp
00401BFB      AE            scas    byte ptr es:[edi]
00401BFC      CC            int3
00401BFD      CC            int3
00401BFE      CC            int3
00401BFF      6A FF         push    -1                               ; /ExitCode = FFFFFFFF
00401C01      E8 64940000   call    <jmp.&kernel32.ExitProcess>      ; \ExitProcess
00401C06      5A            pop     edx
00401C07      FF32          push    dword ptr [edx]
00401C09    ^ E9 10FFFFFF   jmp     00401B1E
00401C0E      5A            pop     edx
00401C0F      66:59         pop     cx
00401C11      D3E2          shl     edx, cl
00401C13      52            push    edx
00401C14      9C            pushfd
00401C15    ^ E9 04FFFFFF   jmp     00401B1E
00401C1A      D9ED          fldln2
00401C1C      035F 5E       add     ebx, dword ptr [edi+5E]
00401C1F      5B            pop     ebx
00401C20      C9            leave
00401C21      C2 0400       retn    4




[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
是虚拟机。vmprotect
jmp碰不得。
2008-3-11 12:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
虚拟机????楼上能说多点吗??学习中~~~
2008-3-11 13:17
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
http://bbs.pediy.com/showthread.php?t=56121
嘿嘿。看这个介绍吧。
你这个估计是vmp1.20以下的版本。415040处开始是伪指令表,256个地址。
2008-3-11 13:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看了一下,满眼的水。。。。。。。有没有其他思路避开这段来破解呢???

这程序刚开始的时候是一个验证窗口,输入用户名跟密码后正常的就跳到另外一个窗口(验证窗关闭),SS的想法:能不能让程序一开始就直接调用程序窗口,而跳过这验证窗?
2008-3-11 16:43
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
程序发上来看一下。
2008-3-11 17:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
文件比较大,先放到我的空间里,里面的sword是原来的文件,unsword是脱壳后的文件,就是里面有VMP~~老大帮忙看看,指点下,嘻嘻
点我下载
2008-3-11 18:40
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很熟悉的sword,是一个什么游戏吧?
2008-3-12 16:02
0
游客
登录 | 注册 方可回帖
返回
//