过程:
1.下载 得到一个无后缀文件、
2.拖入exeInfo 是64位
3.打开IDA64 SHIFT+F12 查看字符串
看到有和flag相关的字眼 点进去看
4.F5查看伪代码
观察 发现f1 f2两个被连接到了s上并打印出来 这可能就是最终的flag
查看f1字符串 为:"GXY{do_not_"
分析switch的代码 发现似乎是case4和case5比较关键
将31行代码转换为字符串并变为小端序 为icug`ofF\x7 33行又将f2与s连接 所以f2为 "icug`of\x7F"
分析case5 是对f2的操作 上代码:
#include <stdio.h>
int main(void)
{
char f2[] = "icug`of\x7F";
for (int j = 0; j <= 8; ++j)
{
if (j % 2 == 1)
{
f2[j] -= 2;
}
else
{
--f2[j];
}
}
printf("%s", f2);
return 0;
}
运行得出结果:
将f1大括号后和f2大括号前连接 得到flag: flag{do_not_hate_me}
结束。