某注册表清理工具的分析与爆破
本帖最后由 yll20024 于 2021-12-30 04:58 编辑将程序载入OD,运行,随便输入注册码
暂停程序,在堆栈窗口找压入的用户名和注册码
在下面有个 返回到 00A84462,右键->反汇编窗口跟随
上面的call就是判断注册码是否正确的call,在这个call下断点,运行程序,继续点注册按钮。断下来后F7进入这个call,F8往下跟,有个jnz,用于判断邮箱地址是否输入,如果没输入会弹对话框,为了方便起见,把它改成jmp
继续单步跟踪,把一些无用的跳转改jmp
00B4284E处有个je,此时这个跳转未实现,继续执行将会显示“Invalid license key”,因此,此处je改jmp
00B428D5处,这个je已实现,执行后会显示“Invalid license key”,不进入网络验证,因此,此处je用nop填充
F9运行程序,发现已经变成PRO版本了
保存刚才的所有修改,复制到可执行文件,再次运行时发现有自校验
再次将修改后的程序载入OD,运行,出现错误提示框后暂停程序,Alt+K查看调用堆栈
发现MessageBox来自004AD38F处的调用,右键->显示调用
在MessageBoxW上面有个跳转可以跳过,改成jmp,保存文件,自校验就去除了 到这里程序算破解了一半,因为目前还有个问题,就是每次打开程序时都需要注册才能变成PRO版本,比较麻烦.... 猜测程序应该在启动时读取注册表或配置文件,根据注册表或配置文件中保存的注册码判断是否注册。 再次载入程序,在读注册表API下断点
多次运行程序,直到堆栈窗口出现“License Key”
Alt+K查看调用堆栈
逐级分析函数调用,在如图所示项 右键->显示调用 发现关键信息
删除读注册表断点,点击call的下一行,按F4,运行到当前位置,然后F8单步运行,在00B6F2B5处有个大跳转,如果这个跳转实现就是FREE版本,因此nop填充
紧接着的jnz改成jmp
破解完成
有没有批量修改注册表权限的软件,之前装CAD,相关的注册表都是手动修改权限再删除,弄了一上午,太机械了! 一路无忧 发表于 2021-12-30 13:52
为什么有的软件注册表清理了就不能用了?win10还原以后 注册表都清理了
注册表保存的有软件的一些配置,这些配置是在安装软件的时候写进去的,删了当然就不能用了 @FleTime 思路非常清晰,感谢 讲解的很清晰明白,给个赞 学习学习,谢谢! 为什么有的软件注册表清理了就不能用了?win10还原以后 注册表都清理了 思路清晰,学习内核技术,也谢谢楼主分享这么好的经验! 原版 链接:https://pan.baidu.com/s/1u_UxyCGaagGVW5T18zGzfQ 提取码:2333