You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中解密无IV的AES加密游戏JSON文件?

游戏JSON文件解密问题求助
  • 个人用途修改游戏(开启鼠标控制、移除菜单/对话限制),需解密游戏内的JSON文件
  • 目标JSON文件打开显示乱码,尝试Shift JIS编码转换无效
  • 在游戏目录找到Decryption.js文件,包含256位AES密钥decryptionAESKey和长字符串decryptionSource,不清楚后者用途
  • 尝试用Python的cryptography和PyCryptodome库做AES-CBC解密,先后遇到数据长度不是块长度的倍数及多种编码解码错误;已假设Hex编码、CBC模式、PKCS7填充,仍无法解决
可行的解决思路
  • 先排查decryptionSource的作用:它大概率是CBC模式需要的IV(初始化向量),先尝试将其Hex解码或Base64解码为字节,作为解密的IV参数
  • 检查加密文件的结构:用十六进制编辑器查看文件,确认是否存在自定义文件头(比如固定长度的前缀),如果有,需先截取掉头部再进行解密
  • 确认密钥的正确转换方式:确保decryptionAESKey转换为正确的字节格式——如果是Hex字符串,用bytes.fromhex(decryptionAESKey)转换;如果是Base64字符串,用base64.b64decode(decryptionAESKey),不要直接将字符串按默认编码转字节
  • 调整填充方式:如果PKCS7填充无效,试试PKCS5填充(两者在128位块大小下兼容),或者直接查看Decryption.js中的代码,确认是否使用了自定义填充逻辑
  • 核对加密模式:JS中的AES实现有可能用ECB模式(虽然不推荐,但部分旧游戏会用),可以尝试切换模式测试;也可以检查是否使用了GCM等带认证的模式,这类模式需要额外处理认证标签
  • 直接复用JS解密逻辑:把Decryption.js中的解密代码提取出来,用Node.js运行解密——游戏本身的解密逻辑就是JS写的,直接复用能避免语言转换带来的编码、格式问题

内容的提问来源于stack exchange,提问作者Thanos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:39:52