危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18791776

图片快速排版器的破解

危险漫步今天很无聊,寻思闲着也是闲着,索性干他一票。想来想去还是找个软件破解了写篇破解笔记吧。呃,海汇多功能图片快速排版器,又臭又长的名字。决定了,就拿这个倒霉蛋开刀。这是个用VB写的小工具,共享版,限制次数试用。这里用到的家伙是OD和Brain。

先运行一遍试试,注册窗口上有试用按钮,右边有试用次数记录,最多20次。左边有用户名和注册号,上面有个“您的注册号验证码是:”单击下出现一个浮点数,软件作者要求给他汇钱并把这个浮点数发给他,他会回复注册号。很显然,这是基于绑定机器(根据机器的硬件和软件环境演算出来的一组数,然后由这个值进行演算得出注册号)的相关密钥对。

因为不研究软件算法,所以这东西现在还没大有用处。用户名输入123456789、注册号123456,单击注册,弹出“注册号不正确,请重新注册!”一开始我准备查找字符串的,想起来OD的插件查VB程序的字符串特不给力,于是直接bp rtcMsgBox下VB的消息框断点。按F9跑起来,然后用户名123456789、注册号123456,点注册,发现断在734FCF7E处,看堆栈窗口,找他返回的地址是OOA3098C,跳到这里,上一条指令就是那个消息框的CALL,向上找,一直到"OOA30185  .FF15 C8104000 CALL DWORD PTRDS:[<&MSVBVM60._vbaStrCm>; MSVBVM60._vbaStrCmp”这里,vbaStrCmp-看就知道是个比较函数,F2下断,然后重新让程序跑起来,输入用户名什么的。然后点注册,这次断在_vbaStrCmp这里。看寄存器窗口,发现ECX指向的123456789,也就是我输入的用户名,这软件上说要把验证号发过去,没说用户名,于是无视捧这个CALL。往下看了看,发现“OOA302E2.FF15 D0104000 CAL,LDWORD PTR DS:[<&MSVBVM60._vbaVarTs>;vbaVarTstEq”这条指令,觉得这个__vbaTstEq很可疑,由于对VB函数不熟悉,于是就查了一下,得知是个比较函数,发现上下都没有什么像是比较的地方了,于是F7跟进。

到SysFreeString这里有一个VarBstrCmp函数的CALL,看名字知道应该是字符串比较的函数,运行到这函数的参数加载完的地方,查看堆栈窗口,0012F35C    0017DBA4  UNICODE "16149434”0012F360  0017EA2C  UNICODE”123456”在堆栈里出现了明码。123456是我输入的假码,16149434应该就是真正的注册码。记下来,关掉OD,运行程序。用户名随意输入,注册号输入刚才得到的16149434,点注册,提示“注册成功!您的注册码为16149434”,知道注册码在内存中显示的位置了,注册机什么的都好说了。这软件也算是破解掉了。

对于这个软件的作者,我只能说他实在不是一个成熟的程序员。作为一个收费软件居然没添加保护机制这暂且不说,这么个面向人群较少的小工具,就算是你做的再好也不会卖出超过一千套,再者大家都习惯用免费软件,即使是你这个软件只收一毛钱,也不会有多少人会去掏腰包,他们会选择功能与之相同或更好的免费软件,如果没有更好地,用户也可以很轻易的在网上找到破解版或是注册机。对于这种小工具,如果够好用的话,可以考虑一下作为免费软件在网上分发而从广告、支持性服务或者其他附加服务来产生收益。貌似扯远了,就这样吧,我是危险漫步,再次谢谢大家的支持。

相关推荐