首页
社区
课程
招聘
[原创]FLASH动画制作软件Jugglor脱壳教程
发表于: 2006-1-14 21:44 6016

[原创]FLASH动画制作软件Jugglor脱壳教程

qduwg 活跃值
35
2006-1-14 21:44
6016
题目:FLASH动画制作软件Jugglor v1.1b脱壳并找出注册码教程
软件来源:电脑爱好者2002光盘
软件介绍:这款来自美国人的软件填补FLASH v3.0-5.0所实现不了的效果与功能,向导模式制作FLASH动画,是闪客必备工具。
软件版权:共享软件,注册费$99。
破解工具:Trw,PEiD,Prodump

引子:今天上午刚刚写完了一篇关于电影编辑软件的教程,下午接着乘胜追击,又破解了一个Flash动画制作软件。马上写出教程来,希望对菜鸟有些启发吧。首先安装了这款软件,试用了几下功能,安装完毕提示注册,呆会就注册它。先拿PEID查看一下,结果是用Aspack2.00.1加壳了,但是我试图用Casper,Prodump和AspackDie等工具脱壳,Casper 提示不成功,因为由不明工具压缩的,用AspackDIE脱壳后的文件出现非法操作,经常这样的。用Prodump脱壳时卡壳,无法进行下去。只好自己尝试脱壳了。启动Trw,用它的加载器加载这个程序,然后用F8慢慢跟踪,代码如下,解释附后。
0167:0058A001  PUSHA        //这是加壳后的程序的标志,从这里开始。
0167:0058A002  CALL     0058A542       //一般按F8跟入。
0167:0058A007  JMP      SHORT 0058A051
*略去垃圾代码
0167:0058A051  MOV      EBX,00442994
0167:0058A056  ADD      EBX,EBP
0167:0058A058  SUB      EBX,[EBP+004429C1]
0167:0058A05E  CMP      DWORD [EBP+004437C0],BYTE +00
0167:0058A065  MOV      [EBP+004437C0],EBX
0167:0058A06B  JNZ      NEAR 0058A4A6
0167:0058A071  LEA      EAX,[EBP+004437C8]
0167:0058A077  PUSH     EAX
0167:0058A078  CALL     NEAR [EBP+004438D4]
0167:0058A07E  MOV      [EBP+004437C4],EAX
0167:0058A084  MOV      EDI,EAX
0167:0058A086  LEA      EBX,[EBP+004437D5]
0167:0058A08C  PUSH     EBX
0167:0058A08D  PUSH     EAX
0167:0058A08E  CALL     NEAR [EBP+004438D0]
0167:0058A094  MOV      [EBP+004429CD],EAX
0167:0058A09A  LEA      EBX,[EBP+004437E2]
0167:0058A0A0  PUSH     EBX
0167:0058A0A1  PUSH     EDI
0167:0058A0A2  CALL     NEAR [EBP+004438D0]
0167:0058A0A8  MOV      [EBP+004429D1],EAX
0167:0058A0AE  LEA      EAX,[EBP+00442B5E]
0167:0058A0B4  PUSH     EAX
0167:0058A0B5  RET     
*略去垃圾代码
0167:0058A1CA  MOV      EBX,[EBP+00442A52]
0167:0058A1D0  OR       EBX,EBX
0167:0058A1D2  JZ       0058A1DE
*略去若干行代码
0167:0058A24B  JNZ      0058A299
0167:0058A24D  INC      BYTE [EBP+004429C0]
0167:0058A253  MOV      EDI,[ESI]
0167:0058A255  ADD      EDI,[EBP+004437C0]
0167:0058A25B  PUSH     DWORD [EDI]
0167:0058A25D  MOV      BYTE [EDI],C3
0167:0058A260  CALL     EDI   //这里可以看到EDI内的地址是401000h,但是千万不要被迷惑,按F8继续往下走才行。真正地址不是从401000开始的。
0167:0058A262  POP      DWORD [EDI]
0167:0058A264  PUSH     EAX
0167:0058A265  PUSH     ECX
0167:0058A266  PUSH     ESI
0167:0058A267  PUSH     EBX
0167:0058A268  MOV      ECX,EAX
0167:0058A26A  SUB      ECX,BYTE +06
0167:0058A26D  MOV      ESI,[EBP+004429C5]
0167:0058A273  XOR      EBX,EBX
0167:0058A275  OR       ECX,ECX
0167:0058A277  JZ       0058A295
0167:0058A279  JS       0058A295
0167:0058A27B  LODSB   
0167:0058A27C  CMP      AL,E8
0167:0058A27E  JZ       0058A288
0167:0058A280  CMP      AL,E9
0167:0058A282  JZ       0058A288
0167:0058A284  INC      EBX
0167:0058A285  DEC      ECX
0167:0058A286  JMP      SHORT 0058A275   //这种往低地址方向跳转的指令,可以把光标移到其后面一行,按F7键跳过。
0167:0058A288  SUB      [ESI],EBX
0167:0058A28A  ADD      EBX,BYTE +05
0167:0058A28D  ADD      ESI,BYTE +04
0167:0058A290  SUB      ECX,BYTE +05
0167:0058A293  JMP      SHORT 0058A275  //此处同样处理。
0167:0058A295  POP      EBX
*略去若干行
0167:0058A391  MOV      EAX,[ESI+0C]
0167:0058A394  TEST     EAX,EAX
0167:0058A396  JZ       NEAR 0058A4A6
0167:0058A39C  ADD      EAX,EDX
0167:0058A39E  MOV      EBX,EAX
0167:0058A3A0  PUSH     EAX
0167:0058A3A1  CALL     NEAR [EBP+004438D4]
0167:0058A3A7  TEST     EAX,EAX
0167:0058A3A9  JNZ      0058A3B2
0167:0058A3AB  PUSH     EBX
*中间略去若干行
0167:0058A44F  MOV      EBX,[EBP+0044299D]
0167:0058A455  MOV      EDI,[EBX+3C]
0167:0058A458  MOV      EDI,[EBX+EDI+78]
0167:0058A45C  ADD      EBX,[EBX+EDI+1C]
0167:0058A460  MOV      EAX,[EBX+EDX]
0167:0058A463  ADD      EAX,[EBP+0044299D]
0167:0058A469  POP      EDI
0167:0058A46A  JMP      SHORT 0058A482
0167:0058A46C  PUSH     EDI
0167:0058A46D  MOV      EAX,[ESI+0C]
0167:0058A470  ADD      EAX,[EBP+004437C0]
0167:0058A476  PUSH     EAX
0167:0058A477  PUSH     EBX
0167:0058A478  LEA      EAX,[EBP+0044388C]
0167:0058A47E  PUSH     EAX
0167:0058A47F  PUSH     EDI
0167:0058A480  JMP      SHORT 0058A4CD
0167:0058A482  MOV      [EDI],EAX
0167:0058A484  ADD      DWORD [EBP+004429A1],BYTE +04
0167:0058A48B  JMP      0058A3C2
0167:0058A490  MOV      [ESI],EAX
0167:0058A492  MOV      [ESI+0C],EAX
0167:0058A495  MOV      [ESI+10],EAX
0167:0058A498  ADD      ESI,BYTE +14
0167:0058A49B  MOV      EDX,[EBP+004437C0]
0167:0058A4A1  JMP      0058A391            //这条指令向上跳转,用上面方法跳过。
0167:0058A4A6  MOV      EAX,[EBP+00442A62]
0167:0058A4AC  PUSH     EAX
0167:0058A4AD  ADD      EAX,[EBP+004437C0]
0167:0058A4B3  POP      EBX
0167:0058A4B4  OR       EBX,EBX
0167:0058A4B6  MOV      [EBP+00442E5C],EAX
0167:0058A4BC  POPA   
0167:0058A4BD  JNZ      0058A4C7         
0167:0058A4BF  MOV      EAX,01
0167:0058A4C4  RET      0C
0167:0058A4C7  PUSH     DWORD 004EA814      //这里才是关键所在啦!入口点是004EA814
0167:0058A4CC  RET          //这里就是返回到真正的入口点执行程序了。

按F8跳到004EA814后,执行Suspend暂停,然后启动Prodump,右击列表,选择“Refresh list”,然后找到Jugglor程序名,右击,选择“Dump Full”,给文件起名,比如j.exe即可存盘。运行一下脱壳后的程序,非常成功,没有什么问题,可是用PEID一看,依然带壳,根本没有正确脱壳。
我只好用Pedump命令脱壳了。结果是脱壳正确,用PEID一看是DELPHI写的程序。

为了避免这篇文章太长,我删掉许多代码,这些代码需要用F10跟踪即可。另外,在另一篇内我把找注册码的过程描述了一下。请参考另一篇好了。祝你阅读愉快!学习进步!

qduwg

qduwg@163.com

完稿日期:2006年1月14日下午.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
最后一步少了两个操作:
1:用PE工具把DUMP后的程序的OEP改为EA814 (4EA814 - ImageBase,ImageBase一般都是为400000
2:用ImportREC修复一下IAT
这样用PEID再查就正确了

已经不错了,开始走脱壳了
加油
2006-1-14 21:51
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
脱壳脱得我头大~
佩服楼主在埃塞俄比亚得艰苦卓绝精神~
楼主以前曾说是去增援的
不过楼主好像是去增援脱壳了~
2006-1-15 10:25
0
雪    币: 277
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
应该转到脱壳区
2006-1-15 10:42
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
最初由 Pr0Zel 发布
最后一步少了两个操作:
1:用PE工具把DUMP后的程序的OEP改为EA814 (4EA814 - ImageBase,ImageBase一般都是为400000
2:用ImportREC修复一下IAT
这样用PEID再查就正确了

........

直接在ImportRec里输入oep然后fix就可以,不用先修复oep
2006-1-15 11:10
0
雪    币: 269
活跃值: (51)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
学破解现在又搞起脱壳来,厉害呀!
2006-1-15 15:55
0
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
最初由 aki 发布

直接在ImportRec里输入oep然后fix就可以,不用先修复oep

我把IR设成不修复OEP,抱歉,把我的坏习惯带到论坛上面了
2006-1-15 17:45
0
雪    币: 475
活跃值: (1130)
能力值: ( LV9,RANK:1410 )
在线值:
发帖
回帖
粉丝
8
您好!Pr0Zel 大侠,关于脱壳您是大侠了,我以后要多请教您才行。希望不吝赐教啊。感谢

同时感谢楼上各位支持。
qduwg
2006-1-15 22:19
0
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
9
脱壳大侠是这里几位版主,
我只算是只菜得不能再菜的菜鸟
请教应该说不上的,我会的话肯定会说的
知识应该是共享的
2006-1-16 01:04
0
游客
登录 | 注册 方可回帖
返回
//