Mysterious与re-for-50-plz-50

**

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,就去学一下吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值