这并不是仅在 CyberChef 出现的问题,但由于它是一个主流工具所以就用它做例子了
今天在做一题题目时,需要把经过一连串编码后的 Flag 倒着解码回去,所以我用了 CyberChef 来解码,然后成功的出现了乱码,过了好一会才发现在到 ROT13 这一步时出了问题(原谅我对这部分没有什么经验)
题目的编码过程大概是这样的:

我傻傻的以为直接再用一次 ROT13 就能”翻转”回去,但问题就在这里,上方的过程实际上是根据偏移量 3 把字母移后了三位(如 A 变成 D),直接把输出再套一次 ROT13 不但不能解码,还会把字母再移后了三位,结果就是再 Base32 解出乱码
解决方法
既然编码过程是把字母以后,那其实我们可以在 Amount 里填入-3,就能倒着向前移动,亦或用一点基本减法,用 26 减去 3,输入 23 也是一样的效果(因为是 26 个字母嘛)
当然上述的方法只适用于已经知道偏移量的情况,如果不知道就可以用 ROT13 Brute Force 爆破看有效的结果
最后,其实 ROT13 自身是能直接翻转的(26-13 还是 13),但当漂移量不是 13 的时候就不能了




















