160个CrackME之025
本帖最后由 sky27076 于 2018-11-20 22:10 编辑第25个,又是VB程序,要等待5秒才能进入,有弹窗口。
智能搜索,看到图片1.有正确的提示,等什么呢?直接跟随过去。
就在上面看到了关键跳转,NOP掉就爆破了嘛。
不知道有没有注意,图片1中有一行,
00405721 push CodeZero.004026A4 55555
这个是什么?呆了,注册码呗!
这个程序在输入注册码前,有一个NAG,等待5秒,应该怎么去掉?
我有一个思路:
但凡NAG,当然是在注册窗口之前先出现的,如图,先叫它窗口1
等待一定的时间或者某些操作之后,才会出现注册窗口,管它叫窗口2
既然要去掉NAG,可以思考一下程序的流程。
程序运行以后,先载入窗口1,当条件达到之后,关闭或者隐藏窗口1,打开窗口2。
要怎么去掉这个NAG?可以这样想,不让程序运行载入窗口1的过程,直接载入窗口2。
而窗口1,在程序中被创建时,肯定有许多组件要初始化,比如窗口名,标签等。
我们找到这个赋值命令,再往上找到创建窗口1时的起始位置,直接平衡堆栈返回,
是不是就可以了呢?
具体操作:
观察窗口1图片2.上面的字符串,要记住是在等待5秒后才出现的Continue...
0040604B push CodeZero.004029B0 Continue...
这行是窗口1上面的显示的信息。
跟随它,找到起始的push ebp也就是55机器码下断点,运行程序看会不会有窗口1和显示的等待5秒出现,
如果出现了,说明要这个之前已经创建好了,还要往上找。
最先找到图片,下断点重载程序,还是要等时间,说明不是,清除这个断点继续往上找。
找到图片,依旧不是,继续清除断点往上。
图片,不是。。。。。。
直到图片,窗口1没有弹出,
重载后单步往下,发现一会儿后,窗口1出现了,这样的图片
怎么不完整呢?不完整就对了,因为还在创建的时候就被我们断下来了,单步的结果只执行到这个样子
OK。选择00405905 55 push ebp这一行,修改为retn 0X04保存文件。
运行一下,NAG解除了!
练了一个周crackme,把学编程的事丢了好多,以后可能不会那么频繁发crack,毕竟时间太不够用了,尽量抽时间把这个crack过程进行到底,不过时间可能会有点长,对不起了 byh3025 发表于 2018-11-20 21:39
这排版,图文还得慢慢比对
不会啊,不知道怎么搞呢,
真的是小白。 虽然看不懂,还是赞一个 这排版,图文还得慢慢比对 学习使我快乐 从160个crackme开始,一点一点学习。 好东东,感觉不错。 有点复杂,收藏
页:
[1]
2