首先查个壳,如下浅看一下没有壳,64bit,直接拖进ida64中进行反编译进入main函数,进行代码分析,打上注释,大概也就图中分析的这么个简单逻辑,双击enflag然后给他复制提取出来,再按tap返回,我们进入encode函数分析同样,打上注释进行分析,最后上代码
#include<stdio.h>
int main()
{
char a2[]="izwhroz\"\"w\"v.K\".Ni";
int key=18;
for(int i=0;i<key;i+=3){
a2[i]=(key^a2[i])-6;
a2[i+1]=(key^a2[i+1])+6;
a2[i+2]=(a2[i+2]^key)^6;
}
puts(a2);
return 0;
}
运行即可得到flag,这边有个点啊,输入一整个字符数组,建议用函数puts(),这个题目难度一般,只要c语言底子可以,能分析的出代码意思,那就不难做出来了,最后得到的结果为unctf{b66_6b6_66b}