宇宙第一魔王 发表于 2022-3-23 17:39

CrackMe160学习记录1 Acid burn

本帖最后由 宇宙第一魔王 于 2022-4-6 02:25 编辑

# 1 Acid burn

## 1.前期信息探查:

### EXEinfo:



### 运行一下:
首先会弹出一个弹框:

确定后就进入了主界面:

先看左边的用户名和密码模块,进去看一下:

尝试随便输一些东西:

然后是右边的序列号验证:



## 2.动态调试:

先分析右边的序列号(因为这个简单一点)

### 序列号验证功能:

当序列号输入错误时,会弹出一个对话框:”Try Again!!“
所以第一个想到的就是搜索参考字符串:

这里发现有两处”Try Again!!“,这让我有点异或,这里选择先跟过去看看有哪些地址引用了它:


我在两处都下了断点然后运行程序想看一下程序会停在那个地方,但可惜的是它哪都没停,之后我在下面找到了

我个人猜测这应该是识别错了,我转用x32dbg,就可以正常的的操作了。

可以看到验证序列号的字符串是第一个有两个感叹号的字符串,双击跟过去:
这部分的代码大概意思如下:42F4D0处的代码利用call跳转到序列号的判断函数,参数有两个分别在42F4CA,42F4CD处压栈保存,判断结果在标志寄存器里面,然后在42F4D5处jne(当ZF标志为0时跳转)对标志寄存器进行判断,也就是说这里判断返回的结果是否为0,为0,ZF置一,跳转至42F4F1处输出“Try Again!!”,结果为1,则输出"God Job dude !!”。


在42F4D0处下断点然后运行,选择Serial窗口,然后输入就以默认输入,之后直接F9,可以发现:

程序停在42F4D0处时,就可以看到调用函数验证时的两个实参的值了,第一个为我们自己输入的内容,另外一个就是真正的序列号字符串”Hello Dude!“

### 用户名密码功能:

根据之前收集到的信息得知用户名密码输错会报一个字符串”Sorry,The serial is incorect!“
还是一样直接搜索字符串,通过错误跳转处看引用其的条件跳转语句:

在42FAFE处下断点,然后进入程序的Serial/Name功能,随便输入一些东西

Check it后再看调试界面就能看到Serial了。

但这里不像之前的操作那么容易,一般既要输入用户名又要输入密码的话,密码可能是通过用户名计算的,这里尝试一下别的用户名


这两张图就说明了,这个序列好并不是固定的,而是通过用户名来计算的,而且这里还有个问题需要注意,下面这张图的用户名”hahaha“和之前的拿到Serial的用户名也不同少输入了一个ha,这里推测,Serial的值是根据用户名的前几位来计算的,下面主要分析42F4D0上方的汇编代码

但是粗略看了一下上面的代码量,果断先用ida分析一下算法
用ida可以看到,其实上面很多函数多引用了name里的参数,但是都没用到

回到汇编代码分析关键的几个点:

- 判断串长是否大于等于4



- 对name的第一个字符进行运算:



- 生成序列号进行比较:



## 3.写注册机:

之前我们确定了序列号的验证流程,用户名要求长度大于等于4,然后取出用户名的第一个字符,将它的Ascii码值与0x29相乘,然后乘以2,再将结果转成字符串,最后拼接成”CW- 结果-CEACKED“

```c
#include"stdio.h"
#include"stdlib.h"
int main()
{
      char str1 = "";
      char serialc = "";
      int fc_str1,seriali;
      
      puts("Please Input Your Name:");
      scanf("%s", str1);
      fc_str1 = str1;
      seriali = fc_str1 * 0x29 * 2;
      itoa(seriali,serialc,10);

      printf("CW-%s-CEACKED",serialc);
      
      return 0;
}
```

编译运行后搞一搞:

0xchuxiuyun 发表于 2022-3-23 19:49

学习了学习了

宇宙第一魔王 发表于 2022-3-23 21:26

第一次写,动态调试还是不熟练,要是有什么问题还请指正

tantalizing 发表于 2022-3-24 00:17

介是嘛呀 厉害

Grav1ty 发表于 2022-3-24 14:50

顶,lz持续更新嘛

宇宙第一魔王 发表于 2022-3-24 16:56

Grav1ty 发表于 2022-3-24 14:50
顶,lz持续更新嘛

会的,今天就会更新

nayiye00 发表于 2022-3-24 18:50

课件里的软件链接呢?

宇宙第一魔王 发表于 2022-3-24 19:26

nayiye00 发表于 2022-3-24 18:50
课件里的软件链接呢?

我是按照这个师傅的帖子学的:
https://www.52pojie.cn/thread-709699-1-1.html

chenyiqq2008 发表于 2022-4-8 14:59

大神呀。厉害的哥
页: [1]
查看完整版本: CrackMe160学习记录1 Acid burn