首页
社区
课程
招聘
[原创]PeCompact 2.x 通用简单脱壳法
发表于: 2005-2-16 15:29 14264

[原创]PeCompact 2.x 通用简单脱壳法

2005-2-16 15:29
14264

今天还有朋友在问PeCompact2.x的脱壳方法,我再这里把我的通用脱法提一下(在看其它高手们文章的基础上总结的,在此表示感谢).
  [法则]:
   PeCompact2.x是制造了两个异常(00000000内存写异常和Single Step单步循环异常),我们可以轻松通过查看SEH链来进行脱壳

下面我说一下通用简单脱壳法:

1、去掉所有异常忽略,保留kernel32里的内存读写异常忽略
2、F9,run
3、遇到写[00000000]内存异常,暂停
4、查看SEH 链,也可从esp+4获得第一个SE Handle,Ctrl+G,来到此地址
5、向下找jmp eax,大概在$+CB处,记住此地址
6、ollydbg重新载入,下硬件执行断点: he 第5步的地址,F9,Shift+F9,中断
7、F8
8、dump,imprec fix iat,完工

  [例子]:
   GameThrust1.2: http://www.onlinedown.net/soft/37372.htm
   工具: Ollydbg/LordPE/Imprec
   依照上面提及通用方法,去掉ollydbg中所有异常忽略,保留kernel32里的内存读写异常忽略
   用ollydbg载入GameThrust.exe,F9


00401000 > B8 34C05000 MOV EAX,GameThru.0050C034
00401005 50 PUSH EAX
00401006 64:FF35 00000000 PUSH DWORD PTR FS:[0]
0040100D 64:8925 00000000 MOV DWORD PTR FS:[0],ESP
00401014 33C0 XOR EAX,EAX
00401016 8908 MOV DWORD PTR DS:[EAX],ECX ;****此处异常****
00401018 50 PUSH EAX
00401019 45 INC EBP
0040101A 43 INC EBX

0012FFBC 0012FFE0 Pointer to next SEH record
0012FFC0 0050C034 SE handler ;******SE handle 50C034*****
0012FFC4 7C816D4F RETURN to kernel32.7C816D4F
0012FFC8 7C930738 ntdll.7C930738
0012FFCC FFFFFFFF
0012FFD0 7FFD9000
0012FFD4 8054C038


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

收藏
免费 7
支持
分享
最新回复 (18)
雪    币: 12323
活跃值: (4040)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习!学习!
谢谢!
2005-2-16 16:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢!学习中,,,,
2005-2-16 17:19
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
嗯  鼓励一下
2005-2-16 18:06
0
雪    币: 97697
活跃值: (200824)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
支持...
2005-2-16 20:13
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
还有厉害的方法?支持
2005-2-16 20:42
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
多谢!学习中
2005-2-16 21:35
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习中^^^^^
2005-2-16 21:51
0
雪    币: 272
活跃值: (470)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
9
多谢!刚碰到一个这样壳的软件,回去试试先!
2005-2-18 10:52
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
学习!学习!
谢谢!
2005-2-20 17:50
0
雪    币: 405
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
非常感谢,小弟遇到一个程序,用PEID自带通用脱壳插件脱不了,看你这篇教程后一次搞定
2005-3-1 10:51
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
言简意赅,欣赏这种方式.
2005-3-1 12:54
0
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
  路有千万条,看走哪条最近
俺喜欢这种方式
2005-3-1 13:44
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
14
$+CB是什么意思?
$和CB分别代表什么啊??
2005-3-6 01:05
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
15

$+CB是什么意思?
$和CB分别代表什么啊??

$表示当前地址,$+CB表示当前地址向后偏移+CB个字节。
2005-3-6 12:01
0
雪    币: 228
活跃值: (130)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
我脱的时候,直接找那个异常下面的一处跳转下硬件执行中断。然后f9会直接断下来,往上看就是oep了,加了壳后的入口和原来的入口是一样的。不知这个方法有没有通用性。
2005-3-24 21:24
0
雪    币: 225
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我手脱了几个好像均不要修复。
2005-3-25 11:11
0
雪    币: 320
活跃值: (104)
能力值: (RANK:180 )
在线值:
发帖
回帖
粉丝
18
最初由 peaceclub 发布
今天还有朋友在问PeCompact2.x的脱壳方法,我再这里把我的通用脱法提一下(在看其它高手们文章的基础上总结的,在此表示感谢).
[法则]:
PeCompact2.x是制造了两个异常(00000000内存写异常和Single Step单步循环异常),我们可以轻松通过查看SEH链来进行脱壳

下面我说一下通用简单脱壳法:
........


请教后面这句

用ollydbg重新载入,下硬件执行断点: he 50c0ff,F9,Shift+F9,中断
F8,来到487228处

里面的 he 是什么意思 是goto到50c0ff 然后在50c0ff下断点吗

THX
2005-4-27 22:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习!学习!
谢谢!
2005-4-29 00:10
0
游客
登录 | 注册 方可回帖
返回
//