Rwx2005内存注册机制作全攻略
软件名称:Rwx2005
功能:远程控制(属于黑客工具)
破解工具:PEiD V0.92,UPX-iT161,W32Dasm,OllyDebug 109C,KeyMake v173
前几天我朋友从QQ上传了个软件(就是今天要动手术的Rwx2005)给我,问我会不会破解,我只能说试试看了(本人也是菜鸟1只啊)。
此软件的目录下包含HKrwx.exe文件和cache文件夹,,今天要被摧残的对象就是HKrwx.exe了。
此软件未注册前只能在本机运行1次,退出后再运行就显示要求输入注册码的对话框了。
第一步就是先将要破解的软件复制一份备份,以免破解过程中把软件给搞坏了。
第二步先查看该软件是否加了壳,于是就用PEiD检查了一下,不出所料,果然有陷阱,是UPX1的壳(注意啊!不是UPX,是UPX1啊),小弟我也是第一次见到这样的壳(没办法,刚入行,见的世面也少),估计和UPX没多大区别,于是我就用Unpacker for UPX这个工具去脱壳,真简单,没过多久就出现了脱壳成功的信息,^_^看来今天运气不错。
二话没说先运行一下看看,@_@我倒~~~~~ 不能运行,提示说XXX.DLL错误,天啊,耍我啊。
看来此路不通啊,还好我还有一个脱UPX壳的工具UPX-iT(没办法啊小弟功力太差只能靠现成的工具来脱壳,还未练到可以手动脱壳的境界),这个如果还失败的话,那我就只能放弃了,佛祖保佑~~~~~~~
没一会就显示成功的信息了,还是运行一下先,哈哈可以运行,看来上天没有抛弃我^@^
好了,现在就按平常的破解思路来破解吧,先运行一下软件,弹出注册对话框(第一次运行的时候不出现的),然后在要求输入注册码的框里随便输点什么,比如:12345678,然后点“注册”按钮,弹出“注册失败,请重新输入!”的对话框,太好了,还有提示,这下简单了。
下面出场的是今天的女主角――W32Dasm
加载完脱壳程序后,在菜单栏中选“参考”―>“字符串数据参考”,在其中查找“注册失败,请重新输入!”的字样,一般在最后,找到后双击这个字符串,W32Dasm立刻跳转到0050D094,向上可以看到“Referenced by a (U)nconditional or (C)onditional Jump at Address:0050D02E”,这个就是告诉我们是哪个跳转跳到这个“注册失败”的地方来的,再向上看可以看到“感谢您的支持,注册成功!”的字样,估计0050D02E是个关键跳转。再向上可以看到“Possible StringData Ref from Code Obj ->"reg"”和“Possible StringData Ref from Code Obj ->"software\Microsoft\shellrwx"”的字样,说明改软件注册成功后向注册表中写数据。
好了,我们到0050D02E这个关键跳去看看吧。看到这句跳转的上一句是一个CALL,看了0050D02E这个跳转99%是关键跳了!
下面出场的就是今天的男主角――阿~~~发~~~~他岳父(周星星的片子看多了 ^&^)应该是OllyDebug!
用OllyDebug加载HKrwx.exe,加载完毕后按Ctrl+G然后输入那个关键跳的地址0050D02E,按一下F2下个断点,然后在上面三行也下上断点,
0050D023 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
0050D026 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0050D029 |. E8 527EEFFF CALL HKrwx.00404E80
0050D02E |. 75 64 JNZ SHORT HKrwx.0050D094
也就是上面四行下断点。
然后就按F9运行程序,出现输入注册码的对话框,照旧随便输入,比如:12345678,然后按“注册”按钮,程序被OllyDebug拦截下来,停在0050D023(因为在关键跳上面3行也下了断点,所以程序来到这里),不过在窗口的右下角可以看到刚才填的注册码“12345678”,下面一行就是注册信息中出现的机器码了,再下面一行很长的字符串很有可能是真正的注册码了。
没关系,我们按F8继续往下走,这时可以看到EAX中的内容是自己输的注册码,继续按F8,可以看到EDX中显示的就是那个可能是真正注册码的内容,继续按F8,程序来到0050D02E的关键跳,如果将此关键跳JNE改成JE那么如果你输入的注册码是错误的话就显示正确的对话框,这就是爆破手要做的事,我们是要做内存注册机,所以不需要去改它。按F9让程序运行完,然后点“退出”。
好了,已经掌握了此软件注册的过程,那我们可以做内存注册机了。(其实用KeyMake来做非常简单)
运行KeyMake,点一下“其他”―>“内存注册机”,然后选择要做注册机的程序,点左下角的“添加”按钮来添加要中断的地址,为什么中断的地址是50D029啊?因为当程序运行到这里的时候,EDX中的内容才是真正的注册码,如果中断在50D26的话,EDX中的内容还未变成注册码的内容。指令长度为什么是5,因为E8 527EEFFF是5个字节,所以长度是5。记得啊,右边的注册码框中也要填如相应的内容。填好后就可以点“生成”按钮就可以了,注意啊,生成的注册机一定要和主程序放在 同一个文件夹下的啊,还有直接运行注册机就可以了,不需要先运行主程序然后再运行注册机!!
好了大功告成,是不是很有成就感啊,哈哈~~~~
另:注册信息写在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\shellrwx中,将此项删除也可以运行Rwx2005
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课