一段代码,就是一堆的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
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!