Buuctf-Reverse(逆向) Crackme Write up
Posted 水番正文
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buuctf-Reverse(逆向) Crackme Write up相关的知识,希望对你有一定的参考价值。
突然发现最近的文章都是日更了,啊呀主要是最近的题都学到许多新知识。
0x00 日常查壳
无壳32位
0x01 分析主函数
这题函数很多不过慢慢分析也还好 关键是要有耐心 还有一个重要的知识点就是反调试技术
一开始不了解阅读感极差 动调也看不出来什么
所以在主函数这个界面除了关键判断函数1830不用先去看 可以看完其他所有函数
于是在这先推荐看wiki的文章 看完再去看1830函数
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