[MoeCTF 2021]EinfachRe (异或)
Sha0_s1
编辑于 2023年10月09日 04:49
收录于文集
共26篇

分析主程序发现enflag就是最终的加密后做对比结果,所以我们要拿到这个值

双击进入发现是dd offset aD 定义的内容要跳转到aD里面,就是此时aD的内容就是enflag的内容

再双击aD内容,发现一串字符串,又ascii码和十六进制组成的。

最后的ascii转十六进制数据0x28,0x15,0x3A,0x1B,0x44,0x14,0x06

分析主程序,发现是将第7个也就是一开始就异或{,然后接着就是后面的内容异或,所以我们要起步就异或{,将moectf{写到异或的里面开始异或,这样就可以出后面的值了。

上代码

代码块
JavaScript
自动换行
复制代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
	char ks[] = {0x28,0x15,0x3A,0x1B,0x44,0x14,0x06};
	char flag[] = "moectf{";
	for (int i = 0; i <= 6; i++) {
		printf("%c", flag[i]^ks[i]);
	}
	
}
复制成功

     得到flag

moectf{Ez_x0r}