学习笔记第五课 寻找注册码

先打开这次要破解的软件,任意输入一个注册码“11111111111111111”,点击注册,发现程序需要重启验证

然后,观察一下软件的根目录,发现有一个INI配置文件,打开后发现里面记录了刚才注册时候的机器码和输入注册码

此时,可以判断软件的注册验证流程是:

先让用户输入注册码

然后重启软件,读取INI文件中的记录并进行比对,进而确定用户输入的注册码是否有效。

这里说明一下:课件提供的这个软件已经脱壳了

开始破解

第一步 将软件载入OD。

第二步 选择屏幕正上方的快捷工具条,点击工具条最左边的BP,弹出一个菜单

选择Archives INI 下面的第一个选项,下一个INI验证断点

 

为什么要下一个INI验证断点呢

因为最开始判断软件注册流程的时候,发现软件是通过每次重启后读取INI配置文件的内容,来验证注册码是否正确的。

第三步 断点下好后,F9运行程序。

这时候会发现,程序运行停在了断点处,并且开始读取机器码

此时点击最上方命令栏,调试---执行到用户代码

为什么执行这一步呢

通过观察上图左侧的机器码和标题栏上的模块名kernel32可以发现,此时程序仍处在调用系统API模块阶段,也就是所谓的系统领空

如果按F8慢慢走的话可能会按很久。

通过“执行到用户代码”,直接跳到程序的执行区域,也就是所谓的程序领空

 

注意:实际操作中会遇到一个问题就是“执行到用户代码”不起作用,还是和F8一样一步一步执行。

论坛上验证过是64位系统调试下就会出现该问题。32位系统下执行正常。

我是WIN7X64位系统,所以目前的办法只能一直ALT+F9,直到标签栏上模块名变成程序名为止(说明已经到了程序领空)

 

 

第四步 通过F8一步步比对,在堆栈窗口获得可疑的注册码,再去注册界面一一验证

 

第一行 红圈标记的 就是程序领空的第一行

按F8运行到第三行红圈标记处,右侧寄存器窗口开始出现注册时候的机器码,说明方向正确,继续向下

一路F8,直到出现了两个可以的代码段:

此处忘记截图了,将出现的可以代码“复制到剪切板”,依次去注册界面尝试,发现第二个注册码可用。

进入软件注册界面,提示注册完成。

转载于:https://www.cnblogs.com/vawa1900/p/10575321.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值