从陌生开始练习。
001
破解的基本环境:
1 | 环境: 吾爱破解专用虚拟机(Windows XP) 以及配套的工具 |
2021年3月28日 第一个CrackMe 搞定。
程序分析
首先观察这个程序的结构,然后多次点击会有不同的提示,而且有两种的的输入密码的方式。然后想了一下,我们试密码应该是试不出来的了,所以我们应该去爆破。(这个词吧,在大佬的眼中大概就是通过动态调试,然后将里面判断对错的地方给跳过去,这样的话,无论我们输入什么,不论对错,都会跳转到正确的地方)
转载大佬的分析语句:
1 | 想要破解一个程序,必须先了解这个程序。所以,在破解过程中,对最初程序的分析很重要,他可以帮助我们理解作者的目的和意图,特别是对于注册码的处理细节,从而方便我们反向跟踪和推导。 |
1 | 我们发现,这个软件分为了两个部分,一个是Serial/Name,需要输入用户名和注册码才能通过,另外一个Serial只需要输入一个注册码一类的东西。我们随意选一个开始,比如,先进行第一个。 |
1 | 我们随意输入一个用户名和序列号(伪码): |
开始CrackMe
我们用OD打开文件 ‘Acid burn.exe’ ,右键选择 用Jiack 打开,(或者直接将程序拖进 OD );
打开后,可能会是几个小窗口的样子,这时我们可以点击那个上面的 ==C== 进入线程的调控。如图所示。
所以我们先按下F9 运行,然后可以缩小OD界面,在桌面找到一个启动的方框。
点击确定
然后进入后,再点击 并且点击
直接点击 Check it baby 。然后返回的是Try Again。所以我们学习着点击k(快捷键Alt + K )去查看堆栈的情况。如图所示:
这个时候,看着大佬的教程。观察到调用了两个 Message.Box .就是那两行。
然后根据我们进行判断(好吧,是大佬的猜测),因为前面的一个堆栈的地址为 77D。。。所以可能性较小,所以猜测更大的可能性是下面那个。于是乎目标可能在下面的那个跳转里面。
所以我们左键选中我们将要用的那一行,右键单击然后点击
所以我们在这个Call 这里设置断点。(方法点击这一行,然后右键点击断点切换)
先找到右下角的地方,看见返回的地方。
然后就可以看见前一副图的样子了。
然后就可以看见这三跳转的点了。
通过推断(大佬的分析)然后下断点。
然后将 sorry点击后,按F9执行,快速找到断点,将断点取消后,再按F9继续运行就可以得到了
然后点击 check 就得到了。
这就是爆破的方法。
参考文章:
详情参考:参考文章1
002
环境
与前面的一样。
程序分析
首先进行运行一下,发现它大概是一个什么类型的应用,所以就先查壳。
通过PEID查壳软件,进行查壳看的出来,这是一个没有壳的应用(因为我们可以看到他说他说VC编写的应用,所以应该就是没有壳的。)所以我们就把它放进OD里面看看,因为双击运行的时候可以运行,所以应该并不缺少什么DLL文件。
开始CrackMe
所以我们就右键单击应用程序然后使用od打开。
然后看得出这个还是挺乱的一些小方格。所以我们先点击那个C的按钮,查看主线程。
按下F9开始运行程序:
然后就发现这个应用开始运行了。我们随意的输入几个值进行试试。然后在输入错误有弹窗的时候,就将判断的过程给去掉,达到爆破的目的。
点击OK按钮提交,呈现出错误的地方。所以我们就需要暂停了。下图是弹出错误的窗口。
接着我们先不要将==确定==点了,我们先回到OD界面,按下F12或者点击菜单栏里的 调试->暂停(F12),将程序暂停。然后前往堆栈查看是否有类似的信息。
在按下暂停后,我们按下Alt+K (或者点击快捷菜单那里的K)查看堆栈里面有没有所需要的信息。
发现有两个的地址较为的相像(因为我不是很了解那个堆栈的地址为0012F298 的那个是什么地方的,所以也尝试着进去看了看,发现没有找到什么熟悉的片段,所以就先把它搁浅了),所以,接下来,我们点击最下面那个(因为我就在那里面找到熟悉的字符串的),
选择在堆栈中跟随地址,所以我们会跳转到这样的地方
我们就可以通过我们的肉眼观察到很多地方都有着一些熟悉的地方,而我们的目的也就是单纯的将判断的地方给跳过。反正我是这么想的。爆破他。
我们右键选择右下角那个堆栈的区域,然后右键跟随(在我看来,经过我做了两道题的经验,只有在有返回值的地方,就是有显示==返回到==的地方,右键的时候才会出现那个反汇编窗口中跟随,就是左上角的窗口来显示。)如图所示
接下来我们就点击几个错误的提示的地方,看一下他们从哪里跳转过来的。(可以从第二列的红色箭头看出来跳的起始和结束的位置)
所以呢很明显上面有着 “ you get it”,所以可以几乎有着很大的把握可以把那里直接给NOP掉,填充掉的意思吧。
然后我们按下F9运行,然后点击确定后,再进行提交。可以看见我们爆破成功了。
到这里大功告成了,这个是根据第一个,所以按照差不多的方法将它做出来了的。差不多两个爆破的想法都差不多。
小结
1 | 总结一下吧,可能对于OD的很多东西都不怎么会,像第一个是按照别人的教程一步一步的做的,观察每一步大概什么意思,然后自己也尝试着做一下。所以可能我懂得还是不多,不过还是慢慢的进步吧。 |
。。