下载附件,解压得到文件,查壳,无壳,拖进IDA,shift+F12查找字符串
发现可疑字符串,点击跟进调查,空格进入框图,F5查看伪代码,有
发现是异或运算,且我们输入的字符串经过异或后要和v4比较,从而判断flag是否正确,且易得flag的长度为38,编写反异或代码,c语言实现如下
#include <stdio.h>
#include <string.h>
int main()
{
int i,j;
char a[] = "LQQAVDyZMP]3q]emmf]uc{]vm]glap{rv]dnce";
j = strlen(a);
char b[j];
for ( i=0;i<j;i++ ){
b[i] = a[i]^2;
}
printf("%s", b);
return 0;
}
运行得到
在结果最后补上},得到flag:NSSCTF{XOR_1s_good_way_to_encrypt_flag}