Buuctf-Reverse(逆向) Crackme Write up

Posted 水番正文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buuctf-Reverse(逆向) Crackme Write up相关的知识,希望对你有一定的参考价值。

突然发现最近的文章都是日更了,啊呀主要是最近的题都学到许多新知识。

0x00 日常查壳

无壳32位

0x01 分析主函数

这题函数很多不过慢慢分析也还好 关键是要有耐心 还有一个重要的知识点就是反调试技术

一开始不了解阅读感极差 动调也看不出来什么

所以在主函数这个界面除了关键判断函数1830不用先去看 可以看完其他所有函数

于是在这先推荐看wiki的文章 看完再去看1830函数

NtGlobalFlag - CTF Wiki

0x02 分析关键函数1830

模块一

模块二

一开始没有反调试这个知识点根本看不出逻辑

分析一下现在得知的信息

1. 6050数据区是根据welcomebeijing得到的秘钥

2. pass是我们用户输入的数据 也就是flag了

3. key的数据已经得到下下图

那么就很简单了就只要得到6050的数据区就可以得到flag

0x03 动态获取6050数据区

观察代码可以看到6050数据区经过多次变动 动态来的方便

用52dbg打开

再拿x32dbg调试 将原来是je调成jmp跳过那段反调试代码

即可反复执行这块8次 即可拿到6050数据区的数据

0x04 GetFlag!

异或的特性

#include <stdio.h>
int main(void)
{
	int i;
	int user[] = { 0x2A, 0xD7, 0x92, 0xE9, 0x53, 0xE2, 0xC4, 0xCD};
	char key[] = "dbappsec";
	
	for(i = 0; i < 8; i++)
		printf("%x", user[i] ^ key[i]);
	
	return 0;	
} 

再拿去md5加密提交即可

GetFlag!

以上是关于Buuctf-Reverse(逆向) Crackme Write up的主要内容,如果未能解决你的问题,请参考以下文章

Buuctf-Reverse(逆向) Crackme Write up

Buuctf-Reverse(逆向) [RoarCTF2019]Polyre && SangFor(深育杯)-Reverse(逆向) XOR_Exercise Write up(代码片

Buuctf-Reverse(逆向) Zer0pts2020-easy strcmp Write up

Buuctf-Reverse FlareOn3-Challenge Write up

Android逆向系列文章— Android基础逆向

Android逆向-Android基础逆向(2-2)