根据 物华弥新解包求助 - #57,来自 AXiX_Official 大佬发的
import sys
if name == ‘main’:
inPath = sys.argv[1]
outPath = sys.argv[2]
with open(inPath, ‘rb’) as f:
data = bytearray(f.read())
key = data[51]
for i in range(50, 115):
data[i] ^= key
with open(outPath, ‘wb’) as f:
f.write(data)
并结合VivaLaze大佬的指点
本人实际操作后大致总结:
官方的加密大概是每次多加密一个字节,密钥和加密位置的首字节不变,也就是
key = data[51]
for i in range(50, 115):
里面的51和50两个值不变,只需要修改"115"的数值,具体改成多少可以通过二进制查看游戏文件