**
Mysterious
**
这道题目通过字符串可以确定关键代码
稍做分析可以确定主要是利用了atoi()函数的特性
int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0。特别注意,该函数要求被转换的字符串是按十进制数理解的。
可以判断出来输入恰好六位 后三位很容易确定为xyz
前三位的话是十进制的“{” 也就是123 记得减1 也就是122
最后确定为122xyz
最终答案:flag{123_Buff3r_0v3rf|0w}
**
re-for-50-plz-50
**
下载文件,直接用IDA打开
懵逼了……
经过学习,了解到MIPS是一个指令集。
不了解MIPS,学习去。
分析主要的函数,给我的大致感觉是异或,因为有字符串
编写脚本:
s = "cbtcqLUBChERV[[Nh@_X^D]X_YPV[CJ"
num = 0x37
for i in s:
print(chr(ord(i)^num),end="")
得到答案:TUCTF{but_really_whoisjohngalt}
这道题说起来不难,就是考察你对MIPS指令集的了解,但是要是不会MIPS,就去学一下吧。