zoukankan      html  css  js  c++  java
  • Crackme_4_ajj.1

    在打开文件之前,我们看到文件夹里有一个txt文件:

    打开之后,是一个类似于日记的提示:

    上面说了使用Delphi写的,没有确定键,并且做了一些小手脚。具体是什么小手脚,没说,那我们只有进去看一下了。

    首先是查看文件,打开之后会发现的确没有确定键,只有允许输入name和serial,然后我们输入假码:

    提示“如果注册成功,程序中就会出现‘朱茵’小姐的一幅靓照”。

    看样子程序就是这样了,我们还是先看一下程序的信息:

    delphi,无壳。

    因为这个是Delphi,所以我们今天使用一个新的工具:dede(Darkde4),这是一个专门针对delphi的工具。

    使用dede打开后,看到过程:

    这里面可以看到这个程序所用到的一些事件,其中一个叫做chkcode(cheak code)的事件,十分的突出。我们记录下它的地址,到程序里去看看:

    输入假码后,程序被断在了chkcode的段首.

    我们单步往下,看看有没有什么值得注意的信息:

    往下的过程中,不断出现新的字符串,然后将这几个字符串和我们输入的name连接到了一起:

    其实到这里我们就可以大胆猜测,这个就是真正的serial了:

    我们输入完成了,但是并没有跳出图片,这是为什么呢?

    莫非是serial错了?使用od继续往下面看,但是并没有找到有实际价值的字符串,这一定是我们哪里的信息看漏了。

    我们继续回到dede,查看框体:

    可以看到图片现实的地方是一个panel1事件:又在右边panel1的事件中,我们发现不仅有这个图片框的基本信息,还有两个click(点击),其中一个是dblclick(double click)。莫非,要显示这个图片,不仅仅需要serial,还需要点击这个图片位置吗?我们打开程序,输入name和serial,然后点击图片位置,果然出现了:

    serial是找到了,但是还有一个疑点,serial的构成是:“黑头Sun Brid+16+[dseloffc-012-OK]+name”,

    那么我们重新输入一个name呢:

    发现随便怎么点,图片就是不出来,这是为什么呢?进入od我们可以得知,那个数字16,不是一个固定的字符串,而是一个变动的变量,是会根据name改变的,改变的规律为“name的长度+5”

    最后总结

    这是crackme的第四题,这道题是静态工具和动态工具的一次结合,由静态工具提供事件、函数,而后用动态工具进行调试。这种经验可以更多的运用在C的程序上,毕竟ida是可以查看伪代码了解程序的运行逻辑的

  • 相关阅读:
    寒假作业1实践题
    寒假作业1问答题
    (1.21)思考题
    [golang note] 匿名组合
    [golang note] 类型系统
    [golang note] 错误处理
    [golang note] 函数定义
    [golang note] 流程控制
    [golang note] 内建类型
    [golang note] 数组切片
  • 原文地址:https://www.cnblogs.com/lex-shoukaku/p/13255412.html
Copyright © 2011-2022 走看看