吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16838|回复: 36
收起左侧

[分享] 160个crackme之003 Afkayas 去VB程序NAG窗口方法-4C法

  [复制链接]
pk8900 发表于 2017-5-31 18:37
本帖最后由 pk8900 于 2017-5-31 20:31 编辑

160个crackme之003 Afkayas 程序地址:http://pan.baidu.com/s/1dFuKnoH
程序要求:去NAG窗口,找出序列号算法
序列号算法已经有人发贴了,写的很详细,去NEG窗口好像没人说,我说在这里写一下,有正在学习的可以参考一下。
说到去这个程序的NAG窗口,我以前也从来没研究过,前段时间在论坛里下载了一个《使用 OllyDbg 从零开始 Cracking》教程(原贴:http://www.52pojie.cn/thread-338571-1-1.html),学习了一下,其中有一个文章是关于这个去NAG窗口的,好像对付VB程序很好用。
教程中起了个名字叫做4C法。
原程序启动有一个NAG窗口,若干秒后会自动关闭,打开主窗口。
Image 4.png
OD载入程序:OEP处
Image 1.png
VB程序有个特点-入口点处都是一个PUSH指令,然后一个CALL指令,看JMP 后面跟的MSVBVM50,应该是VB5.0编写的。(如果不是这种情况的话,那么该程序可能被加过壳), PUSH将要压入堆栈的是004067D4,现在我们在数据窗口中定位到这个地址。显示如下:
Image 2.png
现在就要用至4C了,也就是从当前定位的地址往后偏移4C,数据窗口CRTL+G,输入4067d4+4c,显示如下:
Image 7.png

数据窗口继续跟踪:00406820处的DWORD值,00406868,内容如下:
Image 3.png
这里我们可以看到两块类似的数据,每块50(十六进制)个字节的长度,每块数据的第24(十六进制)个字节处都有一个标志(第一个是01,第二个是00)。该标志指定了每块代码(也就是程序启动后要加载的窗体)出现的顺序,先加载00,也就是我们要去的NAG窗口,再加载01,是主窗口。所以这里我们将各两个标志的值颠倒一下,01改00,00改01,二进制修改,保存文件,运行测试,NAG窗口去除了。

Image 6.png
这个方法也适用一些有限制的VB程序,程序运行后会出现一个注册或提示限制的窗口,不能注册或解除限制就只能退出。用这个方法把主窗口优先启动,就能跳过限制。




免费评分

参与人数 9吾爱币 +18 热心值 +9 收起 理由
hjm666 + 1 + 1 用心讨论,共获提升!
shilinzhilang + 1 + 1 用心讨论,共获提升!
a5606495 + 1 + 1 谢谢@Thanks!
xiaowanzi + 1 + 1 用心讨论,共获提升!
海天一色001 + 1 + 1 谢谢@Thanks!
灰太狼大王 + 1 + 1 用心讨论,共获提升!
海盗小K + 3 + 1 谢谢@Thanks!
Sound + 9 + 1 已经处理,感谢您对吾爱破解论坛的支持!
KaQqi + 1 OK

查看全部评分

本帖被以下淘专辑推荐:

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

木四 发表于 2018-10-15 16:56
这里我们可以看到两块类似的数据,每块50(十六进制)个字节的长度,每块数据的第24(十六进制)个字节处都有一个标志(第一个是01,第二个是00)。该标志指定了每块代码(也就是程序启动后要加载的窗体)出现的顺序,先加载00,也就是我们要去的NAG窗口,再加载01,是主窗口。
--------------------------------------------------------------------------------------------------------------
大佬  小萌新还是不懂这个 00 和 01 怎么找到的
 楼主| pk8900 发表于 2019-8-10 19:32
冥界3大法王 发表于 2019-8-10 11:39
@pk8900
老外有个文档里也是这么说的
https://forum.tuts4you.com/topic/24824-change-main-form-of-vi ...

这个不是我原创的,来自《使用 OllyDbg 从零开始 Cracking》教程(看雪上翻译发布的,原名《INTRODUCCIóN AL CRACKING》),不过这个法很好用,有点像易语言的PUSH大法。
byh3025 发表于 2017-5-31 19:58
xara 发表于 2017-5-31 20:26
看到NEG我一开始以为是笔误,但是NEG出现次数如此之多,能不能正确地打上NAG? :)
 楼主| pk8900 发表于 2017-5-31 20:30
xara 发表于 2017-5-31 20:26
看到NEG我一开始以为是笔误,但是NEG出现次数如此之多,能不能正确地打上NAG? :)

英语是跟体育老师学的,中考没及格,高中没去,单词都是硬记的,不会读,只会拼,见笑了。
海盗小K 发表于 2017-5-31 23:44
感谢楼主分享这个经验!我之前用的是修改时钟资源Interval 7000ms为1ms,NAG出现的时间可以忽略不计,但也算不上完美去除。这个大概算一种很好的方法了。
灰太狼大王 发表于 2017-6-1 06:48
先收藏了,可不可以发个001的,只找到一个注册码,另一个没找到
xara 发表于 2017-6-1 10:49
pk8900 发表于 2017-5-31 20:30
英语是跟体育老师学的,中考没及格,高中没去,单词都是硬记的,不会读,只会拼,见笑了。

我是喷子,感谢分享经验 :)
海天一色001 发表于 2017-6-2 15:47
高手啊!感谢楼主的无私分享!
xiawan 发表于 2017-7-11 16:46
我想问一下怎么找到00406868这个位置的?
 楼主| pk8900 发表于 2017-7-11 18:49
xiawan 发表于 2017-7-11 16:46
我想问一下怎么找到00406868这个位置的?

VB程序开始第一个PUSH 的地址:4067d4   +4c,这个内存地址里的DWORD值就是
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 16:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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