zoukankan      html  css  js  c++  java
  • 一次练手实战破解某字典–爆破篇

    i春秋作家:Bug制造机

    背景

    额,最近电脑出问题,准备格盘,翘了选修回来准备重装,打开了某个文件,发现有个名为:比crackme难一点的压缩包,如果没记错的话,是一个学长曾经发的小挑战,当时没能完成,为了把以前的坑给填上,于是决定玩一下

    试运行 猜测验证方式

    一般 拿到 Crackme 先试运行,看看它是个啥,然后注册的情况是个啥。
    打开后,注册页面如下:

    image.png

    输入假注册码

    点击注册后:

    image.png

    有一丝丝尴尬,就是这软件不是即时验证通过的,下一次启动时才会验证。那意味着应该是把注册信息存到了电脑上然后重启时验证。

    存储的方式(了解的有这几种):

    • 本地文件(可能)
    • 注册表(可能)
    • 网络服务器(不太可能,这软件比较Low)

    IDA静态分析

    查看导入表

    image.png

    如果对注册表有了解,也是用过注册表编辑器,regedit 这玩意儿,应该看到这几个会有点感觉,他们是不是操作注册表的函数?
    或者如果不熟,直接上网上搜 操作注册表的api查看相关资料在和导入表中比对。

    这里放一个连接
    windows常用函数注册表操作函数

    不懂的可以查阅

    导航进入关键代码块

    IDA有很强大的导航功能,点导入表中的项(我点的RegQueryValueExA)就会来到这个页面:

    image.png

    关于这个页面,你可以理解为:
    IDA分析完二进制文件后,这个二进制文件使用了的常量数据和函数的一个汇总的地方,并且这个地方记录了,那些代码块使用了它(在IDA权威指南中这个术语叫交叉引用,这个功能很强大)

    codexref:这个是代码交叉引用(就是那个代码块,调用了这个函数)

    dataxref:这个是数据交叉引用(就是那个代码块使用了这个数据)

    看我画圈的地方,codexref冒号后面是调用它的代码块的哑名(IDA为一个代码块自动生成的名字而已),点它来到这个页面:
    image.png

    直接F5吧:

    image.png

    简单描述下这些东西的作用(自己分析的话,看我上面给的文章链接,去读这些代码)
    打开HKEY_CURRENT_USER里的注册表—-然后取对应名称的键值到对应变量—根据取指的不同,然后返回结果。

    这样分析过后,猜测,这个其实就是在取我们之前假注册的用户名和注册码,准备下一步的验证。

    为了再验证下,直接到注册表HKEY_CURRENT_USER中去搜索下用户名,然后你就能看到下面的这些东西。

    image.png

    返回到链接文字 汇编代码页面按下空格转到GRAPH模式,如图:

    1513246130-886131-tim20171130222356.png

    然后

    点我画圈的地方,看哪个代码块调用了这个取用户名密码的函数,极有可能调用完后在那个代码段中就会有验证的操作

    如图:

    1513246086-722052-tim20171130222609.png

    点进去,来到调用它的地方,然后f5吧。

    如图:

    1513246021-69662-tim20171130222702.png

    打钩出为,之前分析的函数。

    然后调用了一些函数,然后有个if验证比较。稍微留点心,看看传给我们之前分析的函数的参数你就能知道这里干嘛了,就能发现这里其实在对flag操作了。

    然后通过对if里面的进行比对,然后跳转分支到已注册和未注册的执行流中去
    为了验证,上调试吧。

    在汇编界面查看那个判断的地址的偏移地址然后OD中Ctr+g哪儿下个断点,然后运行,就在哪儿停下了,然后你单步分析下,没注册的时候是直接跳转的。

    那你把它nop掉 不让它跳转即可。

    如图:

    1513245968-609611-tim20171130223906.png

    然后直接运行。

    1513245870-709326-tim20171130224025.png

    然后验证成功!保存下就可以了。

    接下来就是逆向验证算法了,详情请一次练手实战破解某字典之注册机篇

    文章写得比较啰嗦,是希望能对逆向这条道路上挣扎的新手尽一点绵薄之力,个人学习逆向还是很苦逼的,建议顺着我的思路去复盘下,也希望看完这篇文章的朋友能够在实战中举一反三。

  • 相关阅读:
    HDU 2116 Has the sum exceeded
    HDU 1233 还是畅通工程
    HDU 1234 开门人和关门人
    HDU 1283 最简单的计算机
    HDU 2552 三足鼎立
    HDU 1202 The calculation of GPA
    HDU 1248 寒冰王座
    HDU 1863 畅通工程
    HDU 1879 继续畅通工程
    颜色对话框CColorDialog,字体对话框CFontDialog使用实例
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/8808687.html
Copyright © 2011-2022 走看看