菜鸡角度的 Crackme #2

首先运行一下程序看下效果,这样下一步动作才会有一定的依据。

发现是一个很常见的注册机程序,要求输入序列号和密码。

本菜鸡很懒,懒得输入,就按照初始化的输入点击了确认按钮,会发现不出意外地弹出了错误提示。好了,一切都在预料之内。接下来的事情就交给OD了。

一、打补丁暴力破解

1、在OD下打开程序。

会发现这个程序是用VB写的。(有着ThunRTMain函数和典型的间接跳转——先call一个地址,利用这个地址jmp到ThunRTMain函数)。

2、用什么写的对我这种刚入门的人来说不太重要,重要的有一个字符串搜索功能。OD检索字符串。

这里就是错误提示字符串,,猜想程序的判断机制一定在这附近(起码与这段之间有一个跳转命令)。点击进入所在地址。

扫描二维码关注公众号,回复: 3699605 查看本文章


进入之后,OD就会给你一个强烈的暗示,有一个跳转。分析可知,je short Afkayas_.004025E5使得程序跳转到错误提示。

3、暴力破解

强制跳转到输出正确提示。可以看到在原来的je short Afkayas_.004025E5 下一条指令就是正确提示。那为什么不直接跳到那里呢?改je short Afkayas_.004025E5为  jmp short Afkayas_.0040258D.


保存更改到exe文件。运行查看结果如下


会发现,同样的做法下,程序已经破解了。

二、找到输入的序列号的密码。

这一部分前一段内容和爆破是一样的。不同在于进入到字符串地址后怎么做。由于程序一定存在一个比较段(用于判断输入与标准结果是否一致)。所以向上寻找。会发现vbaStrCmp(比较函数),_vbaStrCat(字符串连接函数)。

在这几个位置下断点。


F9,输入任意序列号、密码。

再断点附近查看寄存器、栈值。

很容易查看到标准的密码已经生成。

再次运行,检验。



三、写注册机

咳咳,能力有限、菜鸡很无力。哪位路过的大牛肯指教一番就甚是美妙了。











猜你喜欢

转载自blog.csdn.net/caobo_lq666/article/details/80936409