某视频修复软件的注册验证算法
本站内容除转载精华分类或注明zz以外,其他均为原创内容。转载请注明出处,yhustc.com版权所有
本文只是自己自娱自乐,研究一下反向工程,非用于商业用途。
昨天看电影遇到点问题,找了某视频修复软件来修复,但是不注册的话修复的视频不完整。
于是自己来试一下能否注册成功把电影修复一下。打开OllyDBG从GetDlgItem下断点,获取用户名和注册码一路开始跟,发现从得到注册数据,到弹出注册失败的框,走过三个大函数,进一步跟进,发现这三个大函数里又一直在调用小函数,而且好像在里面打转,而不是直接开始验证然后报错。
有点疑惑的是,寄存器中有注册码和用户名的值,进入一个call后返回这些值就没了。感觉这里应该是验证的地方了吧。结果发现进入F7进入此call,还没走两步,寄存器指向的地址换了,之后好像也没有把这个注册信息再调出来用过。还真把人搞糊涂了,一时无法确定是在什么地方进行注册校验呀,怎么跟算法或者做内存注册机呢?
无奈只好看看字符串参考,看看报注册失败的地方在哪里,结果失败的字没找着,发现了一个注册表的键值。于是打开看了看,发现里面有机器码,有用户名,就是没有存注册码。如果是这样,那软件启动的时候怎么校验是否注册了?先不管了,先把默认的“***”用户名改成我自己的再说。结果再启动软件点击注册,显示“已成功注册,感谢支持正版”。
感觉好像顺序有点混乱,按理应该上来先用regmon,filemon监视一遍才是,如果早发现注册表上是突破口,马上就能来到相关代码的部分了。这不由得让我想起以前破解过的某美容软件。对于用户输入的无效注册码也会存入注册表,然后启动的时候读取出来进行校验。因此安装完成后导入一个注册表键值,让软件把它读出来与验证码进行比对,在这里就可以直接用内存注册机取正确的注册码了。
0 Responses to “某视频修复软件的注册验证算法”
发表评论