首页
社区
课程
招聘
春天电子书1.2破解(老版本ARM)!!!
发表于: 2005-9-25 11:23 9950

春天电子书1.2破解(老版本ARM)!!!

2005-9-25 11:23
9950

【破解作者】 bnbn
【作者邮箱】 165423750@qq.com
【使用工具】 FLYOD+PEID+ImportREC+LORDPE
【破解平台】 Win9x/NT/2000/XP
【软件名称】 春天电子书(EbookMaker)1.2
【下载地址】 http://www.thespringsoft.com
【软件简介】 做电子书的软件,界面很不错
【加壳方式】 Armadillo 1.xx - 2.xx
【破解声明】 本文原创,还请指点!
--------------------------------------------------------------------------------
【破解内容】

本文已经投稿,请勿转贴。
切入正题,先运行软件,看出软件用次数限制+功能限制+注册码保护。
打开任务管理器,发现是单进程,这下可以省了不少功夫了。

初步脱壳

用FLY修改的OD载入软件主程序eBookMaker.exe,设置Ollydbg忽略所有的异常选项。载入完成以后OD停在图二所示的地方。然后下断点BP GetModuleHandleA+5,然后shift+f9运行,程序被中断在如图3所示地方,然后按F9,同时要密切留意堆栈的变化:
第一次:
0012FF34    /0012FFC0
0012FF38   |005AA181   返回到 eBookMak.<ModuleEntryPoint>+0C8 来自 kernel32.GetModuleHandleA
(为了节约版面,其他几次省略,请大家自己观察)
第六次:
0012DED4    /0012DF10
0012DED8    |003C471F   返回到 003C471F 来自 kernel32.GetModuleHandleA
0012DEDC    |003DD824   ASCII "kernel32.dll"      //★★★★★

这里就是返回的时机了,取消断点,我们按ALT+F9返回
003C471F     8906                   mov dword ptr ds:[esi],eax      ; //返回到这里
(省略一部分代码…………)
003C4732     74 19                  je short 003C474D                 //
我们根据大虾们的教程,003C4732的JE应该就是magic jmp了,可是这里就算修改了也是没有得到正确的IAT,所以我们就不用改了,直接按照FLY的内存断点大法直达OEP。在OD中按ALT+M,打开内存镜像窗口,然后找到图4的地方,点右键,设置内存访问断点,然后F9一下,呵呵,到了OEP了005778E0。然后用LORDPE修正一下影像大小,就可以DUMP了。

初步修复IAT
现在先运行原程序eBookMaker.exe,然后打开ImportREC V1.6,在列表中选中这个进程,输入我们得到的OEP=005778E0-00400000=001778e0,点击"自动搜索IAT",发现一些无效函数,然后点"显示无效函数",然后用右键剪掉这些无效函数,最后修复抓取文件。运行修复以后的文件,不能运行。我们开始进一步的修复。

深入修复!
下面用OD装入DUMP下来的文件:dumped.exe,看下面代码:
005778E0 d>  55                     push ebp         //OD装入以后停留在这里
005778E1     8BEC                   mov ebp,esp
005778E3     83C4 F0                add esp,-10
005778E6     B8 20725700            mov eax,dumped_.00577220
005778EB     E8 B0F5E8FF            call dumped_.00406EA0   //★ 这里用F7跟进
~~~~~~~~~~~
00406EA0     53                 push ebx    //跟进005778EB的CALL以后来到这里
00406EA1     8BD8              mov ebx,eax
00406EA3     33C0               xor eax,eax
00406EA5     A3 C4805700        mov dword ptr ds:[5780C4],eax
00406EAA     6A 00              push 0
00406EAC     E8 2BFFFFFF        call <jmp.&kernel32.GetModuleHand>   //f7进入得到函数地址
现在我们留意一下如图5所示的地方,记下数据:5802A4
下面再次用OD装入原程序eBookMaker.exe,下硬件断点:hr 5802A4,F9运行,中断在003D4553这个地方,取消断点:HD 5802A4,然后就要用F8+F7+F4一步一步的走,反正就是不能往回走,走啊走~直到我们发现下面这些语句:
003D2219     8985 9CFEFFFF         mov dword ptr ss:[ebp-164],eax   //放慢脚步
003D221F     FFB5 64FCFFFF         push dword ptr ss:[ebp-39C]
003D2225     FFB5 88FCFFFF         push dword ptr ss:[ebp-378]
003D222B     E8 3629FFFF           call 003C4B66     
//★★ 注意,双击这一行,把代码修改为call kernel32.GetProcAddress,然后用F8走过这一行
003D2230     8985 6CFCFFFF         mov dword ptr ss:[ebp-394],eax

哈哈哈哈,到了这里我们就要成功了,F9运行,出现了如图六的错误,不管他,点确定,
这个时候进程中止了,呵呵,不过这个对我们没有什么影响,现在我们再次按照上文的方法,用ImportREC修复抓取的文件,哈哈哈,成功运行,而且我们已经是注册用户了!如图7。
这次我们的破解之旅就圆满结束了,我们下次再见!

--------------------------------------------------------------------------------
【破解总结】

呵呵,没什么难度,壳脱了软件也不用注册了!感谢夜凉如水的指点
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!







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

收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
呵呵 我来支持你下吧  我好象没帮助过你什么啊!!!这个是你自己的成果!!!!
2005-9-25 11:44
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
最初由 lidazixun 发布
★★ 注意,双击这一行,把代码修改为call kernel32.GetProcAddress]

楼主:怎么知道要把这一行代码修改为call kernel32.GetProcAddress?
2005-9-25 14:11
0
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
直接在内存401000段f2, f9 到oep dump之简单!!
2005-9-25 14:39
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
鼓励一下
这是老版的Armadillo,不要说常规非常规

修改GetProcAddress是为了避开里面的输入表加密
2005-9-25 14:49
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
最初由 fly 发布


修改GetProcAddress是为了避开里面的输入表加密

以前只是听说过修改magic jmp就可避开输入表加密的,还没看过避开输入表加密还要修改GetProcAddress的
2005-9-25 21:42
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
刚才我也分析了一下,上面的文章的脱法,不知道是不是
属于完美的脱法。谁知道这个armadillo确切的的版本。

我怎么感觉这个有点象是伪装的Armadillo的壳。
它的许多做法和我碰过的Armadillo都不一样,
会不会是其它的壳伪装的?
不知道谁能够看一下?

最初由 fly 发布
鼓励一下
这是老版的Armadillo,不要说常规非常规

修改GetProcAddress是为了避开里面的输入表加密
2005-9-26 00:28
0
雪    币: 225
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 limee 发布
刚才我也分析了一下,上面的文章的脱法,不知道是不是
属于完美的脱法。谁知道这个armadillo确切的的版本。

我怎么感觉这个有点象是伪装的Armadillo的壳。
它的许多做法和我碰过的Armadillo都不一样,
........

------------------------------------
有同感,你在看看这个XP变脸王的最新版
http://www.holersoft.com/cn/xpstyledown.htm
2005-9-27 11:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
偶刚开始学习这个,谢谢指点
2005-9-27 21:25
0
雪    币: 214
活跃值: (86)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
…………嘻嘻,加精华了耶~~继续努力~~

偶去看看XP变脸王
2005-9-30 22:10
0
雪    币: 319
活跃值: (2439)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
11
这是1.0版本。
2005-10-1 11:19
0
雪    币: 195
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习学习,谢谢楼主。
2005-10-2 18:25
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
“然后下断点BP GetModuleHandleA+5,然后shift+f9运行”
请问BP GetModuleHandleA+5我怎么找不到这段代码
2005-10-5 07:27
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
照着上面做成功的朋友,能否留个联系方式,相互交流一下
2005-10-5 07:40
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
呵呵,其实楼主的返回时机没有找好才会出现要对GetProcAddress处理的情况,如果返回时机找对了,脱壳修复后就能成功运行了不再需要对GetProcAddress处理了
2005-10-5 17:09
0
雪    币: 214
活跃值: (86)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
16
最初由 古月胡 发布
呵呵,其实楼主的返回时机没有找好才会出现要对GetProcAddress处理的情况,如果返回时机找对了,脱壳修复后就能成功运行了不再需要对GetProcAddress处理了


呵呵,还请指点~@!!
2005-10-7 10:06
0
游客
登录 | 注册 方可回帖
返回
//