我有一个从 Internet 中提取一些 JSON 定义文件的应用程序。在以前版本的应用程序中,这些文件是真正的 json 文件;现在,在更高版本中,它们似乎被加密/混淆了。现在下载的文件似乎是 base64 编码的;解码它们会导致二进制文件Salted12在它们前面有字符串加上 8 个更多的 ascii 字符。
例子:
Salted12OBWfTKpl<B4>{J<E0> <D1>...
Salted12DPEPlodlks^Q^H]^Q<88><A6><D5>...
Salted12WeuyYPkh<D6>"<F9>^I^_6^Q<AB><ED>^Y
Salted12hJhPiiUX<E7>Yu<D9><DB><9F><D9><BD>
我假设额外的 8 个字节是某种加密密钥(或者,可能前 16 个字节是密钥,开发人员选择固定前 8 个字节)
将旧版本 json 文件的大小与新文件的大小进行比较表明新文件未压缩,并且在标头字节之后进行了 1:1 字符加密:
File old size new size
1.93.json 10999 10864
edit.json 2135 2160
next.json 252 976
(所有文件的字节数变化并不相同,但由于新版本的内容可能已更改,这是可以预料的)。
现在我的问题是:是否有一个标准的、“众所周知的”库/框架可以像这样混淆 JSON,或者我是否必须反转应用程序以找出加密的工作原理?