吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3498|回复: 3
收起左侧

[原创] 160 个 CrackMe 之 102,103 - Acid_Cool_178 系列去 NAG 新方法应用!

[复制链接]
solly 发表于 2019-8-3 02:34
160 个 CrackMe 之 102,103 - Acid_Cool_178 的两个 CrackMe 都是去除 NAG 弹窗,并且,两个 CrackMe 都是 P-code 形式的 VB 代码,我们这次不采用修改 p-code 代码的方式来破解,而是采用修改 VB 程序的数据结构中的数据来破除 NAG。理论则来自于我的另一个帖子。


https://www.52pojie.cn/thread-1000513-1-1.html


上面的帖子中有对这方面的说明,这里只应用其方法。


首先看看第 102 个 CrackMe。


一、102 - Acid_Cool_178.vb1 的破解


方式1 - 删除事件法


我们用 VB Decompiler 打开该 CrackMe,如下图所示:
10.png
可以看到,是在 Form_Load() 事件中弹出的 NAG 弹窗,而且该事件没有其它可用代码,只有 NAG 弹窗的代码,我们只要去掉 Form 的 Load () 事件处理,就可以去除 NAG 弹窗。


按照我在 101 - CrackMe 的方法,找到 Form 的事件地址块,如下图所示:
11.png
将上面的事件地址清除,用 0 填充即可,如下图所示,就可以去除事件了:
12.png
保存后,我们再次反编译,如下图所示,Form_Load() 事件处理函数没有了,变成了一个未使用的函数了:
13.png
这样,就可以去除 NAG 弹窗,这种方式,适于方法代码可以全部去除的情况。

方式2 - 修改代码长度法

现在,我们使用另一种方式来去除该 NAG 弹窗,还是用 VB Decompiler 打开,如下图所示:
20.png
可以看到,事件代码开始地址为 0x00401A48,另外除了最后一条指令,前面的代码指令都是用来进行弹窗处理的。我们通过修改该事件的 p-code 代码长度来跳过弹窗代码。
在 VB Decompiler 中,Form_Load() 事件的名称显示为 Form_Load_401A74,而这个 401A74 就是在 101 CrackMe 中讲到的事件信息块的地址,这个地址指向事件代码的结束位置。
因此,我们可以算出该方法的  p-code 代码长度为:
0x00401A74 - 0x00401A48 = 0x002C
就是説该事件的代码长度为 0x2C,如下图所示,也证实了这个数据:
21.png
我们就是要修改这个数据,从前的指令区可以看到,最后一条指令的地址是 0x00401A71,因此,最后的代码长度为:
0x00401A74 - 0x00401A71 = 0x0003
所以,我们只要把 0x002C 改成 0x0003,就可以完美跳过 NAG 弹窗的代码,如下图所示:
22.png
在 VB Decompiler 中点“保存”后就可以了。


这种方式适于事件或函数代码中最前面的代码为 NAG 代码的情况,也就是可以去除函数中最前面的代码,如果在中间或后面则不行。



免费评分

参与人数 2威望 +1 吾爱币 +7 热心值 +2 收起 理由
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
朱朱你堕落了 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

bug132294 发表于 2019-8-3 07:32
写的好详细,赞一个。
学士天下 发表于 2019-8-3 07:45
wangfu 发表于 2019-8-3 22:21
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 18:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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