菜鸟也注册猛壳杀软
--------绕过猛壳Asprotect注册著名木马查杀软件
作者:冷家锋 刘婷婷
郑重申明:
1.本文已于2006年11期《黑客防线》发表,如引用请注明出处,
2.本文只是一个软爱好者对共享软件的测试,因本文引起的一切法律纠纷与本文作者无关!
3.请支持共享软件
4.我不知道如何在csdn贴图
操作系统:Windows XP_SP2(中文版)
主要使用小软:
1)PeiD(V0.8.0)(查壳)
2)W32DASM(8.93黄金中文版)(反汇编)
3)Loader(Asprotect入口点查看工具)
4)OllyDBG(V1.09)(脱壳、调试用,下文简称OD)
5)Procdump(抓取进程镜像)
6)Import Reconstructor 1.6(IAT恢复工具)
7)WinHex(10.7.5.0)(16进制编辑工具,搜寻注册码用:-) )
目标:破解或注册加了Asprotect 1.2x[New Strain]壳的某著名木马查杀软件(以下简称杀
软)V5.50_0529。(为了支持共享软件,杀软的具体名称就不透露了,用你喜爱的搜索引擎
查自己查或者,呵呵,问黑防的老编/小编吧。)
平时因为要玩破解,玩网络安全,只装了个防火墙,没有装杀毒软件。可是这两天
电脑慢的要命,怀疑中了病毒。在手工杀毒无效的情况下,无奈何,不能免俗,只得求助杀
毒软件:-(。听说杀软近来比较看好,赶紧上网载了一个下来(该软件包内有注册码和去广
告补丁)。乖乖,真的有效!杀软不负所望,查杀了好几个注入文件管理器(Explorer.exe
)的DLL型木马。
接下来几天一发觉电脑有异常,就请出杀软。可是每次打开杀软总是显示别人搞定的注册码
,总是感觉不爽,小菜pach我也想用自己的大名来注册一下大名鼎鼎的杀软(难道这就是破
解的理由??小菜我破解需要理由吗?不需要吗?需要吗?……)不骗稿费了,转入正题。
一、查壳
打开我最喜欢的查壳小软Language2000(版本4.5.1.144),我倒!竟然没有反应。请出
PEiD,yahoooo,Got it!原来是猛壳Asprotect 1.2x[New Strain](如图(一))。这个壳
是加密壳,印象中1.2以前的版本只要用Caspr即可脱壳。赶紧上www.pediy.com载下Caspr
V1.10。但是显然我高兴的太早了,caspro竟然提示“Maybe this file was no packed by
aspr!”。各大论坛逛了一下,都说Asprotect1.2x为加密壳,且有CRC校验,工具是很难脱
掉的,需手动脱壳。
图(一)
二、脱壳,抓取杀软内存镜像
用loader查得杀软入口点为0058A2A0,打开OD,按照默认设定,载入杀软执行文件,提示该
软件“代码部分也许是经过了压缩、加密,或者包含很大数目的嵌入式数据。您确定要继续
进行分析吗?”点“是”,继续加载杀软,稍事休息几秒,OD分析完毕。按Shift + F9执行
杀软。32次左右,再Shift + F7 来到内核空间。暂停一下,新手朋友问了,为什么要Shift
+ F9 32次,再Shift + F7。用Shift + F9而不是直接F9,是因为Asprotect大量采用了SEH
(结构化异常处理)手段来保护加壳程序,所以要用Shift + F9执行异常。32嘛,因为按33
次杀软就直接运行了,呵呵。
好,书接上文,来到内核空间,Alt + M打开“内存”信息窗口,在section列找到.luo行,
右击该行,在弹出菜单选择“设置内存访问断点”。按F9,会提示由于内存访问中断,再次
Alt + M打开“内存”信息窗口,去掉内存访问断点。
这时要用到OD一个好用的命令“ 追踪(TC)”。Alt + F1打开命令行插件,键入“tc eip
< 90000”(不包括引号),意思是追踪杀软执行,直到EIP < 900000。按回车,追踪完成
后OD会停在地址0058A2A0(还有印象吗?就是杀软的入口点了),这时会看到该地址对应是
一些数据,而不是汇编代码,不管它,赶快拿出Procdump,在Task列找到杀软对应进程,然
后右击,dump(full),键入文件名(这里填dumpsr.exe)保存。
三、修正杀软
现在,关闭OD,因为不需要它了(过河拆桥啊),重新运行杀软。打开ImportREC,加载杀
软进程,点击“IAT Autosearch”,然后根据提示,点击“Get Imports”,再点击“Show
Invalid”。OK,Imported Functions Found栏提示找到三个函数,且为Valid(有效),点
击“Fix Dump”,选择我们Dump出的文件dumpsr,ImportREC将会以在文件名后加"_"的方式
保存抓取的文件。
下面来修正dumpsr_的入口点,再请出我们的Prodump,选择PE Editor,加载dumpsr_.exe,
Entry Point填上0018A2A0(为什么是0018A2A0,而不是0058A2A0?因为PE Editor显示基址
(Image Base)为00400000, 58A2A0 – 400000 = 18A2A0)。按“OK”,关掉Procdump。
退出杀软,并将其改名为杀软.bak,把dumpsr_.exe拷贝一份到杀软目录,更名为杀软。双
击,啪,弹出“文件损坏,请进行病毒检测”对话框。我心痛啊,难道我几天的辛苦就得到
这么个结果,看来Asprotect的CRC校验真不是白给的。痛定思痛,再次打开OD,加载修改后
的杀软,正常停在入口0058A2A0,我F7一步一步跟踪,发现到了图(二)的地方就出错了。
仔细一看,原来是访问的地址超出范围。将其NOP掉,再往下跟,发现还有I/O指令,而且很
多超出地址范围的指令。看来程序自身和壳的结合真是很到位啊,要很好的将其破解是超出
我能力范围了。
图(二)
四、僵局
一时陷入了僵局,放弃吗?容我思考几天再说吧……(思考??!!众读者和黑防小编可要
发飙 了,我们花了这么长时间听你唠叨,可不是听你放弃地,注册码!!!!交出来!!
!!)。对啊,还没搞定呢。带着问题,小菜我是吃不好,睡不香。忽于某年某月某日饭时
想到孙子兵法有云:出其不意,攻其不备。那么杀软是不是也有“不备”的弱点呢?
程序是加了壳,而且是猛壳,但是你总是要释放(解压或解密)到内存中的吧?嘿嘿,那么
杀软的注册码验证是不是明文比较呢?明文比较注册码,您想到什么了?我是想到了WinHex
(一款小巧的16进制编辑器,由于其出色的内存编辑功能而为CRACKER所喜爱)。
五、想注册时就注册,绕过猛壳,搞定杀软注册
带着这个疑问和一丝侥幸,小菜又和WinHex并肩苦战,终于把杀软的注册撂倒。
一二三,大家一起来。打开杀软,点“注册”菜单,再单击“注册”子菜单,显示注册对话
框。单击“取消注册”按钮,杀软提示重启后取消生效,重新打开杀软,果然杀软标题显示
为未注册版本。依上述次序打开注册对话框,“用户名称”框输入?随便您了,但最好是中
文名,因为经过小菜试验,该杀软似乎比较钟爱中文名,呵呵。好吧,输入您的大名,注册
码输入您的生日。这样注册成功的话,比较有成功感嘛。点“注册”按钮,咣咭,弹出一个
对话框,提示“注册失败”。别急,这是当然地,否则该杀软的作者就不会收什么注册费了
,也就没有小菜这篇文章了:-)。好,暂停,别点“确定”按钮,如图(三)。什么?您点
了?您是快的!那也没什么,再重新点“注册”就可以了。
图(三)
暂停在“注册失败”对话框,请出我们今天的主角WinHex。打开杀软时,有可能您的WinHex
一遍会打不开,那就多打开几次,好,终于打开WinHex了。点击“工具”菜单--à内存(RAM
)编辑器(或者直接Alt + F9打开,有可能您的WinHex菜单显示和我的稍有不同,没关系,
相信您会找到我说的。)这时会弹出一个进程列表,单击杀软对应的进程名前面的”+”,
再单击“整个内存”,按“确定”,应该会来到图(四)界面。按Ctrl + F打开WinHex搜索
对话框,在搜索框里填上您在注册时填的注册码,比如小菜我填的是“19273344515”(为
叙述方便,以注册名“老天啦”,假注册码“19273344515”为例),在“仅完整的字词”
前打上勾,搜索范围选“向下”。按“确定”进行搜索,第一次出现的“19273344515”附
近似乎没什么值得注意的。和我一样的新手朋友可能会问了,你怎么知道没什么值得注意的
?因为其附近没有可疑字符串,也没有我填的注册名称,只要多找几个类似的注册软件多试
试,相信你会找到感觉的。闲话少叙,鼠标在“19273344515”隔几行点一下,不然你再
Ctrl + F打开搜索对话框搜索时,即使搜索范围选“向下”WinHex也不会向下搜索,光标仍
然会停在刚刚找到的“19273344515”上。(这是我试了几次才发现的,独家之秘啊。为了
和我一样的还在Crack方面摸索的新手朋友的发展,说了!)
图(四)
耐心点(耐心可是Cracker必备的基本要素)继续向下搜索,直到,直到看见我们填的用户
名称、注册码和一串比较可疑的字符串在一起,如图(五)。OK,赶快拿出笔记本,记下那
串可疑的字符串,不用怀疑了,它就是注册码。关闭WinHex,目前不需要它了,回到杀软,
您的注册对话框还在吧?点确定,在注册码位置填上我们刚找到的注册码:246446754(您
找到的可能会有不同),注册成功(如图注册)!!询问是否要连上网验证,还是免了吧:
-)!!!!
GOT IT!现在,你拥有自己的大名注册的杀软了。
图(五)
总结:
官方说该杀软可以查杀多种国际木马,多种密码偷窃木马,以及传奇密码偷窃木马,qq类寄
生木马,冰河类文件关联 木马,密码解霸,奇迹射手等游戏密码邮寄木马,并且内置木马
防火墙。Asprotect1.2x以后提供了SDK,以使加壳者可以让程序和壳完美的结合在一起。杀
软就采用了这个猛壳,在防破解方面可谓狠下工夫,但是由于其注册码比较只是明文比较,
并且没有经过变形,而是简单的放在一起,导致这次注册的成功。可见,软件的任何一个小
的漏洞就可能导致软件的防破解失败!
另外,用Procdump抓取的内存镜像虽然不能运行,但是用W32DASM反汇编后,串式参考可以
查到很多有用信息,比如1927344515,Software/Borland/Delphi/Locales等。提到
1927344515,因为杀软有个注册码就是它,对应的用户名称,自己查吧:-)。而Borland、
Delphi通过字样,可以让我们猜测杀软的开发语言……
杀软脱壳后运行会去访问图(二)所示的不存在的地址并且有MOV EAX,EAX之类奇怪的指令
,看来我脱壳步骤仍有问题,还望高手指教!看来学习是无止尽的。
声明:
本文目的纯属研究和学习别人的编程思路及防破解方法,利用本文的方法注册杀软引起的法
律纠纷概与本人无关。如果喜欢该杀软,请注册它,支持共享软件。