欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

对USBKiller注册过程薄弱环节的分析

对USBKiller注册过程薄弱环节的分析

【文章标题】: 对USBKiller注册过程薄弱环节的分析
【文章作者】: tihty
【使用工具】: OD,C32Asm,IDA
【作者声明】: 我还是一个学习加密与解密的新手,为了能更好地和坛友们交流,特写此文。文中如有不对的地方请大家帮忙指出,感谢你阅读本文。
------------------->8-------------------------------------------------------------
【详细过程】
先介绍一些基本情况。
软件版本:USBKiller V2.3 Build0103
验证方式:重启验证
程序外壳:UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
------------------->8-------------------------------------------------------------
我的思路:
既然是重启验证,那么我们输入的注册码(以下简称假
码)肯定会被保存在文件或者注册表中。等软件重启的时候再读取之,与正确的注册码进行比较。所以我们可以下断文件API和注册表API。
各方面都经过下断分析之后,找到了程序保存假码的位置:
C:\Documents and Settings\[当前用户]\Application Data\svighost.dll
别相信它的名字,其实这是一个假的动态链接库文件。用记事本打开,就可以看到里面保存的假码了。
------------------->8-------------------------------------------------------------
既然找出了保存假码的位置,就容易下断了。我再次下断文件API,然后Ctrl + F2。
追踪到了程序启动时对svighost.dll的读取,这时肯定要和正确的注册码相比较了。
于是F8,正确的注册码就跟出来了。

图01
------------------->8-------------------------------------------------------------
当然这样并不满意,最好是逆向出它的注册算法。索性它的算法不算太难。 

图02
如图,F7跟入其中那个计算注册码的函数。一番分析之后,我得出的结论:
注册码 = 机器码 + 2 * n (n = 1,2,3...)
n代表从左向右开始数的位数。
------------------->8-------------------------------------------------------------
最后是爆破了。

图03
图中的那一行,把74改为75就可以爆破了。呵呵
------------------->8-------------------------------------------------------------
【经验总结】
学习软件加密与解密需要多思考,需要有耐心,需要有一定的基础。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功