160个Crackme之001 Acid_burn

1.概述

作者:Acid burn
难度:★
保护方式:Nag,Name/Serial,Serial

运行Acid burn.exe,启动界面如下:
在这里插入图片描述
![hello you have to kill me! Welcorne to this Newbies Crackrne nude by ACiD BuRN Crac:KerWoRlD1

要将上面的对话框去掉

在这里插入图片描述

点击按钮Serial/Name,进去要求输入用户名和序列号:

在这里插入图片描述

点击按钮Serial,进去要求输入序列号:
在这里插入图片描述

2.Serial/Name

它有两个按钮,一个是Check it Baby,另一个是I give Up。随便输入个用户名和序列号,显示如下图:

在这里插入图片描述

如果输入错误,会弹对话框,字符串“Sorry,Theserial is incorect”可以作为一个线索,

使用OD加载程序,运行程序,使用OD中的字符串插件找到字符串,双击跳转过去,找到函数开始的地址,打断点。

重新在OD中运行程序,在name栏输入“tutucoo”,在serial栏输入123456789,点击确定,程序断在了0x42f9a9处,下面有很多个CALL,估计算法包括在中间,先不急着分析每个函数,先猜一下函数的作用是什么。
在这里插入图片描述

在这里插入图片描述

通过分析,序列号是根据用户名计算得来的,而用户名规定必须大于4个字节,本例输入tutucoo,算法得出的正确序列号是"CW-9512-CRACKED",CW和CRACKED是固定的,中间的数字是通过计算得来的,具体算法如下(以tutucoo为例):

1.0x74*0x8-0x74=0x32c,0x74是用户名第1个字符t的ASCII码

2.0x75*0x10+0x32c=0xa7c,0x75是第2个字符u的ASCII码

3.0x75*0xb=0x507,0x75是第4个字符u的ASCII码

4.0x74*0xe=0x658,0x658+0x507=0xb5f=2911,0x74是第3个字符t的ASCII码

5.0x290x740x2 = 0x2528 = 9512,0x74是首字符的ASCII码,0x29和0x2都是固定的

前面4步貌似没有什么实际用处,通过第5条公式可以直接计算出结果。

3.Serial

在这里插入图片描述

输入12345678后点Check it Baby,出现错误:

在这里插入图片描述

用OD加载,找到字符串"Try Again"跳转到代码处,往上找到函数的开始处打断点,运行程序后,重新输入12345678后点Check it Baby,程序断下。

在这里插入图片描述

在这里插入图片描述

下面是核心算法
在这里插入图片描述

看到这里直接试一下字符串"Hello Dude!"是否是正确的序列号

在这里插入图片描述

果然没错

4.去掉弹窗

程序刚启动时有个弹窗,既然要去弹窗就要找到调用MessageBoxA处,然后patch掉就可以了。

用OD加载程序,命令窗口执行bp MessageBoxA,运行程序,程序顺利断下。

这时断在了系统领空,点k按钮打开调用堆栈窗口:

在这里插入图片描述

跳转到它的调用函数处,选中代码右键->二进制->用Nop填充

在这里插入图片描述

然后右键->复制到可执行文件->选择,会出现下面的弹窗,选择是

在这里插入图片描述

点右上角的关闭,保存到文件选择是,系统会弹出另存为对话框,保存到本地。

在这里插入图片描述

运行patch到本地的程序,弹窗已经不见了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值