首页
社区
课程
招聘
[原创]轻松解被MoleBox打包了的程序
发表于: 2006-6-15 14:35 19673

[原创]轻松解被MoleBox打包了的程序

2006-6-15 14:35
19673

【文章标题】: 轻松解被MoleBox打包了的程序
【文章作者】: wynney
【软件名称】: flashfxp 3.3.7(bulid 1129) RC1
【下载地址】: 可以问LOVE[BCG][DFCG]兄要 ^_^
【保护方式】: 由MoleBox打包
【软件介绍】: LOVE[BCG][DFCG]干的好事 哈哈
【作者声明】: 今天很无聊,看雪论坛也似乎没以前热闹了,于是,在电脑里找了下,发现先前做的这么个记录,便重新整理下,大虾飘过
--------------------------------------------------------------------------------
【详细过程】
  不记得什么时候了,在一蓑烟雨论坛上看到烈火兄的脱壳申请,觉得有点意思,就拿来玩了下,一点经验仅供大家参考了
  
  忽略所有异常
  一、先去OEP溜达下吧
  
  程序入口
  


0072FB53 > E8 00000000 call flashfxp.0072FB58 ;EP,F8
0072FB58 60 pushad
0072FB59 E8 4F000000 call flashfxp.0072FBAD ;ESP=0012FFA0,hr 0012FFA0,Shift+F9 4次

00715B57 83C7 08 add edi,8 ;第4次中断在这里,删除硬件断点,向下拉下看看。。
00715B5A FF96 1CCB3200 call dword ptr ds:[esi+32CB1C]
00715B60 95 xchg eax,ebp
00715B61 8A07 mov al,byte ptr ds:[edi]
00715B63 47 inc edi
00715B64 08C0 or al,al
00715B66 ^ 74 DC je short flashfxp.00715B44
00715B68 89F9 mov ecx,edi
00715B6A 57 push edi
00715B6B 48 dec eax
00715B6C F2:AE repne scas byte ptr es:[edi]
00715B6E 55 push ebp
00715B6F FF96 20CB3200 call dword ptr ds:[esi+32CB20]
00715B75 09C0 or eax,eax
00715B77 74 07 je short flashfxp.00715B80
00715B79 8903 mov dword ptr ds:[ebx],eax
00715B7B 83C3 04 add ebx,4
00715B7E ^ EB E1 jmp short flashfxp.00715B61
00715B80 FF96 28CB3200 call dword ptr ds:[esi+32CB28]
00715B86 8BAE 24CB3200 mov ebp,dword ptr ds:[esi+32CB24]
00715B8C 8DBE 00F0FFFF lea edi,dword ptr ds:[esi-1000]
00715B92 BB 00100000 mov ebx,1000
00715B97 50 push eax
00715B98 54 push esp
00715B99 6A 04 push 4
00715B9B 53 push ebx
00715B9C 57 push edi
00715B9D FFD5 call ebp
00715B9F 8D87 1F020000 lea eax,dword ptr ds:[edi+21F]
00715BA5 8020 7F and byte ptr ds:[eax],7F
00715BA8 8060 28 7F and byte ptr ds:[eax+28],7F
00715BAC 58 pop eax
00715BAD 50 push eax
00715BAE 54 push esp
00715BAF 50 push eax
00715BB0 53 push ebx
00715BB1 57 push edi
00715BB2 FFD5 call ebp
00715BB4 58 pop eax
00715BB5 61 popad
00715BB6 8D4424 80 lea eax,dword ptr ss:[esp-80]
00715BBA 6A 00 push 0
00715BBC 39C4 cmp esp,eax
00715BBE ^ 75 FA jnz short flashfxp.00715BBA
00715BC0 83EC 80 sub esp,-80
00715BC3 ^ E9 8890F0FF jmp flashfxp.0061EC50 ;跳向OEP,直接F4下来,F8下到OEP

0061EC50 55 push ebp ;OEP,Delphi程序的入口
0061EC51 8BEC mov ebp,esp
0061EC53 83C4 E0 add esp,-20
0061EC56 53 push ebx

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (22)
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
这个方法可以把主程序搞定, 支持
不知楼主有没有对其它捆绑文件分离的研究呢?
2006-6-15 14:42
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
3
支持,学习
2006-6-15 14:50
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
期待楼主做一个分离工具
2006-6-15 15:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
都是高手

不知道我什么时候能到这一步
2006-6-15 15:28
0
雪    币: 11
活跃值: (213)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习,不过感觉好像molebox 没thinst强
2006-6-15 16:52
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
7
molebox有个文件列表
2006-6-15 17:34
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
8
最初由 堀北真希 发布
这个方法可以把主程序搞定, 支持
不知楼主有没有对其它捆绑文件分离的研究呢?

这个倒没有,如果牛人兄有现成的东西,可以放上来研究下
2006-6-15 17:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
支持的啊,学习了哦
2006-6-15 17:54
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
10
这个东西不好找
放上来给大家吧
Part2
上传的附件:
2006-6-15 18:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
怎么用啊。不识哦。
2006-6-16 21:28
0
雪    币: 201
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
看不太懂``````
2006-6-16 22:11
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
Molebox将捆绑文件的列表存在Molebox数据文件或主程序的尾部,用TEA算法加密。如果能够找到密钥的话,就可以解开。
2006-6-21 01:51
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
感谢楼主,molebox的IAT加密的地方我以前一直没找到,放在一边N久了,看了你的文章解决了
但是有个地方我想补充一下,其实你脱的这个程序是双层壳,
hr 0012FFA0,Shift+F9一次时,
0072F72B    58              pop eax
0072F72C    894424 24       mov dword ptr ss:[esp+24],eax
0072F730    61              popad
0072F731    58              pop eax //停在这一行
0072F732    58              pop eax
0072F733    FFD0            call eax
0072F735    E8 A6C00000     call flashfxp.0073B7E0
0072F73A    CC              int3

停在72f731这里,在72f733这个call用F7跟进去就离开molebox这一层壳了。第二层好像是UPX1.90的壳
2006-6-21 22:53
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
15

但是有个地方我想补充一下,其实你脱的这个程序是双层壳,
hr 0012FFA0,Shift+F9一次时,
0072F72B 58 pop eax
0072F72C 894424 24 mov dword ptr ss:[esp+24],eax
0072F730 61 popad
0072F731 58 pop eax //停在这一行
0072F732 58 pop eax
0072F733 FFD0 call eax
0072F735 E8 A6C00000 call flashfxp.0073B7E0
0072F73A CC int3

停在72f731这里,在72f733这个call用F7跟进去就离开molebox这一层壳了。第二层好像是UPX1.90的壳


你补充的楼主在文章里面已经有暗示。。

Btw:你如果慢慢跟踪你会发现里面一层是UPX的壳


楼主没直接去讲,应该是为了教程的简洁了
2006-6-21 23:22
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
16
我最喜欢写脚本了:
//molebox 2.x ,by skylly
msg "忽略所有异常"
sto
sto
var cool
mov cool,esp
bphws cool,"r" //esp定律,用来找OEP
var VirtualProtect
gpa "VirtualProtect","kernel32.dll"
cmp $RESULT,0
je err
mov VirtualProtect,$RESULT
bp VirtualProtect  //下VP的断点为了找IAT加密的地方

eob check
eoe check //发生中断则执行check
esto

ret

check:
cmp eip,VirtualProtect  //检查是否是断在VP
je VirtualProtect
esto
ret

VirtualProtect:
rtu
var a
mov a,eip
mov a,[a]
cmp a,A75C085 //看用户代码处是否test eax,eax;jnz
je iat //如果是则到了关键地点
esto
ret

cool: //所有要做的都做完了,很快到OEP了
cob
coe
run
bphwc cool

zou: //自动走路的代码
mov a,eip
mov a,[a]
shl a,8
shl a,8
shl a,8
cmp a,58000000  //直到指令不是pop eax为止
jne cool2
sto
jmp zou

cool2:
sti //进入call eax就到OEP了
jmp oep
ret

iat: //对IAT加密的代码进行PATCH
find eip,#8901#
cmp $RESULT,0
je err
mov [$RESULT],#9090#
msg "绕开输入表加密!"
bc VirtualProtect
jmp cool
ret

oep:
cmt eip,"OEP!!!dump and fix IAT"
an eip
ret

err:
msg "error"
ret
2006-6-21 23:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
虽然看不太懂,还是得感谢一下
2006-6-23 10:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
虽然看不太懂,学习!!!
2006-8-7 03:22
0
雪    币: 246
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
最初由 skylly 发布
我最喜欢写脚本了:
//molebox 2.x ,by skylly
msg "忽略所有异常"
sto
sto
........


这个我喜欢,一下就搞定了,还不用修复,谢谢兄弟了
2006-9-5 15:54
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
只能解出主文件,其它的文件不能解出来???用处不是太大吧
2006-9-5 19:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
试到二,重新载入就完全找不到标志了
请楼主按新版本改写一下吧
2006-10-15 23:23
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
22
最初由 Kisco 发布
只能解出主文件,其它的文件不能解出来???用处不是太大吧

MoleBox捆绑文件的解包方法――MoleBox Pro V2.3.3主程序脱壳+破解
http://www.unpack.cn/viewthread.php?tid=1403
2006-10-16 15:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
00736FB2    8901               mov dword ptr ds:[ecx],eax        ;就是这里对IAT加密处理了,nop掉
想请教一下,怎么判断出这个地方对IAT加密了?在数据窗口观察的地址多少?
还有为什么我照着做了,PEID还是读不出来是甚么壳,但是可以运行?
2006-10-19 19:39
0
游客
登录 | 注册 方可回帖
返回
//