gpt4 book ai didi

java - 解码自定义加密文件

转载 作者:行者123 更新时间:2023-11-30 10:52:08 26 4
gpt4 key购买 nike

我目前正在处理旧游戏的保存文件。我的问题是该文件是使用自定义算法加密的。我只有一个模糊的描述:

“通过添加 39393939 然后将每个 DWord 向右旋转 5 位来加密文件。”

我试图在每个 4 字节 block 上用这个 java 代码反转进度 ()

private static byte[] decryptDWord(byte[] in) {
//in is 4 bytes

IntBuffer buf=ByteBuffer.wrap(in).asIntBuffer();
int dword=buf.get();
dword=Integer.rotateLeft(dword, 5);
dword -=0x39393939;
byte[] out = ByteBuffer.allocate(4).putInt(dword).array();

return out;
}

但是应用于 0x70, 0x4E, 0x33, 0x43 它应该给我 0x73, 0x63, 0x30, 0x2E0x74, 0x60, 0x33, 0x03 应该给 0x73, 0x63, 0x34, 0x20

最佳答案

尽管 word大小取决于机器,在这种情况下 DWORD 很可能是 4 个字节长,因此在 java 中它对应于 int。此外,您必须考虑到原始架构可能是 LSBMSB在位和字节这两个术语中,因此将单独的字节自己打包到“int”中,可能会改变位的顺序:总共 4 种不同的组合。然后你首先需要向左循环5位,然后减去39393939。'解密'后你可能需要恢复原始字节/位顺序。

关于java - 解码自定义加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com