首页
社区
课程
招聘
[原创]初次破解成功,庆祝一下(奇怪的ARM??)
发表于: 2006-6-25 20:29 6592

[原创]初次破解成功,庆祝一下(奇怪的ARM??)

2006-6-25 20:29
6592
小弟初学破解,初来宝地,初发帖,请各位大侠多多指点,谢谢!

前些天看到有3D的桌面视觉效果软件的贴图,觉得也想赶一下潮流,于是网上搜了一下“3D Desktop”,搜出了一堆东东。个人觉得3D桌面效果好的是3DNA(www.3dna.net),非常花哨但是不实用。SphereXP(www.hamar.sk/sphere)既不花哨也不实用。Spaces(http://www.download.com/Spaces-3D-Desktop-for-Windows/3000-2340_4-10225389.html)朴素但是很顺手,效果也不错。
后来发现SphereXP和Spaces都没有注册码放出来(太烂了没人稀罕破解?),特别是Spaces,只能用14天,而且不能改时间,所以就萌发了Crack的念头。。。。,破解成功之余,把过程贴出来和大家分享,好了,不?嗦了,HERE WE GO:

SphereXP使用.Net Framework 2.0 开发,还处于测试阶段(测试还敢要注册码!),如果用IDA Pro反向一下,可以发现其实使用的是MD5 Hash,very easy,但是我直接改了程序的MSIL Code,直接跳出检测函数,所以可以用任意注册码。(奇怪的是为什么.Net Framework 2.0没有代码校验机制??)推荐工具:IDA Pro 4.6,M$自带的反向工具ildasm.exe。这里就不赘述了:)

说说Spaces(图0),小弟没有破过任何“壳”,刚开始试图使用SoftICE跟踪(在XPSp2下可以,2000下提示发现Debuger),后来发现算法及其复杂,看起来是用用户名和SN还有一个KEY一起做校验,走了个大弯路,汗。。


后来发现了一些特征字符串,比如“FIXCLOCK”、“ARMACCESS”,上网一查,原来是一个叫Armadillo的保护软件作祟,于是才想起脱壳,拜读了诸位大侠的脱文,知道了N多术语和破法,受益良多。自己动手用PEID查了一下发现是Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks,信心大增!!于是用OD跟踪试图查找“Magic JMP”,发现根本没有,打击打击!试着用PELord Dump并且用ImportREC修正IAT,结果根本跑不起来,发现程序老是引用003CXXXX的地址。于是在OD中检查这一段地址是何方神圣,结果Dump出一个隐藏的DLL来(事实上不是真正的DLL,因为所有的地址都是绝对地址,所以必然要被Load到003C0000处!)如图1:


研究该文件发现导出了一系列函数(如图2),初步判断是用来校验SN的一些函数,以后的1天内都花在用IDA解读该DLL上了,后来证明又走了弯路。
B]

第三天,忽然想到既然使用该DLL,为什么不检查一下IAT,结果出乎意料,当程序停止在OEP的时候,IAT大部分都没有加密(似乎和ARM脱文里描述的不一样),而是把一些Entry给替换了,如图3。


所以就自然地想到如果把它们替换回来,直接用PELord Dump并且用ImportREC修正IAT也许可行。难点在于究竟被替换的是何函数?想到既然是替换,那么替换后的函数必然和正统函数有相同的调用接口和功能,而且我们已经知道被替换的是在哪一个系统DLL中,并且我们有了Dump出来的Dll包含这些替换函数的代码。在IDA的强大静态代码解释和OD的强大动态跟踪能力下,这些Entry被一一破解,有:
kernel32.LoadLibraryA
kernel32.GetProcAddress
kernel32.FreeLibrary
user32.MessageBoxA
user32.DialogBoxParamA
等等等
停在OEP,手动改回来IAT之后,用PELord Dump并且用ImportREC修正IAT,OK!!!唯一不爽的是用户名始终是“Default User”。改进办法很简单,我发现这个字符串读取自环境变量“ALTUSERNAME”,所以可以在00401000的无用代码处写一段Code改写这个环境变量,然后Call我们的OEP就可以了,哈哈。
自此,终于赶在14天期限之前用上了“正版”的Spaces

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
继续说过程
2006-6-25 20:52
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
没下文了?
2006-6-25 20:53
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
学完编程再学破解就是爽!!!
2006-6-25 21:59
0
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
好牛!!学习!!
2006-6-26 00:02
0
雪    币: 253
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
6
向牛人学习
2006-6-26 01:05
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
直接对DLL脱壳
输入表可以在脱壳过程中避开加密
2006-6-26 09:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习!学习!
2006-6-26 09:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
呵呵,谢谢Fly老大指点!正在试!
2006-6-26 10:03
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
把你这个文章方法脱壳出来的文件放出来研究一下。
2006-6-26 13:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
应鸡蛋壳大侠的要求,文件在此。最好下载原来的安装包,安装后再覆盖
http://www.clumsybird.3322.org/html/downloads/003C0000.dll
http://www.clumsybird.3322.org/html/downloads/Spaces.exe
另外,这个方法不具有普适性,Magic JMP很有可能不是没有而是我没有找到,请大家研究研究先
2006-6-26 20:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
真厉害,学习中……
2006-6-27 10:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
呵呵,我不厉害,想出普适性方法的还有做调试器的才是大牛,能把trick上升为theory才是最难的。。。
另外,我没有破过其他的东西,所以能成功部分是运气(捡了便宜还卖乖,臭鞋无数飞过来。。。)。不知道其他的ARM有没有采用类似方法的,如果有,那么有没有可能用OD脚本自动化地实现IAT的替换?我替换过程中是半猜测半观察搞定的。
2006-6-27 23:58
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
正在学编程,准备学破解练练手。
2006-6-28 00:03
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习!学习!再学习!!
2006-6-28 13:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
强人```偶太菜 看的晕忽忽的
2006-6-28 14:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我也碰到过这样的一个文件,看了你的文章,很有启发.
2006-7-1 02:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
继续努力学习ing~~~
2006-7-1 11:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
继续努力学习ing~~~
2006-7-1 11:11
0
游客
登录 | 注册 方可回帖
返回
//