经过半天的努力,我的破文终于写完了,请大牛们指点!!!!!!
成功助理5.1的成功爆破
大家好!今天是小弟第一次写破文,有不足之处请大家原谅!!
学习软件的加密与解密这么久了,一直有个疑问,自己真的可以破解软件的了吗?今天反正闲着没事做就在豆豆软件站下了一个软件---成功助理,等我破完之后,准备写破文的时候,我才在百度上搜到原来这款软件已经有破解版,也不知道是谁破的,应该也是看雪的高人吧,好像还有达人写了个注册机!!我小菜一个,没有那么达,算法研究还不行,希望以后也能给大家写个注册机!呵呵!!
好了,多的话不说了,现在开始我们的破解之旅吧!
第一步:先在豆豆软件站下载成功助理5.1吧,如果不知道网址的同志,可以到下面这个网址上下!http://down.ddvip.com/view/119684003818465.html,软件安装完成之后,首先运行软件,只有先充分了解软件的各种功能,我们才能更好的破解!软件运行如下图所示:
好了上面显示:30天试用版,已使用0天,然后我们点帮助下面有个注册选项随便输入一个注册名和注册码上面显示注册失败,请记住它的提示信息!!!!
第二步:查壳!!!!这里我还是使用我们的老朋友PEID,查得是UPX壳
第三步:脱壳!!!!即然我们已经知道是UPX壳了,那么我们首先就是要脱壳,其实也可以不脱壳破解,不过这里我就不介绍了,有兴趣的大家可以试试!!
脱壳分为两种:一种自动脱壳,所谓自动脱壳就是用牛人们写的软件脱,不过我劝大家最好不要这样,因为那样你不会学到什么东西!!第二种是手动脱壳,其实这个脱壳的关键无非就是一点找OEP,只要找到了OEP,其它的就好办多了!这款软件是用UPX,手动脱壳应该不难,如果是用AcProtect或穿山甲,那就要有一定技术了!这里我用大家最常用的方法ESP定律,用Olldbg载入即得
这时单步走,运行到mov esi 00E35000这一行处,此时ESP变为0012FFA4,这时我们右键选择---在数据窗口中跟随,来到数据窗口,在第一个字节28上下硬件访问断点(Word),此时按F9运行程序,程序会中断在如图所示的位置
这里有个小技巧,很显然Jmp 00889990这句可疑,但是在它前面有个循环,因为我们不知道要循环多少次才能跳,所以我们单步运行到jnz short 010ECBAB这句,然后在寄存器面板中将Z改为1这样就可以直接跳过这句来到下一句,然后我们在单步,程序马上就会来到OEP!!
当程序来到00889990这个虚拟地址的时候,代码如下,这很显然就是我们苦苦寻找的OEP,在这里大家一定要对几种程序的入口代码比较熟悉!!
来了到程序的OEP,下面的事就不要我多说了吧,大家可以用LordPE脱壳,也可以用Olldbg自带的脱壳插件进行脱壳!!!
第四步:修复脱壳后的程序!!不过好像这款软件脱壳之后不用修复,但我还是做个修复这样好一点!!这里我用Import REC进行修复
在OEP中填入我们刚才跟踪得到的数字,很显然上面没有无效函数,所以我们直接修复即可!!!修复后的程序为Unpack_.exe
第五步:破解,即然程序已被我们脱壳,那剩下的就是破解该软件了,好了,我在再用PEID查看看,看该软件是用什么语言写的
又是Delphi写的,不管他了,先用“爸爸”软件(DeDe)查看看在说吧!
先在DeDe里面找到我们的注册窗口在说吧,大家请看里面有个Tfrmreg,如果英语学的好的话很显然这个就是注册窗口,我英语太差了,不过Register这个单词还认得吧,呵呵!
然后我们选择过程,看看里面是些什么东西!!我们看到了一个单元名为reghint,后面所对应的模块名正是我们的注册窗口,点击,然后在事件里面看到有很多BitBtnXClick,究竟是哪个Btn呢?这里我向大家介绍另外一款软件PE-Explorer,这款软件真的很好,很强大!
在RC DATA里面有个TFRMREG这个窗体,我们打开前面的+号,看到里面有两个按钮,两个文本框,这正是我们要找的注册窗口大家请看Buttion1:TButton对应的是BitBtn6Click,很显然,刚才那个事件里面应该是BitBtn6Click,于是我们来到DeDe选择BitBtn6Click双击
对不起,刚才我还漏讲了一下,就是我们看到了Tfrmreg就一定是我们的注册窗口吗?我们怎么知道的,其实很简单只要把这个窗口的资源和我们的注册窗口的资源一对比就很清楚了,我们的注册窗口是两个按钮两个文本框,还有一幅图片,这和我们用PEExplorer看到的一模一样,所以我们认定是,下面附上我们的注册窗口图!!
我们在DeDe中的BitBtn6Click的代码事件如下
记下这个地址00842A24,当我们单击这个按钮的时候会调用这段代码!!好了,接下来的任务就是跟踪分析,这个能力对于软件的破解很重要,平时大家就可以自己写些小程序,然后逆向培养这种能力!!
我们重新用Olldbg载入脱壳后的程序,按Ctrl+G然后输入00842A24,在这里下断点!
然后按F9运行,在软件中选择注册,在注册窗口中随便输入注册名和注册码,点击完成注册,程序在Olldbg中会暂停在00842A24这行,这时就可以进行我们的跟踪测试了,在这里我就不进行了,我把我跟踪的结果给大家!
00842A27 B9 08000000 mov ecx, 8
00842A2C 6A 00 push 0
00842A2E 6A 00 push 0
00842A30 49 dec ecx
00842A31 ^ 75 F9 jnz short 00842A2C
这里要循环八次才能在单步跟踪!!
00842A55 /74 61 je short 00842AB8
这个跳转是可跳的,不用管它,按F8就行了,这时可以跳过一个注册失败的提示信息!!
00842B1A /0F85 74040000 jnz 00842F94
00842B20 8D4D DC lea ecx, dword ptr [ebp-24]
00842B23 8B55 F4 mov edx, dword ptr [ebp-C]
00842B26 8B45 F8 mov eax, dword ptr [ebp-8]
00842B29 E8 82A6D3FF call 0057D1B0
这是一个大的跳转,不能跳,不然就直接跳到了注册失败的对话框,所以我们要将它改为JZ,下面的那个CALL就是注册算法,大家有兴趣可以跟进去,分析一下!接着单步走!
00842C62 /0F84 BB020000 je 00842F23
00842C68 |A1 F8A28900 mov eax, dword ptr [89A2F8]
00842C6D |8B00 mov eax, dword ptr [eax]
00842C6F |8B80 40030000 mov eax, dword ptr [eax+340]
00842C75 |BA 90308400 mov edx, 00843090 ; ASCII "select * from dbole"
00842C7A |E8 4590D3FF call 0057BCC4
这也是个关键跳,如果让它跳转就直接显示注册失败的对话框,所以我们将寄存器面板中的Z改为0就可以了
其它的跳转不用管到最后我们就得出了注册成功的对话框,很明显我们应该改两处就行了,其中两次跳转的后面的那个CALL就是注册算法!!!!
我们将上面两处跳转按我上面说的方法改变,然后另存为程序Cracker.exe就可以了!我们试运行看看行不行!!!
我们运行Cracker.exe文件,然后选择帮助注册软件,在弹出的对话框中随便输入,我这里输入jack和1234567890,然后我们点完成注册,看看!!如图所示
然后我们点帮助中的关于成功助理,会显示
这样我们破解之旅就要以完成了,希望看雪的大牛们能给小弟提示宝贵的建议!!至于写注册机的事,也许要等小弟技术在进一步了在奉献给大家了,在此对成功助理软件公司开发商----郑州天行健商务咨询有限公司表示深深的歉意!!!呵呵,希望大家能从我的这篇文章中学到自己想要的东东!!!!!!!(最后说明一点,尊重版本,转载请注明原始出处!谢谢!)
[课程]Android-CTF解题方法汇总!