逆向工程实战--Acid burn

0x00 序言

这是第二次破解 crackme 小程序,感觉明显比第一次熟练,破解过程很顺利,几乎是分分钟就可以找到正确的 serial,但是我们的目标是破解计算过程,下面将详细介绍。

0x01 初次运行

刚开始拿到 crackme 先运行程序,看看有哪些明显的特征,或者有哪些任务需要完成:

双击程序后弹框,显然第一个任务就是把这个框框弄掉,我们继续运行:

这个小程序比上次的要复杂,有两个 serial ,我们先看看左边的:

不出意外,猜错了,有明显的弹框和失败字符串作为特征,我们接着看右边的:

不出意外,再次失败,依然是弹框。

0x02 开始调试

1、明确目标

通过上面的运行分析,我们需要干掉第一个弹框,以及后续的两个 serial 。同时我们发现三者的共同特征为弹框,所以首先拦截弹框函数:

右键代码区选择 “serach for” => “All intermodules calls”:

在新窗口中输入 messageboxa,右键,选择”Set breakpoint on every call to MessageBoxA”:

这样我们就给所有调用弹框函数的地方下了断点,接着回到代码区运行程序。

2、调用者

按 F9 执行到弹框函数处,我们发现此时的栈顶就是第一次弹框时的字符串的地址,于是我们需要找到那个调用弹框函数的函数,叫做调用者。这里我们往上看,找到当前这个函数的入口并下断点:

然后我们 Ctrl + F2 重新载入程序,F9 执行到刚才下断点的入口:

此时栈顶就是调用者执行call指令时保存的返回点,我们在代码区中查找这个地址(42F79C),注意单击代码区,按 Ctrl + G 进行查找:

看见了吗,就是这个函数,只有几句代码,下面我们就来消灭它。

3、去掉弹框

调用了函数才会弹框,我们的想法就是让它不调用函数,那么直接让函数返回是最简单的方式,于是我们把函数入口处的第一条指令改成RETN 即可:

单击指令,按一下空格键可以修改:

此时我们可以把修改保存到文件中:

右键指令,选择 “Copy to executable” => “selection”:

在新窗口中右键选择 “Save file”:

然后保存:

运行新的程序发现第一次的弹框成功消失。

4、破解右侧serial

接下来我们转到右边的 serial,输入任意字符串,然后点击按钮:

我们发现程序停在了弹框函数的入口:

此时栈顶的值就应该是上级函数的返回地址:

我们继续在代码区搜索此地址(42F509):

发现了吗,有判断条件,可以看出是字符串比较函数,我们设置断点,F9 运行到底后重新点击按钮:

程序停在了断点处,看看栈区,发现给函数的参数中的字符串:

破解起来确实很轻松,字符串是固定的:Hello Dude!

5、破解左侧 serial

我们继续运行,转到左侧,输入任意字符串后点击按钮:

根据刚才的方式找到调用者返回地址:42FB37

查找代码区:

发现字符串比较函数并下断点,此时查看栈区:

再往上看代码区:

我们可以推测出 serial 是 “CW-” + 某个数 + “CRACKED”,中间的数是我们需要找的目标。

6、真实的目标

我们给 serial 生成函数的入口下一个断点,然后重新点击按钮运行到断点处 F8 单步走:

中间发现两段代码:

EAX = name[0] * 7 + name[1] * 0x10;
EAX = name[3] * 0xB + name[2] * 0xE

继续向下运行,发现另外一段代码:

函数入口的下面有一句不起眼的代码:

两个结合起来就是:

EAX = name[0] * 0x29 * 2;

后面我们发现调用字符串输出函数之前 EAX 的值被置为那个内存单元的值:

继续往下调试结果就很明显了,第三段代码才是我们要的。

0x03 双重检测

1、简单粗暴的 C语言

代码如下:

#include <stdio.h>

int main()
{
    char name[1024];

    printf("Input your name: ");
    scanf("%s", name);
    printf("Serial: CW-%d-CRACKED\n", name[0] * 0x29 * 2);
    return 0;
}

运行结果:

2、原程序检验

0x04 总结

这个小程序左边的 serial 和 name 的第一个字符有关,并且字符串长度不能小于4.

时间: 2024-10-10 12:13:52

逆向工程实战--Acid burn的相关文章

逆向工程实战分享

逆向工程实战分享 本文转自移动开发:http://mobilev5.github.io/2016/03/24/crack-share/ 原作者:金山 逆向工程一般说来就是在没有源代码的情况下,通过一定手段分析软件结构,挖掘出有用的信息或绕过软件自身的一些限制.目前对逆向的研究主要集中在Windows, Android,Mac和iOS这几个平台,各平台的发展也参差不齐. 对Windows平台的研究可以追溯到win32时代,因此目前发展比较成熟,而且拥有大量的工具和插件,比较有名的工具如ollydb

逆向工程实战——互动出版网

这篇是计算机类的优质预售推荐>>>><逆向工程实战> 逆向工程领域先驱Rolf Rolles审校并鼎力推荐:包含针对真实病毒和后门程序的练习和实验 编辑推荐 探索独特的逆向工程系统化方法,包含对真实恶意软件的分析 覆盖三个最流行的处理器架构(x86.x64和ARM) 提供针对真实后门程序的综合练习 讲解复杂的代码混淆技术 探索高级调试技术,实现逆向工程过程的自动化和高效化 内容简介 本书是一本涵盖x86.x64 和ARM 操作系统的逆向工程类图书,由浅入深地讲解了包括W

逆向工程实战--Afkayas.1

0x00 序言 去年玩了几个月的渗透测试,当初觉得很高端的样子,现在看来不过都是些小把戏,于是开始折腾逆向工程.学习过程中参考的是<逆向工程核心原理>这本书,讲的很详细,按照上面的步骤破解了几个crackme,然后自己在网上找了一些程序来玩,第一次独立成功破解Afkayas.1,有点兴奋,于是将破解过程记录下来,算是一个开启逆向工程大门的里程碑吧. 0x01 准备 玩逆向工程需要至少一个调试工具,这里我推荐OllyDbg.还需要一些小程序,可以利用已有的 CrackMe 小程序. 0x02 初

160个CrackMe 001 Acid burn

首先PEID查壳 Delphi,没有壳就好说了,OD起来语言关系并不太大. 首先,运行发现有一个nag,一个key,一个name/serial,一个一个来.具体瞎网上输入去看对话框什么的我就不扯了... Nag: OD运行起来,F8或者shift+F8,找到这几个CALL的作用 在第一个nag弹出的位置下断,F9过去,之后进入Call中. 不断利用F8去找弹出Nag的具体位置,这题挺坑,跳转比较多,耐心一点,最后找到这个MessageBoxA函数的位置. 把这个MessageBoxA全部nop掉

Crackme--Acid burn(第一个程序)

Crackme : Acid burn.exe 难度系数:★ 工具: Ollydbg(OD)  中文版 运行 Acid burn.exe 首先打开OD 加载 Acid burn.exe 输入错误的注册名和密码 提示Sorry,The serial is incorect!(对不起,序列号错误!) 打开OD-->插件-->中文搜索引擎-->搜索ASCLL   快捷键ctrl+F 搜索字符串Sorry,The serial is incorect!的所在位置 双击进入CPU窗口,这里的地址为

网络安全学习资料汇总

一.Web security 1. <http权威指南>[图灵出品]:  深入理解web http/https协议 ,了解超文本传输协议是如何进行传输和编译的. 2. <javascript权威指南>:淘宝前端团队翻译,深入了解前端js变量,注释,函数,表达式等,学习xss必备书籍.还提及了jquery类库. 3. <xss跨站脚本攻击与防御>: 学习xss基础必备.也是目前国内唯一一本专门介绍xss技巧的书籍. 4. <白帽子讲web安全>:  阿里安全专

值得细细品读的URL资源

Web安全渗透方面的资源指南: 知乎综合问答:https://www.zhihu.com/question/21914899 渗透测试经典演练系统:http://www.freebuf.com/sectool/4708.html 小书屋技能树:http://www.xiaoshuwu.net/skill/ 小书屋导航:http://www.xiaoshuwu.net/navi/ 安全技能:https://www.sec-wiki.com/skill Sec-News:http://wiki.io

8月书讯:喜悦翩然而至

阵雨过后,清风拂面,白云被吹散,天空是干净的水洗蓝,一抬头,彩虹占了半边天,喜悦无法形容--生活中,有些美丽就是如此简单,亦是那样偶然.总有风雨,也会有彩虹,不过,首先,我们要经常仰望天空. 1.特别推荐--完美阐释Linux系统的工作原理 Linux畅销书作者Brian Ward力作 Linux&UNIX系统管理类NO.1 风趣幽默,广受好评 <精通Linux(第2版)>讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令.根据系统启动的大体顺序,本书更深入地

顶级黑客标配图书

逆向工程基础 + Android + iOS + Web应用,安全类天团配置,给你最好的安全指导! 1.韩国逆向分析龙头作品<逆向工程核心原理 > 作者:李承远 译者:武传海 审校:金虎 书号:978-7-115-35018-3 定价:109.00 元 开本:16 页数:700 韩国逆向分析领域龙头之作 初上市即连续5周蝉联韩国IT图书榜TOP10 本书内容讲解非常细致,涵盖了从恶意代码分析基础知识到高级技术的全部内容,系统而有条理,语言简洁,通俗易懂,并在讲解中选配了恰当的示例程序,使内容更