首页
/ RPG Maker MV Decrypter 完全指南:解密RPG Maker资源的实用技巧

RPG Maker MV Decrypter 完全指南:解密RPG Maker资源的实用技巧

2026-02-06 05:34:33作者:齐添朝

功能解析:解密工具的核心架构

作为一名独立游戏开发者,我曾为RPG Maker MV加密资源的提取问题困扰许久。直到发现Petschko's RPG-Maker-MV & MZ File-Decrypter这个项目,它不仅能解密.rpgmvp(图像)、.rpgmvm(音频)等加密文件,还支持资源的重新加密,完美解决了游戏美术资源的复用需求。

核心功能模块

🔍 解密引擎
项目的核心解密逻辑封装在scripts/Decrypter.js中,通过XOR算法实现加密/解密转换。关键函数调用流程如下:

Decrypter()构造函数
├─ splitEncryptionCode()  // 密钥解析
├─ verifyFakeHeader()     // 验证文件头合法性
├─ decrypt()              // 解密主函数
│  ├─ xOrBytes()          // 核心XOR运算
│  └─ restorePngHeader()  // 图像文件头修复
└─ encrypt()              // 加密主函数
   └─ buildFakeHeader()   // 构建加密文件头

🛠️ 前端交互系统
index.html作为启动入口,提供直观的操作界面。通过Bootstrap框架构建的交互面板支持三种核心操作:

  • 无密钥图像恢复(针对.rpgmvp/.png_文件)
  • 带密钥全类型解密(支持图像/音频文件)
  • 资源重新加密(用于修改后资源的游戏复用)

📦 依赖库集成
libs/目录包含三个关键依赖:

  • jszip.js:ZIP文件处理
  • FileSaver.js:浏览器端文件保存
  • lz-string.js:数据压缩/解压缩

文件功能关联性

项目采用模块化设计,各组件协同工作流程如下:

用户操作 → index.html(UI) → menu.js(事件处理) → Decrypter.js(核心算法) → FileSaver.js(结果输出)
                                   ↓
                           readKeyFromGame.js(密钥提取)

快速上手:5分钟解密实战

环境准备

前置条件

  • 现代浏览器(Chrome/Firefox推荐,需支持HTML5 File API)
  • 加密资源文件(.rpgmvp/.rpgmvm等)
  • 游戏加密密钥(可从System.json或加密图像提取)

项目获取

git clone https://gitcode.com/gh_mirrors/rp/RPG-Maker-MV-Decrypter
cd RPG-Maker-MV-Decrypter

启动方式
直接双击index.html在浏览器中打开,界面如图所示: 解密工具主界面 图1:工具主界面,显示三个功能选项卡和文件上传区域

无密钥图像恢复

适用于快速查看加密图像资源,无需知道密钥:

  1. 点击"Restore-Images (No-Key)"选项卡
  2. 拖拽.rpgmvp文件到上传区域(或点击选择文件)
  3. 点击"Restore Original Files"按钮
  4. 右侧结果区将显示恢复后的图像,点击即可保存

💡 小贴士:此功能利用PNG文件头固定结构特性,通过替换加密文件头实现恢复,仅适用于图像文件。

带密钥全文件解密

当需要解密音频文件或获取原始质量图像时:

  1. 在"Decryption"选项卡中,先上传游戏的System.json文件
    • MV游戏路径:游戏目录/www/data/System.json
    • MZ游戏路径:游戏目录/data/System.json
  2. 点击"Detect Key"按钮自动提取密钥(或手动输入32位十六进制密钥)
  3. 上传需要解密的文件(支持多文件批量处理)
  4. 点击"Decrypt"按钮,解密完成后可直接预览或下载

代码示例:密钥提取逻辑(来自readKeyFromGame.js

// 从System.json提取密钥
function extractKeyFromSystemJson(fileContent) {
  try {
    const systemData = JSON.parse(fileContent);
    return systemData.encryptionKey; // 返回32位十六进制密钥
  } catch(e) {
    showError("密钥提取失败:" + e.message);
    return null;
  }
}

深度指南:高级应用与问题排查

加密文件结构解析

RPG Maker加密文件采用"文件头+加密内容"结构:

  • 文件头(16字节):包含签名(5250474D56000000)、版本(000301)和保留字段
  • 加密区(前16字节):使用XOR算法加密
  • 原始数据区:文件主体内容(未加密)

Decrypter.js中的验证逻辑:

// 验证文件头是否匹配
Decrypter.prototype.verifyFakeHeader = function(fileHeader) {
  var fakeHeader = this.buildFakeHeader();
  for(var i = 0; i < this.getHeaderLen(); i++)
    if(fileHeader[i] !== fakeHeader[i])
      return false;
  return true;
};

命令行调用方式

虽然项目主要设计为浏览器工具,但可通过Node.js环境实现命令行调用:

# 安装依赖
npm install jsdom file-saver

# 编写调用脚本
const { JSDOM } = require('jsdom');
const fs = require('fs');

// 加载Decrypter模块
const dom = new JSDOM(`<body><script src="scripts/Decrypter.js"></script></body>`);
const Decrypter = dom.window.Decrypter;

// 执行解密
const decrypter = new Decrypter('你的32位密钥');
const encryptedData = fs.readFileSync('encrypted.rpgmvp');
const decryptedData = decrypter.decrypt(encryptedData.buffer);
fs.writeFileSync('decrypted.png', Buffer.from(decryptedData));

常见问题排查

❌ 密钥提取失败

  • 症状:上传System.json后提示"无法提取密钥"
  • 解决步骤
    1. 确认文件路径正确(MV/MZ路径不同)
    2. 检查文件是否被LZ压缩:尝试用lz-string.js解压缩后再提取
    3. 手动查找:在游戏目录www/js/rpg_core.js中搜索encryptionKey

❌ 解密后文件无法打开

  • 症状:图像无法显示/音频无法播放
  • 解决步骤
    1. 检查密钥正确性:确保32位十六进制格式(0-9,A-F)
    2. 关闭文件头验证:在解密选项中设置"Verify Fake-Header?"为NO
    3. 修复文件头:使用图像编辑软件重新保存损坏的图像文件

❌ 加密后游戏无法识别

  • 症状:替换加密文件后游戏黑屏或资源加载失败
  • 解决步骤
    1. 重置文件头参数:点击"Reset Header-Values to default"
    2. 检查游戏版本:MV/MZ的加密参数存在差异
    3. 手动校准文件头:从rpg_core.js中提取Decrypter类的headerLen/signature等参数

⚠️ 注意事项:修改游戏资源前请备份原始文件,过度解密可能涉及游戏版权问题。建议仅在个人开发项目或获得授权的情况下使用本工具。

实战案例:修改游戏开场画面

  1. 使用"Restore-Images (No-Key)"功能解密Title.png.rpgmvp
  2. 用图像软件修改标题文字或背景
  3. 通过"Encryption"选项卡重新加密(需正确密钥)
  4. 替换游戏目录img/titles1/下的原文件
  5. 启动游戏验证修改效果

这个工作流完美解决了RPG Maker游戏本地化过程中的美术资源修改需求,我曾用它在3小时内完成整个游戏的UI界面汉化。

总结

RPG Maker MV Decrypter作为一款轻量级解密工具,以其直观的界面和可靠的解密算法,成为独立游戏开发者处理加密资源的得力助手。无论是美术资源恢复、游戏本地化还是二次开发,该工具都能提供高效的解决方案。建议搭配项目作者的Java版本解密工具(支持批量处理)使用,以应对大规模资源解密需求。

项目虽已迁移至GitLab,但当前版本仍能稳定工作。如需获取最新更新,可访问官方迁移地址(文档末尾提供)。使用过程中遇到问题时,可优先检查密钥格式和文件头验证设置,这两个因素是导致解密失败的主要原因。

最后提醒:技术工具的使用应遵守软件许可协议和知识产权相关法律,合理使用解密功能,共同维护健康的游戏开发生态。

登录后查看全文
热门项目推荐
相关项目推荐