helloRe:
ida直接出答案,过~
brainfucker:
提取下代码:
试着分析第一行:用到data[0]位和data[1]
, 表示输入一个字符到data[0]
表示ptr下标+1
< 表示ptr下标-1
- 表示data[0]或者data[1]的值+1
-
表示data[0]或者data[1]的值-1
[ ] 括号和括号要匹配
. 表示输出当前data[0]或者data[1]
有题目可以知道[+.]表示不会被运行,所以所指向的内存区域为0,即data[0] = 0或者data[1] = 0。
这题本质就是考察阅读代码的能力,甚者让我有了一股自定义函数的冲动(以后可以出考核题)
那么第一行就出来了:
后面的以此类推:得到flag:bR4!NfUcK
xor:
这题上来看到一堆数字直觉转成字符串,直接R,小端序存储的,貌似是flag:
flag:hgame{Y0u_mayb3_need_th1s_0ne!!!!!},好的事实证明是fake的flag
没那么简单看来:继续往下分析,把数字转成数组常见操作之一
很清晰的逻辑,直接异或,答案就出来了(在这里咩有提取出来的数,默认是0,刚开始看到数组下标不齐,想起来是肯定是0,被ida优化了而已)
直接上脚本:
答案:
最后一题:矩阵乘法(ɒɎɑɐɏ日语)
这题分析逻辑,会发现是矩阵的乘法运算,提取数据,直接算: