首页
社区
课程
招聘
[原创]PECompact 1.68 -1.84(烂!烂!)脱壳
发表于: 2005-4-18 14:32 5834

[原创]PECompact 1.68 -1.84(烂!烂!)脱壳

2005-4-18 14:32
5834
Throttle
电脑报2003年光盘软件
网络加速类
Throttle is not free software. You are required to pay a registration fee and register the software if you wish to continue using it after an evaluation period of not exceeding 28 days.

The software itself is not time limited in days. However the software is disabled in the shareware package.

When you register the software you will receive a serial number which you must enter in the program's registration screen. After this serial number is entered you will be able to select the 'Fastest' setting. The 'Fastest' setting will then optimize modem performance for optimal speed.
壳保护:
PECompact 1.68 - 1.84 -> Jeremy Collake
Peid扫描,发现OEP,这一回发现,Peid不听话!!!

第一篇:脱壳
Peid扫描得到OEP:0047D6A0
依据这个OEP,用电脑内的脱壳工具,脱壳失败!!!!只好手动了!

这里才是真正的OEP!!!
0047DEE0     55                  push ebp                     到这里时,用OD的脱壳插件,脱之,不用修复,完全可以正常使用!!
0047DEE1     8BEC                mov ebp,esp
0047DEE3     B9 09000000         mov ecx,9
0047DEE8     6A 00               push 0
0047DEEA     6A 00               push 0
0047DEEC     49                  dec ecx
0047DEED   ^ 75 F9               jnz short Throttle.0047DEE8

重放一下全过程:
OD载入,停在这里:
004F2000 T> /EB 06               jmp short Throttle.004F2008
004F2002    |68 E0DE0700         push 7DEE0
004F2007    |C3                  retn
004F2008    \9C                  pushfd                        开始处理了!
004F2009     60                  pushad
004F200A     E8 02000000         call Throttle.004F2011        F7跟进,开始不知道,那个Call要进去,好在这种壳,Call并不多,我就每个Call都跟进,为的是怕它不小心就飞了!

004F318E     56                  push esi
004F318F     FF95 DA904000       call dword ptr ss:[ebp+4090DA]   ; Throttle.004F63A0   这里又一Call,再跟进,然后慢慢F8单步

004F63AE     8A06                mov al,byte ptr ds:[esi]
004F63B0     46                  inc esi
004F63B1     8807                mov byte ptr ds:[edi],al
004F63B3     47                  inc edi
004F63B4     02D2                add dl,dl
004F63B6     75 05               jnz short Throttle.004F63BD
004F63B8     8A16                mov dl,byte ptr ds:[esi]
004F63BA     46                  inc esi
004F63BB     12D2                adc dl,dl
004F63BD   ^ 73 EF               jnb short Throttle.004F63AE   这里总是往上跳,为了加快,Mouse放在下一行,然后按F4,跳过去
004F63BF     02D2                add dl,dl                     Mouse放在这里,按F4就下来了

004F640E     5F                  pop edi
004F640F     8807                mov byte ptr ds:[edi],al
004F6411     47                  inc edi
004F6412   ^ EB A0               jmp short Throttle.004F63B4       这个Jmp在以后的时间里多次出现,是往回跳的,往回跳,当然是在作解壳操作,Mouse放在下一行,按F4
004F6414     B8 01000000         mov eax,1                          Mouse放在这一行,按F4,跳下来

004F31FF     6A 00               push 0
004F3201     FF95 41974000       call dword ptr ss:[ebp+409741]                   ; kernel32.VirtualAlloc   看这个Kernel32,按F8过去就行
004F3207     8BF8                mov edi,eax

004F32AE     5E                  pop esi
004F32AF     5F                  pop edi
004F32B0   ^ EB 9B               jmp short Throttle.004F324D          这个Call也在往回跳,不过当Mouse放在下一行,按F4,程序就运行了,所以还得让它往回跳
004F32B2     B9 E8000000         mov ecx,0E8

看下面,发现,程序必须到达je Throttle.004F32F2

004F324F     85C0                test eax,eax
004F3251     0F84 9B000000       je Throttle.004F32F2               跟踪发现,程序应该到这里,加快些吧,我就在命令行输入G 004232F2 到那里去!
004F3257     8BD0                mov edx,eax

来到这里:
004F32F2     5F                  pop edi                                          ; 00E60000
004F32F3     8BB5 E2904000       mov esi,dword ptr ss:[ebp+4090E2]
004F32F9     AD                  lods dword ptr ds:[esi]
004F32FA     83F8 FF             cmp eax,-1
004F32FD     74 74               je short Throttle.004F3373             跟踪发现,程序必须到达这里,在命令行输入G 004F3373

来到这里:
004F3373     68 00400000         push 4000
004F3378     6A 00               push 0
004F337A     57                  push edi
004F337B     FF95 45974000       call dword ptr ss:[ebp+409745]    这个Call到了系统区,当要F8带过

004F339B     03FE                add edi,esi
004F339D     03DE                add ebx,esi
004F339F     49                  dec ecx
004F33A0     74 72               je short Throttle.004F3414        G 004F3414 可以跳出这个循环!
004F33A2     78 70               js short Throttle.004F3414
004F33A4     66:8B07             mov ax,word ptr ds:[edi]
004F33A7     2C E8               sub al,0E8
004F33A9     3C 01               cmp al,1
004F33AB     76 38               jbe short Throttle.004F33E5
004F33AD     66:3D 1725          cmp ax,2517
004F33B1     74 51               je short Throttle.004F3404
004F33B3     3C 27               cmp al,27
004F33B5     75 0A               jnz short Throttle.004F33C1
004F33B7     80FC 80             cmp ah,80
004F33BA     72 05               jb short Throttle.004F33C1
004F33BC     80FC 8F             cmp ah,8F
004F33BF     76 05               jbe short Throttle.004F33C6
004F33C1     47                  inc edi
004F33C2     43                  inc ebx
004F33C3   ^ EB DA               jmp short Throttle.004F339F
004F33C5     B8 8B47023C         mov eax,3C02478B
004F33CA     2F                  das
004F33CB     75 0E               jnz short Throttle.004F33DB
004F33CD     66:C1E8 08          shr ax,8
004F33D1     C1C0 10             rol eax,10
004F33D4     86C4                xchg ah,al
004F33D6     2BC3                sub eax,ebx
004F33D8     8947 02             mov dword ptr ds:[edi+2],eax
004F33DB     BE 06000000         mov esi,6
004F33E0     83E9 05             sub ecx,5
004F33E3   ^ EB B6               jmp short Throttle.004F339B         这里总在往上跳,但是Mouse放在下一行,按F4程序又运行了
004F33E5     8B47 01             mov eax,dword ptr ds:[edi+1]

我就让它跳到这里吧 G 004F3414,到了这里:
004F3414     5F                  pop edi                                          ; Throttle.00401000
004F3415     59                  pop ecx
004F3416     33C0                xor eax,eax
004F3418     85C9                test ecx,ecx
004F341A     74 3B               je short Throttle.004F3457                程序必须到004F3457
004F341C     8BF7                mov esi,edi
004F341E     33C0                xor eax,eax
004F3420     83F9 04             cmp ecx,4
004F3423     72 32               jb short Throttle.004F3457
004F3425     87DB                xchg ebx,ebx
004F3427     87DB                xchg ebx,ebx
004F3429     87DB                xchg ebx,ebx
004F342B     87DB                xchg ebx,ebx
004F342D     87DB                xchg ebx,ebx
004F342F     8B1E                mov ebx,dword ptr ds:[esi]
004F3431     03C3                add eax,ebx
004F3433     D1E3                shl ebx,1
004F3435     83D3 01             adc ebx,1
004F3438     33C3                xor eax,ebx
004F343A     83C6 04             add esi,4
004F343D     83E9 04             sub ecx,4
004F3440     74 15               je short Throttle.004F3457
004F3442     83F9 04             cmp ecx,4
004F3445   ^ 73 E8               jnb short Throttle.004F342F
004F3447     BA 04000000         mov edx,4
004F344C     2BD1                sub edx,ecx
004F344E     2BF2                sub esi,edx
004F3450     B9 04000000         mov ecx,4
004F3455   ^ EB D8               jmp short Throttle.004F342F    这里总是往上跳!!

G 004F3457 来到这里:

004F3457     3B85 67974000       cmp eax,dword ptr ss:[ebp+409767]
004F345D     74 4D               je short Throttle.004F34AC     跳下去了!
004F345F   ^ E9 4FFEFFFF         jmp Throttle.004F32B3
004F3464     54                  push esp
004F3465     68 69732065         push 65207369
004F346A     78 65               js short Throttle.004F34D1
004F346C     6375 74             arpl word ptr ss:[ebp+74],si
004F346F     61                  popad                           这个东东看着高兴

来到这里:
004F3523     80BD 6B9F4000 C3    cmp byte ptr ss:[ebp+409F6B],0C3  这里比较干什么???
004F352A    /74 22               je short Throttle.004F354E
004F352C    |8D95 6BA14000       lea edx,dword ptr ss:[ebp+40A16B]
004F3532    |6A 40               push 40
004F3534    |52                  push edx
004F3535    |FFB5 3D974000       push dword ptr ss:[ebp+40973D]
004F353B    |FFB5 39974000       push dword ptr ss:[ebp+409739]
004F3541    |E8 F40A0000         call Throttle.004F403A
004F3546    |85C0                test eax,eax
004F3548   ^|0F85 9DFDFFFF       jnz Throttle.004F32EB
004F354E    \61                  popad                                  好东东呀!!!!!!!
004F354F     9D                  popfd                                  好东东呀!!!!!!!!
004F3550     50                  push eax
004F3551     68 E0DE4700         push Throttle.0047DEE0                           ; ASCII "U??"
004F3556     C2 0400             retn 4                                这里应该回到了入口点!

果然,到了这里:
0047DEE0     55                  push ebp                            Mouse停在这里,用OD插件,脱之,不用修复输入表,就可以用,真高兴
0047DEE1     8BEC                mov ebp,esp
0047DEE3     B9 09000000         mov ecx,9
0047DEE8     6A 00               push 0
0047DEEA     6A 00               push 0
0047DEEC     49                  dec ecx
0047DEED   ^ 75 F9               jnz short Throttle.0047DEE8

脱壳,熟练掌握:F4 F7 F8 键,还有命令行:G命令,加快速度,要点,就是不能让程序运行起来!俗称:跑飞

现在用OD载入原程序,在命令行输入:
G  0047DEE0
就到了上面的入口点。

原来是PEid找错了入口点的原故!!看Pecompact与Aspack,UPX等等一样,是容易的壳。
只是我习惯于工具脱壳,所以我并不知道呀!

注册算法见调试论坛

18:19 2005-4-8
by wofan[OCN][PYG]

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 223
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习
2005-4-18 15:16
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
容易解的壳未必就“烂”,楼主不仁义的说。
你觉得UPX烂吗?尊重点Author的劳动成果吧!
2005-4-18 16:37
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
分清是packer 还是protector,能脱有时不需要一点技术含量的,而写一个packer需要太多的技术含量,所以说出的来的话要谦虚而谨慎
2005-4-18 21:19
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
5
我是说我的脱壳技术烂 ,可不是说壳烂呀!
因为是在标题中写的,然而没料到标题是有位数限制的!!!
我上网是用小猫,所以不便修正!!!
对不起大家,特别对不起壳的作者!!!!
2005-4-19 02:25
0
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习!!!
2005-4-19 15:38
0
游客
登录 | 注册 方可回帖
返回
//