sky27076 发表于 2018-11-20 20:35

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解除了!
















sky27076 发表于 2018-11-21 18:13

练了一个周crackme,把学编程的事丢了好多,以后可能不会那么频繁发crack,毕竟时间太不够用了,尽量抽时间把这个crack过程进行到底,不过时间可能会有点长,对不起了

sky27076 发表于 2018-11-20 21:44

byh3025 发表于 2018-11-20 21:39
这排版,图文还得慢慢比对

不会啊,不知道怎么搞呢,
真的是小白。

送你一颗流星 发表于 2018-11-20 20:50

虽然看不懂,还是赞一个

byh3025 发表于 2018-11-20 21:39

这排版,图文还得慢慢比对

YCAPTAIN 发表于 2018-11-21 08:32

学习使我快乐

N0nE_Seana 发表于 2018-11-21 08:40

从160个crackme开始,一点一点学习。

zjlzhok 发表于 2018-11-21 09:41

好东东,感觉不错。

cy5520 发表于 2018-11-21 11:58

xwj8677 发表于 2018-11-21 13:12

有点复杂,收藏
页: [1] 2
查看完整版本: 160个CrackME之025