
下载题目附件,得到一个 NoString.exe ,打开后要求我们输入flage。输入错误的话提示是 error

先将其拖进 exeinfo 看看是什么成分,确定是32位的

打开32位的 ida 并将其拖入
直接按 f5 进行反编译

看看代码逻辑,因为在前期观察中发现程序需要接收用户输入,因此着重分析输入相关的函数逻辑。很快能定位到:scanf 接收的输入会存入v11,程序先对v11的每一位字符异或9,再将异或后的结果与 IDA 自动生成的变量名"aOehnl3rHfCcgpt"所指向的原始字节值"oehnl3r=<?=hF@CCGPt"进行字符串对比。


写个 python 解密脚本
python
target = "oehnl3r=<?=hF@CCGPt"
flag = ""
for char in target:
flag_process = chr(ord(char) ^ 9)
flag += flag_process
print(flag)
得到
python
flage:{4564aOIJJNY}
打开附件给的程序

输入解密脚本解出来的flag,只是显示了"right",没有其它东西了。

直接输入到提交框中显示的却是错误

看了眼描述

修改一下形式提交就能过关
python
flag{4564aOIJJNY}
