逆向工程字符串 masking/obfuscating 函数

Reverse engineer a string masking/obfuscating function

我想取消屏蔽或取消混淆一段包含一些字符的 base64 编码字符串。

例如,我知道 VovL5SaV_iSBx6oAFGypsTCO 匹配 00000000。有没有办法知道更多的数据(输入和输出)来找出混淆字符串的算法?我找不到任何东西。

一些例子:

根据您提到的内容,加密似乎使用了分组密码: 关于你的块密码的一个 nive 属性 是块的加密不依赖于之前的那个,这并不总是正确的,(并且是非常糟糕的做法=对攻击者来说非常好),一个这样做的分组密码是: ECB:https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_.28CBC.29,如您所见,每次加密都使用相同的密钥,并且块密码可以等效于 XOR,允许猜测 decryopt 任何内容。检查长度超过一个块的尝试 f(00000000000000) 并查看模式是否重复。 如果不是这种情况,您可能会使用类似 CTR 的东西:https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_.28CTR.29 这里如果您设法计算,"key(i)"=blockcipher(key,nonce(i)) 用于使用 XOR 加密每个块再次 f(000000000000) 并找到 key(1), key(2)... 你可以稍后使用它们来解密你想要的任何东西。如果你能给我提供混淆的工具我也许能解密你想要的

鉴于你所说的和发表的评论,我会说是的,了解更多的数据对 [obfuscated/cleartext] 可以帮助你理解底层算法。

您将不得不分析各种属性,例如字符串长度和字符冗余,以及字节值偏移和小变化的变化(例如:将 000000 更改为 000001)此外,控制如果混淆的字符串是可预测的或可重复的。

最后,试试看能不能伪造自己的混淆文本,看看结果。这可以通过模糊测试来实现,并且可以帮助您以更积极的方式预测算法。

从你所说的来看,我会说这不是数据的安全块密码,而是一种替代。它可以是字节级的 ROT13 或 XOR,两者都带有一些填充(元数据?)。

请注意 _ 似乎充当分隔符:无法解码原样的字符串,但 _ 周围的两个部分都可以。

我很想帮你解决这个问题,但在 United States Digital Millennium copyright act section 1201 下这是非法的。也许在一个更自由的国家,有人会给出更好的答案。

1201. (1) A. No person shall circumvent a technological measure
that effectively controls access to a work protected under this title.