https://buuoj.cn/challenges#[GUET-CTF2019]number_game
64 elf
在 0 到 4 之间
输入 0 到 4 的十个数字
递归建立全二叉树
更改数据结构
分析下一个函数
发现又是两个递归,有点像中序输出
从后面的数据流看出,这里的目标是存储到 a2 里面,所以把 a2 看成是数组
回到主函数,发现 v8 v9 都没有用,推测输入的是存在栈上的数组
整理一下数据结构
用脚本推回去 dump 里所有元素,再对应到树上,根据中序输出和确定个数的完全二叉树推出前序就能做出来
但是从更高角度去理解,当出现循环嵌套的时候,要及时意识到这可能是二维的东西,是一个用一维数值实现二维操作的 trick
就比如说这题,就是 5x5 的表要求行和列上的元素互不相同的意思,其实就是一个另类的数独
14#23
30#1#
0#23#
#3##0
42##1
---
14023
30412
01234
23140
42301
0421421430
知道是中序转前序,用动调输入 0123456789 得到变换 7381940526 (set IP)
1134240024