我目前正在处理旧游戏的保存文件。 我的问题是该文件是使用自定义算法加密的。 我对它只有一个模糊的描述:
"通过添加39393939对文件进行加密,然后将每个DWord向右旋转5位。"
我试图在每个4字节块()
上使用这个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, 0x2E
而0x74, 0x60, 0x33, 0x03
应该给0x73, 0x63, 0x34, 0x20