脱壳目标:命运2999外挂
下载地址:
http://image2.uc999.com/mingyun/iframe/17126_down/2005/09/wg999_09292.exe
查壳软件:我用的是FI 和PEID0.93显示结果均为Nothing found *PEID查壳的EP区段为XPROT 不知道这个可不可以考虑为XPROT 壳呢?OD我是用FLY前辈修改过的版本。
004CD010 > B8 00000000 mov eax,0 OD段在这
004CD015 60 pushad F8来到这根据看过的教程我判断这是程序的入口点
004CD016 0BC0 or eax,eax
004CD018 74 58 je short MY2.004CD072继续F8到了这 跳转实现 向下跳到4cdi072看到许多的教程
都叫一直想下走 遇到向下的跳转就条,如实我F8跳到4cdi072处
004CD01A E8 00000000 call MY2.004CD01F
004CD01F 58 pop eax
004CD020 05 43000000 add eax,43
004CD025 8038 E9 cmp byte ptr ds:[eax],0E9
004CD028 75 03 jnz short MY2.004CD02D
004CD02A 61 popad
004CD02B EB 35 jmp short MY2.004CD062
004CD02D E8 00000000 call MY2.004CD032
004CD032 58 pop eax
…………………………………………………………………………
004CD072 B8 E49B5600 mov eax,MY2.00569BE4跳到这里 继续F8向下
004CD077 B9 F1D14C00 mov ecx,MY2.004CD1F1
004CD07C 50 push eax
004CD07D 51 push ecx
004CD07E E8 1F000000 call MY2.004CD0A2 连续的两个远程CALL都F8步过了
004CD083 E8 00000000 call MY2.004CD088
004CD088 58 pop eax
004CD089 2D 26000000 sub eax,26
004CD08E B9 8A010000 mov ecx,18A
004CD093 C600 E9 mov byte ptr ds:[eax],0E9
004CD096 83E9 05 sub ecx,5
004CD099 8948 01 mov dword ptr ds:[eax+1],ecx
004CD09C 61 popad 根据我看过的教程上所说的我想这就应该是程序的出口了
004CD09D E9 4A010000 jmp MY2.004CD1EC上面的POPAD与开始的PUSHAD 想对应 而且是一个很大的实现的
跳转 本以为这就跳到OEP去了 不跳不知道 一跳我晕了
004CD0A2 60 pushad
004CD0A3 8B7424 24 mov esi,dword ptr ss:[esp+24]
004CD0A7 8B7C24 28 mov edi,dword ptr ss:[esp+28]
004CD0AB FC cld
…………………………………………………………………………………………………………
004CD1E0 2B7C24 28 sub edi,dword ptr ss:[esp+28]
004CD1E4 897C24 1C mov dword ptr ss:[esp+1C],edi
004CD1E8 61 popad
004CD1E9 C2 0800 retn 8
004CD1EC E9 F3C90900 jmp MY2.00569BE4跳到了这里 上面竟然还有个POPAD 而且下面是一个循环 而且这
句怎么看也不象传说中的OEP呀 他是一个实现的跳转 ,而且还是向下的 那就接着跳吧
004CD1F1 - E9 387C2753 jmp 53744E2E
004CD1F6 01AE FC248B84 add dword ptr ds:[esi+848B24FC],ebp
004CD1FC 7B C8 jpo short MY2.004CD1C6
004CD1FE 337B 84 xor edi,dword ptr ds:[ebx-7C]
004CD201 3E:FFC8 dec eax
004CD204 11B8 46F30184 adc dword ptr ds:[eax+8401F346],edi
004CD20A 2AEF sub ch,bh
004CD20C E2 71 loopd short MY2.004CD27F
004CD20E 2E:10AB EFF2223>adc byte ptr cs:[ebx+3B22F2EF],ch
004CD215 842F test byte ptr ds:[edi],ch
004CD217 FB sti
004CD218 F2: prefix repne:
………………………………………………………………………………………………………………………………
00569BE4 /E9 7C270000 jmp MY2.0056C365 程序跳到了这里 这另我更是晕忽忽不知道东南西北了,还是
一个超大的跳转 仍然是象下。多都条了也不差这么一个 继续跳
00569BE9 |0000 add byte ptr ds:[eax],al
00569BEB |0000 add byte ptr ds:[eax],al
00569BED |0000 add byte ptr ds:[eax],al
00569BEF |0000 add byte ptr ds:[eax],al
00569BF1 |0000 add byte ptr ds:[eax],al
00569BF3 |0000 add byte ptr ds:[eax],al
………………………………………………………………………………………………………………
0056C365 8BC5 mov eax,ebp 跳到了这里 本想这总是OEP了吧 用OD插件脱壳 保存以后用PEID差
壳还是一样的问题 郁闷 看来这也不是 还好OD没有关 继续向下
0056C367 8BD4 mov edx,esp
0056C369 60 pushad
0056C36A E8 00000000 call MY2.0056C36F
0056C36F 5D pop ebp
0056C370 81ED 8B272B05 sub ebp,52B278B
0056C376 8995 B1052B05 mov dword ptr ss:[ebp+52B05B1],edx
0056C37C 89B5 09112B05 mov dword ptr ss:[ebp+52B1109],esi
0056C382 8985 1D142B05 mov dword ptr ss:[ebp+52B141D],eax
0056C388 83BD 05082B05 0>cmp dword ptr ss:[ebp+52B0805],0
0056C38F 74 0C je short MY2.0056C39D
0056C391 8BE8 mov ebp,eax
0056C393 8BE2 mov esp,edx
0056C395 B8 01000000 mov eax,1
0056C39A C2 0C00 retn 0C
0056C39D 6A 45 push 45
0056C39F E8 A3000000 call MY2.0056C447
0056C3A4 68 9A748307 push 783749A
0056C3A9 E8 DF000000 call MY2.0056C48D
0056C3AE 68 254B890A push 0A894B25
0056C3B3 E8 D5000000 call MY2.0056C48D
0056C3B8 E9 5A010000 jmp MY2.0056C517 F8来到这里仍然是个很远的跳 还是向下 又跳了
…………………………………………………………………………………………………………
0056C517 B9 00700000 mov ecx,7000
0056C51C 8DBD 44292B05 lea edi,dword ptr ss:[ebp+52B2944]
0056C522 FE0F dec byte ptr ds:[edi]
0056C524 47 inc edi
0056C525 49 dec ecx
0056C526 ^ 75 FA jnz short MY2.0056C522向上跳 不跳
0056C528 B9 22226A49 mov ecx,496A2222 选中这行 F4运行到所选
00056C52D BA 00D00C00 mov edx,0CD000
0056C532 8D85 1C2A2B05 lea eax,dword ptr ss:[ebp+52B2A1C]
0056C538 50 push eax ; MY2.0056C600
0056C539 64:FF35 0000000>push dword ptr fs:[0]
0056C540 64:8925 0000000>mov dword ptr fs:[0],esp
0056C547 E8 00000000 call MY2.0056C54C
0056C54C 58 pop eax
0056C54D 6A 00 push 0
0056C54F 56 push esi
0056C550 E8 03000000 call MY2.0056C558 F8到这里的时候继续向下走的时候程序条可
0056C555 205E C3 and byte ptr ds:[esi-3D],bl
0056C558 5E pop esi
0056C559 897424 04 mov dword ptr ss:[esp+4],esi
0056C55D 814424 04 1C000>add dword ptr ss:[esp+4],1C
0056C565 46 inc esi
0056C566 56 push esi
0056C567 C3 retn
0056C568 C9 leave
0056C569 CE into
0056C56A EF out dx,eax
0056C56B FC cld
0056C56C 85DA test edx,ebx
0056C56E 0BE8 or ebp,eax
0056C570 018A D82BC266 add dword ptr ds:[edx+66C22BD8],ecx
0056C576 BB E2662500 mov ebx,2566E2
…………………………………………………………………………………………
00582AED CD 01 int 1 跳到这里 然后按什么程序都不动了 我试过步过上面的那个CALL 但是无论
怎么样程序都会跳到着 求各位帮忙指点下
00582AEF EB 00 jmp short MY2.00582AF1
00582AF1 50 push eax
00582AF2 52 push edx
00582AF3 81D9 1C118B5F sbb ecx,5F8B111C
00582AF9 0F31 rdtsc
00582AFB E9 06000000 jmp MY2.00582B06
00582B00 C687 B4DD5223 5>mov byte ptr ds:[edi+2352DDB4],5A
00582B07 58 pop eax
00582B08 6A 00 push 0
00582B0A 55 push ebp
00582B0B E8 03000000 call MY2.00582B13
00582B10 205D C3 and byte ptr ss:[ebp-3D],bl
00582B13 5D pop ebp
00582B14 896C24 04 mov dword ptr ss:[esp+4],ebp
00582B18 814424 04 1D000>add dword ptr ss:[esp+4],1D
00582B20 45 inc ebp
00582B21 55 push ebp
00582B22 C3 retn
00582B23 9E sahf
00582B24 7F 4C jg short MY2.00582B72
PS:如果大家是因为我脱的是游戏外挂而不愿意指点的话也可以用别的做为范例来说明,我之所以脱外挂是以为大多的外挂都很小而且没有安装信息 解压就能用 嘿嘿 谢谢大家了
在BAIDU没有找到相关信息 所以只好来麻烦大家了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)