yll20024 发表于 2021-12-28 18:44

某注册表清理工具的分析与爆破

本帖最后由 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

破解完成







kabalailai 发表于 2021-12-30 19:04

有没有批量修改注册表权限的软件,之前装CAD,相关的注册表都是手动修改权限再删除,弄了一上午,太机械了!

yll20024 发表于 2021-12-30 13:56

一路无忧 发表于 2021-12-30 13:52
为什么有的软件注册表清理了就不能用了?win10还原以后 注册表都清理了

注册表保存的有软件的一些配置,这些配置是在安装软件的时候写进去的,删了当然就不能用了

yll20024 发表于 2021-12-30 05:00

@FleTime

niefeng0429 发表于 2021-12-30 08:28

思路非常清晰,感谢

出云归晚 发表于 2021-12-30 10:01

讲解的很清晰明白,给个赞

longskr 发表于 2021-12-30 12:33

copywl 发表于 2021-12-30 13:24

学习学习,谢谢!

一路无忧 发表于 2021-12-30 13:52

为什么有的软件注册表清理了就不能用了?win10还原以后 注册表都清理了

xiaoqisky 发表于 2021-12-30 14:26

思路清晰,学习内核技术,也谢谢楼主分享这么好的经验!

yll20024 发表于 2021-12-30 14:35

原版 链接:https://pan.baidu.com/s/1u_UxyCGaagGVW5T18zGzfQ   提取码:2333
页: [1] 2 3
查看完整版本: 某注册表清理工具的分析与爆破