Skip to content

RoundNailoong/proto_script_jnl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proto Script JNL

一个强大的 Proto 文件处理工具,专为游戏协议文件处理而设计。支持字段替换、文件拆分、配置生成等多种功能。

zread

✨ 特性

  • 🔤 智能字段替换 - 基于 Trie 树的高效字符串替换算法,支持批量字段映射
  • 📦 模块化拆分 - 将单体 Proto 文件拆分为独立的模块化文件
  • 🎮 游戏协议支持 - 生成 PacketOpcodes,支持游戏协议处理
  • 🚫 消息黑名单 - 灵活的消息过滤机制
  • 🔐 XOR 字段配置 - 自动生成加密字段配置
  • 🔄 映射还原 - 映射文件的反向还原 -- TODO

🚀 快速开始

环境要求

安装与构建

# 克隆项目
git clone https://github.com/HongchengQ/proto_script_jnl.git
cd proto_script_jnl
 
# 构建项目
mvn package

使用方法

  1. 准备配置文件

    cp config_example.json config.json
  2. 准备输入文件

    • 将原始 Proto 文件放入 proto/input/all_in_one.proto
    • 将映射文件放入 proto/input/mapping.tsv
    • (可选)配置消息黑名单 proto/input/messageBlacklist.json
  3. 运行程序

    java -jar target/proto_script_jnl-pm-jar-with-dependencies.jar

📝 配置说明

基础配置

{
  "gameVersion": "2.0.0",           // 游戏版本标记
  "bootMode": 0,                    // 启动模式 TODO
  "inputFilePath": "proto/input/all_in_one.proto",
  "replaceMappingFilePath": "proto/input/mapping.tsv",
  "replaceOutputDirectory": "proto/all_in_one_proto_output",
  "splitOutputDirectory": "proto/dispersible_proto_output",
  "clearOutputFolderForever": true   // 运行前清理输出目录
}

高级配置

{
  "packetOpcodesOptional": {
    "createPacketOpcodes": true,
    "opsOutputDirectory": "proto/packet_opcodes_output"
  },
  "generateMessageBlacklistOptional": {
    "enableBlacklist": true,
    "blacklistFilePath": "proto/input/messageBlacklist.json"
  },
  "generateXorFieldConfig": {
    "enableGenerateXorFieldConfig": true,
    "xorOutputDirectory": "proto/xor_field_config_output"
  }
}

📁 输入文件格式

映射文件 (mapping.tsv)

使用制表符分隔的 TSV 格式:

混淆字段	解混淆字段
IAAEHMCIHOG	This is the replacement text

消息黑名单 (messageBlacklist.json)

{
  "message_name": true,   // true: 过滤掉此消息
  "another_message": false, // false: 保留此消息
  "114514": true    // cmdid 也可以
}

🔧 核心功能详解

字段替换系统

  • 使用基于 Trie 树的高效字符串替换算法
  • 自动生成替换注释记录
  • 支持批量处理大量字段

文件拆分系统

  • 智能分析消息依赖关系
  • 自动生成模块化文件结构
  • 支持命令 ID 提取和幻数处理

高级功能

  • 自动生成数据包操作码
  • 支持消息黑名单过滤
  • XOR 字段配置自动生成

📊 依赖项

  • Logback - 日志框架
  • Jackson - JSON 处理
  • Apache Commons CSV - CSV 文件处理
  • Reflections - 反射库
  • Lombok - 代码简化

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

本项目采用 LICENSE 许可证。

About

Protocol Buffer 文件处理工具

Resources

License

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages