一、文件分析
- 直接运行该文件,随便输入一串序列,,提示error。
- 该文件没加壳,正儿八经的32位.exe可执行文件
二、解题思路
-
IDA 打开main(),主要流程如下,,
-
可以看到第27行有个scanf(),将输入内容放在&v11中,然后在第30行strcmp(),把输入内容和字符串‘oehnl3r=<?=hF@CCGPt’进行比较。
-
33-46中的if-else语句是判断结果,,但刚刚输出的是error,,源码中是‘l{{f{’,应该进行了某些加密或者替换操作。。
-
往上瞅,,for循环中每个字符都与9进行了异或运算,,
-
于是,
‘l{{f{’ ^ 9 = error
-
得到结果
-
验证下结果
-
FLAG——>flage:{4564aOIJJNY}
-
这里注意下,,Bugku上给出的格式是
-
按照它的格式来就行啦~~