吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2218|回复: 11
收起左侧

[讨论] The038. 吾爱培训,《04:击破程序最坚固的堡垒》讲师:小生 [破注册码、去网络验证]

  [复制链接]
chuiyan121 发表于 2022-2-15 22:12

The038. 吾爱培训,《04:击破程序最坚固的堡垒》讲师:小生 [破注册码、去网络验证]
关于吾爱破解论坛官方入门教学培训第一期,我的学习记录,如有疑问欢迎交流指正。^_^
这集是小生大牛破解注册码、去网络验证、去自校验的实战课程。

0、打开软件,最先关注的应该是注册吧,搞破解嘛,职业病。^_^


1、上图显示“未注册版本”,OD载入程序,中文搜索字符串(无意间发现Ctrl+D是智能搜索的快捷键,Get了),然后Ctrl+F搜索已注册,发现如下字符。


2、双击跟进,发现上一行有个跳转,跳过了已注册版本,F2下断点。上面第二行比较00579F24的值是否为0,这个比较关键,应该是为0就是代表未注册,同样F2下断点。


3、接下来查找00579F24在程序中哪些地方被赋值了,查询方法为:查找->所有常量。


4、在常量对话框十六进制处00579F24,有符号、无符号自动生成,确定。出现【参考】窗口,这7处就是00579F24被赋值的地方了。


5、在【参考】窗口右键,在每个命令上设置断点,发现所有赋值地址都下断点了。


6、重载程序,F9运行,断在00541650处,【参考】窗口可以看到7处赋值,有5处是赋值为0,变量赋值只有dl和al。暂且认为dl和al的值决定了注册是否成功,继续调试。


7、我们只是在赋值的地方下了断点,为了准确的反映程序的赋值情况,需要在函数开始处下断,并重载,这样就会停在函数头开始逐步调试分析程序。向上翻,看到上个函数结尾的retn后,在0054159C  push ebp处下断。


8、Ctrl+F2重载,F9运行,停在0054159C,F8单步,仔细观察程序的变化。期间看到了“SN”字样(应该是调用了注册码),途中又F4跳过了2个循环(应该是用来判断注册码的位数),接近断点处,有两个cmp比较都没有跳转成功(下图我写了注释,不知道对不对),也就是dl没有被赋值为1。


9、这个跳转成功了,刚好跳过了dl赋值为1的地方,想象一下,会不会是dl为1时就注册成功了呢?


10、不管怎样,dl赋值为1肯定有作用,先试着将0054164C的跳转NOP,让dl成功赋值为1。保存文件,覆盖当前文件qqqf.exe,覆盖的目的应该是OD记录了之前的注释和断点,重载时可以保留这些内容。建议在保存文件前将原来的qqqf.exe备份。重新载入OD运行到如下图的地方,发现dl的值为1,00579F24也被dl赋值为1了。


11、吸取上面经验,0x579F24赋值为0就凉凉了,因此这个跳转不能实现,直接NOP掉。


12、继续往下,如果0054168C这个跳转实现,则后面0054169A的跳转正好跳过给al赋值为1的代码,因此0054168C这句也要NOP掉。


13、00541696这句是跳转到给al赋值为1的,但是跳转为实现,这里需要让它实现,将jg修改为jmp。


14、跳转成功后,al和0x579F24值都为1。保存所有修改为exe文件,覆盖当前qqqf.exe文件。


15、运行qqqf.exe程序,打开注册窗口,这里填写的注册码不能少于12位。为什么是12位,我用16位,20位,24位都试过了,不同程度报错,没弄明白。


16、填写任意12位字符,确认后程序自动重启,然后显示为已注册版本。但左下角显示“正在验证…”,应该是开启了网络验证,记住此信息去OD搜索一下字符串。


17、OD载入qqqf.exe程序,中文搜索字符串Ctrl+D,搜索“正在验证”,双击跳转到下图,这个函数就是网络验证的函数。


18、最便捷的处理办法就是在函数起始位置使用retn大法。修改后保存文件覆盖当前程序。


19、网络验证解除,注册成功!


20、本集由于篇幅较长,只记录了破解SN注册码、去网络验证,其实程序还有自校验(俗称暗桩)如下图,下集再来记录解决自校验问题。




免费评分

参与人数 7吾爱币 +6 热心值 +7 收起 理由
我是来日狗的 + 1 + 1 用心讨论,共获提升!
会成功的人 + 1 + 1 谢谢@Thanks!
wbzb + 1 + 1 我很赞同!
taozhi + 1 + 1 用心讨论,共获提升!
福多多 + 1 + 1 用心讨论,共获提升!
小小娃娃 + 1 + 1 谢谢@Thanks!
shower1986 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

scncrenyong 发表于 2022-3-1 10:36
确实挺详细的,
异或 寄存器本身(xor eax,eax)    就是将该寄存器置0

直接改跳转有问题的话,就进跳转前的call看一下返回值和调用
13729181580 发表于 2022-2-15 22:14
头像被屏蔽
wbzb 发表于 2022-2-16 07:59
change 发表于 2022-2-16 09:28
写得不错,过程很详细。
 楼主| chuiyan121 发表于 2022-2-16 09:34
wbzb 发表于 2022-2-16 07:59
很好的技术贴,赞一个

感谢支持!
牛人王老五 发表于 2022-2-16 09:54
很详细的记录贴, 对初学者很有帮助! 感谢!
我今天是大佬 发表于 2022-2-16 10:56
真的是非常详细的记录贴了, 感谢分享
taozhi 发表于 2022-2-16 11:18
楼主厉害  多多需要这样的文章
头像被屏蔽
wbzb 发表于 2022-2-16 14:30
提示: 作者被禁止或删除 内容自动屏蔽
会成功的人 发表于 2022-2-16 14:36
谢谢楼主分享的技术贴。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 20:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表