第一次独立使用ollydbg破解crackme测序

破解了traceme.exe之后(https://blog.51cto.com/181647568/2421560),我认为traceme.exe主要是《加密与解密第三版》里主要用于讲解ollydbg怎么用的。中途已经从不同的角度破了好几次了,我在尝试破解的时候已经对exe有了一定的了解,可能直接跳过了检测的部分,所以我打算再搞一个cm程序来从头开始破解起。

我找的是从吾爱破解里下载的“适合破解新手的160个crackme练手”中的第一个程序:Acid burn.exe。

下载地址:https://u19693866.ctfile.com/fs/19693866-388387338

image.png

软件打开后先是弹一个信息框

image.png

然后点击确定后出现的界面是这样的。

image.png

基本上就是这三个按钮,其中第一个就是和traceme.exe差不多的,输入用户名后,再输入序列号比对。

第二个按钮就是退出程序。

第三个按钮只有一个输入序列号的界面。我一开始是的是右边的按钮。

image.png

我看到里面有一个编辑框,我当然输入测试的序列号123456,然后点击按钮check it baby!然后显示失败,弹出了信息框提示“Try Again!!”

那么我感觉这个cm和traceme.exe差不多,那我就故技重施,用ollydbg打开acidburn.exe然后,将断点设置在GetDlgItemTextA,不过这次和traceme不一样,这次虽然程序有停止,但是我一旦按下F8(单步步过),不久就弹出了Try Again!!的弹框。然后我就没法继续下去了。

后来又在网上找了一下资料。看到这篇文章

 https://blog.csdn.net/plus_re/article/details/53248142 

这篇文章依旧使用了《加密和解密》中的另外一个exe文件,破解的方法是在程序一开始进入的地方就加入断点,然后凭此了解软件的运行现象,并且在弹出信息框之后,通过搜索信息框里的字符串,并且找到这些字符串所在的地方,在附近加断点,查看运行情况。当然文章的作者在这个过程中已经看出了用户名和序列号的对应关系了。我认为可以用他的方法来尝试破解。


首先是用ollydbg打开了软件,在程序第一个地方我就打了一个断点,然后也用F8让程序运行了几次,一直到交互式界面出现。我通过右键“中文搜索引擎”-“智能搜索”把程序的字符串都提取出来。

image.png

其中有三个try again的字符串,我双击这些字符串在每个地方都打了断点,

特别是第三个地方

image.png

这里同时出现了成功和失败的字样,其中failed!就是信息框的标题,try again是一个内容。可以判断两段就是成功和失败的信息框的位置。另个信息框上有一个jnz的跳转很有可能就是判断跳转处,

image.png

我点击了这个jnz,看到了红色箭头,没错,这个跳转决定了是成功还是失败。(如果nop掉这个跳转就是爆破了。)

image.png

这个跳转前有两个mov的指令,我点击之后下面的窗口中出现了字符

image.png

其中一个是我输入的内容,另外一个则是"Hello Dude!"那么我就在想是不是序列号就是"Hello Dude!",下面的call就调用了一个方法进行比对呢?我又在call命令前放了一个断点,然后运行了一遍程序,确认了确实是一个判断的过程,因为call的命令中有cmp指令,通常和test指令一样是用于数据比对的。

于是我在输入处输入了"Hello Dude!"之后,成功了破解了它。

image.png

接下来我会去试一下第一个按钮,不过估计和traceme差不多。


猜你喜欢

转载自blog.51cto.com/181647568/2421646