看到题目为fuck,想到有一种加密方式为brainfuck,这里我们要了解一下经过brainfuck加密后的字符为什么样子。
实际上,Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf**k,甚至被简称为BF。
这就是一个语言,但它不像C++那么多元化,但难度也一定的增加,因为它只有8种关键字。
加密之后就长下面这个样子:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
8种关键字分别是> < + - . , [ ]
> | 指针加一 |
< | 指针减一 |
+ | 指针指向的字节的值加一 |
- | 指针指向的字节的值减一 |
. | 输出指针指向的单元内容(ASCII码) |
, | 输入内容到指针指向的单元(ASCII码) |
[ | 如果指针指向的单元值为零,向后跳转到对应的] 指令的次一指令处 |
] | 如果指针指向的单元值不为零,向前跳转到对应的[ 指令的次一指令处 |
打开题目后发现长这个样子
发现全为数字和字母,想到十六进制,想到是由hex编码后的,所以用解码器解码,我用的是CyberChef。
也是字母和数字,但字母远远多于数字,猜测是base32加密后的。
补充一个知识点:
- Base16:结尾没有等号,数字要多于字母;
- Base32:字母要多于数字,明文数量超过10个,结尾可能会有很多等号;
- Base58:结尾没有等号,字母要多于数字;
- Base64:一般情况下结尾都会有1个或者2个等号,明文很少的时候可能没有;
- Base85:等号一般出现在字符串中间,含有一些奇怪的字符;
- Base100:密文由 Emoji 表情组成
到这里就可以明显的判断出经过brainfuck加密了。我用的是BugKu里面的工具,用其他在线的也可以。
得到flag。