首页
社区
课程
招聘
[原创]shoooo的[第二阶段◇第三题]脱壳机源码
发表于: 2007-9-7 20:40 10117

[原创]shoooo的[第二阶段◇第三题]脱壳机源码

2007-9-7 20:40
10117

看到别人发,我也发
代码是从我写过的N个程序东抄一段西抄一段拼起来了,所以看上去很不爽


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (16)
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
2
壳一共有两种压缩算法和对应的loader
level 0是第一种 (以下称level0)
level1-level9是第二种 (以下称level1)
下面的分析是以petgui主程序为例, 用的是level1. level0的就不贴了, 原理一样的

壳段的结构
Offset   Length
+0x000    DWORD    壳输入表的偏移
+0x004    DWORD    PE头的校验值
+0x008    DWORD    解压时存放压缩数据的GlobalAlloc地址
+0x00C    0x25     一段代码, 壳出错时会跑过来退出
+0x031    0x15     壳出错时弹出的信息字符串
+0x046    0x15A    壳的第一段Loader (A部分) EP
+0x160    0x14*5   解压信息 (B部分)
+0x204    0x1CA    壳本身的整个输入表
+0x3CE    到最后   程序的输入表的dll名字集合 (C部分)

需要定位A, B, C

A部分中我们需要知道如下
004E3046      B8 00304E00        mov eax,petgui.004E3000
004E304B      68 E3644100        push petgui.004164E3   
这里004164E3是第二Loader部分,等解压完后会跳过去
004E30AC      81C6 02010000      add esi,102
这里102 可以定位到C部分
004E30B7      8D90 A0010000      lea edx,dword ptr ds:[eax+1A0]
这里1A0 可以定位到B部分

B部分是以0x14为一个分组的解压信息, 意义如下
000E2420  加密数据存放的地址
000007E9  解密后的大小
000E2420  解密后存放的地址
000007EE  /2的值是最后清0的大小,%2的值决定是否要bswap e8e90f84
000000BD  *4以后是加密数据的大小

C部分是输入表dll的名字
一个接一个排列, 每个以0结尾

----------------------------------------------------------
4164E3 这里是第二个loader, 是第一个loader解码出来的
Offset   Length
+0x000    5        E84F000000
+0x005    0x0E     一段加密代码, 和最后跳回oep有关
+0x013    字符串   如果发现校验不同过,会显示这个
后面是代码了
有几个固定偏移的地方有些重要数据
00416587      6A 03              push 3
这个3是抽api的初始计数值
0041658C      68 3E030000        push 33E
这个33E过去是一个call 解码后是跳回ep-9的地方
004165C8      315C11 01          xor dword ptr ds:[ecx+edx+1],ebx       ;
通过最后一个call 可以直接算出 ebx的值
00416605      8DB5 CC590100      lea esi,dword ptr ss:[ebp+159CC]
可以得到IID的位置, 修输入表其实就是恢复IID
00416704     /74 12              je short petgui.00416718
00416706     |3B1A               cmp ebx,dword ptr ds:[edx]
00416708     |8318 00            sbb dword ptr ds:[eax],0
0041670B     |390A               cmp dword ptr ds:[edx],ecx
0041670D     |8318 00            sbb dword ptr ds:[eax],0
00416710     |83C2 04            add edx,4
00416713     |C108 03            ror dword ptr ds:[eax],3
00416716    ^|EB E9              jmp short petgui.00416701
00416718     \C706 00000000      mov dword ptr ds:[esi],0
能过输入表的各数算oep
可以理解为, 抽则-2, 不抽则-1, 再ror 3
00416834      E8 04C80C00        call petgui.004E303D
跳回ep-9
004E303D      5F                 pop edi                                ;

petgui.00400852
004E303E      F3:AA              rep stos byte ptr es:[edi]
004E3040      61                 popad
004E3041      66:9D              popfw
004E3043      83C4 08            add esp,8
004E3046      E9 8CA0F2FF        jmp petgui.0040D0D7
跳oep
2007-9-7 20:41
0
雪    币: 2199
活跃值: (1975)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
3
学 习  !
2007-9-7 20:48
0
雪    币: 47147
活跃值: (20385)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
shoooo做题速度很快
源码拿来学习了
静态脱壳机是以静治动,呵~
2007-9-7 21:02
0
雪    币: 120
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
shoooo 加油,呵呵。
2007-9-7 21:05
0
雪    币: 1746
活跃值: (287)
能力值: (RANK:450 )
在线值:
发帖
回帖
粉丝
6
学习......
2007-9-7 21:13
0
雪    币: 233
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
代码太有条理了  学习   
2007-9-7 22:33
0
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
顶,读shoooo之代码如读幽雅美文,其惊,变,豪,诈,皆在其中,其code功夫已打通七经八脉,壮之五脏六腑,文章早已达到文武双全,开山惊石之地,通读古今,还有何人才可与其比之乎?
2007-9-7 23:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
原来汇编代码可以这么拿来用,学习了
2007-9-7 23:52
0
雪    币: 154
活跃值: (80)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
这个要学习 感谢你 感谢你的代码
2007-9-8 00:51
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
要好好学习,我下了。谢谢
2007-9-8 10:24
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
shoooo大大就是厉害,再次膜拜学习~~
2007-9-8 10:31
0
雪    币: 195
活跃值: (20)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
呜,都到第二阶段第四题了,顶shoooo大
2007-9-8 12:42
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
14
学习了,谢谢分享~~
2007-9-8 16:55
0
雪    币: 707
活跃值: (1301)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
15
shoooo,光看代码就晕了!
2007-9-8 18:51
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
16
膜拜。。。。
2007-9-9 13:31
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
17
超人.,`````````````````
2007-9-9 15:14
0
游客
登录 | 注册 方可回帖
返回
//