首页
社区
课程
招聘
[原创]手脱PECompact 2.x+IAT修复的简单方法
发表于: 2011-7-29 01:55 13386

[原创]手脱PECompact 2.x+IAT修复的简单方法

2011-7-29 01:55
13386

【目标程序】:MU私服客户端Season6.2 main.exe主程序
【外壳】PECompact2.x
【脱壳工具】PEID0.95、OD、 LordPE、 ImportREC
【作者】本人
【脱壳修复】这个壳属于比较简单的壳,那么我们也来简单地脱下!
1.查壳 
      用Peid0.95查壳,显示PECompact 2.x,经确认无误。
2.脱壳
     OD载入main.exe主程序,停在这里:

00401000 >  B8 60B42F09     mov     eax, 092FB460
00401005    50              push    eax
00401006    64:FF35 0000000>push    dword ptr fs:[0]
0040100D    64:8925 0000000>mov     dword ptr fs:[0], esp
00401014    33C0            xor     eax, eax
00401016    8908            mov     dword ptr [eax], ecx
00401018    50              push    eax
00401019    45              inc     ebp
0040101A    43              inc     ebx
0040101B    6F              outs    dx, dword ptr es:[edi]
0040101C    6D              ins     dword ptr es:[edi], dx
0040101D    70 61           jo      short 00401080
0040101F    637432 00       arpl    word ptr [edx+esi], si
00401023    5F              pop     edi
00401024    46              inc     esi
00401025    5F              pop     edi
00401026    9B              wait
753479FF >  8BFF            mov     edi, edi
75347A01    55              push    ebp
75347A02    8BEC            mov     ebp, esp
75347A04    FF75 14         push    dword ptr [ebp+14]
75347A07    FF75 10         push    dword ptr [ebp+10]
75347A0A    FF75 0C         push    dword ptr [ebp+C]
75347A0D    FF75 08         push    dword ptr [ebp+8]
75347A10    6A FF           push    -1
75347A12    E8 A1FFFFFF     call    VirtualAllocEx
75347A17    5D              pop     ebp
75347A18    C2 1000         retn    10
00020AC4    8985 272F0010   mov     dword ptr [ebp+10002F27], eax
00020ACA    56              push    esi
00020ACB    E8 F6030000     call    00020EC6
00020AD0    8D8D BD2D0010   lea     ecx, dword ptr [ebp+10002DBD]
00020AD6    85C0            test    eax, eax
00020AD8    0F85 94000000   jnz     00020B72
00020ADE    56              push    esi
00020ADF    E8 40030000     call    00020E24
00020AE4    56              push    esi
00020AE5    E8 55020000     call    00020D3F
00020AEA    90              nop
00020AEB    90              nop
00020AEC    90              nop
00020AED    90              nop
00020AEE    90              nop
00020AEF    90              nop
00020AF0    90              nop
00020AF1    90              nop
00020AF2    90              nop
00020AF3    90              nop
00020AF4    90              nop
00020AF5    90              nop
00020AF6    90              nop
00020AF7    90              nop
00020AF8    8B4E 34         mov     ecx, dword ptr [esi+34]
00020AFB    85C9            test    ecx, ecx
00020AFD    0F84 89000000   je      00020B8C
00020B03    034E 08         add     ecx, dword ptr [esi+8]
00020B06    51              push    ecx
00020B07    56              push    esi
00020B08    E8 47060000     call    00021154
00020AF8    8B4E 34         mov     ecx, dword ptr [esi+34]          ; main.08EF6000
00020AFB    85C9            test    ecx, ecx(1.将这里的ECX寄存器置0)
00020AFD    0F84 89000000   je      00020B8C(或者2.将这里改为JMP或JNZ或置标志位 Z为1)
00020B03    034E 08         add     ecx, dword ptr [esi+8]
00020B06    51              push    ecx
00020B07    56              push    esi
00020B08    E8 47060000     call    00021154
00020B8C    8B7B 08         mov     edi, dword ptr [ebx+8]
00020B8F    8BDE            mov     ebx, esi
00020B91    837B 48 01      cmp     dword ptr [ebx+48], 1
00020B95    75 15           jnz     short 00020BAC
00020B97    8B43 0C         mov     eax, dword ptr [ebx+C]
00020B9A    8B4B 40         mov     ecx, dword ptr [ebx+40]
00020B9D    8BF1            mov     esi, ecx
00020B9F    03F7            add     esi, edi
00020BA1    C606 E9         mov     byte ptr [esi], 0E9
00020BA4    83C1 05         add     ecx, 5
00020BA7    2BC1            sub     eax, ecx
00020BA9    8946 01         mov     dword ptr [esi+1], eax
00020BAC    8BF3            mov     esi, ebx

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以下bp VirtualFree断点,断下后查找关键字push 8000,F8几下,就到OEP了
2011-8-3 08:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看不懂啊,功力不行。呵呵
2011-8-5 08:10
0
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我是直接用VirtualProtect下斷,返回程式領空,單步沒多久就到了OEP。
2011-8-5 09:42
0
雪    币: 118
活跃值: (106)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
bp VirtualFree?为什么可以这么断啊,是不是所有壳都可以这么断啊?
2011-8-26 15:29
0
雪    币: 1489
活跃值: (1088)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
并不是所有的壳都可以,到达你想的流程点。

可以尝试其他断点,通常脱一些壳花大量的时间做一些很多无用功的断点,多次尝试下某个断点吧。
2011-8-26 17:15
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看了半天,OEP到底是多少?
应该是008ED9E6,为什么ImportREC中是004ED9E6??
刚学脱壳,不要笑我。。。
2011-8-29 10:43
0
雪    币: 200
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很复杂啊。。。。。。。。
2011-10-23 13:17
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
我也新手ing,但能给你解释下OEP(008ED9E6) -  基址(400000)= ImportREC中是004ED9E6
2011-10-31 08:29
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
等下试下.....
2011-12-2 20:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习,一定要好好学习
2011-12-17 00:04
0
游客
登录 | 注册 方可回帖
返回
//