SkrilaxCZ/LDG-UT2004_Package_Tool

GitHub: SkrilaxCZ/LDG-UT2004_Package_Tool

用于解析、编辑、反编译和混淆 UT2004(虚幻引擎2).u 包文件的 Python CLI 工具。

Stars: 0 | Forks: 0

# UT2004PackageUtil 一个用于读取、写入和操作 **Unreal Engine 2 (UT2004) `.u` 包**的 Python 工具包。它可以解析完整的包结构——包括名称表、 导入表和导出表、对象、标记属性,以及 UnrealScript 字节码 token 流——并且可以逐字节地完整还原包。 在此基础之上,它还提供了更高级的工具: - **Info** — 转储包的名称/导入/导出表以及对象详细信息。 - **XML 导出 / 导入** — 将包转换为可编辑的 XML 目录 (以及辅助的源码/token 文件),并支持将其还原为 `.u`。 - **混淆** — 重命名包的代码符号以阻碍逆向 工程,同时保留所有必须保持稳定的内容(导入、 引擎引用、配置/本地化名称、通过字符串访问的名称等)。 - **反编译** — 将包中的类还原为 `.uc` UnrealScript 源 (每个类一个文件),并带有可选的 `--simplify` 处理,用于移除 编译器插入的冗余信息并重构 `for`/`while` 循环。 - **设为公开 / 私有** — 在整个包中切换 `Public` 导出标志。 ## 环境要求 - Python **3.12+** - [`uv`](https://github.com/astral-sh/uv)(推荐)或 `pip` - 已安装的 UT2004(或其 `System/` 目录),以便通过 `UT2004.ini` 解析依赖 包。 ## 安装说明 使用 `uv`(推荐): ``` make install # uv sync --extra dev ``` 或者直接使用: ``` uv sync --extra dev # dev extras: pytest, ruff, mypy, pre-commit ``` 使用普通的 `pip`: ``` pip install -e . ``` ## 快速开始 该工具是一个作为模块调用的 CLI: ``` python -m ut2004packageutil [options] # 或者在 uv 环境内部: uv run python -m ut2004packageutil [options] ``` 每个命令都需要 `-i/--ini` 指向你的 `UT2004.ini`,以便定位依赖 包。以下是一些示例: ``` # 打印关于 package 的所有信息 python -m ut2004packageutil info \ -i /path/to/UT2004/System/UT2004.ini \ -p /path/to/UT2004/System/MyMod.u # 将 package 的 classes 反编译为 .uc 源代码 python -m ut2004packageutil decompile \ -i /path/to/UT2004/System/UT2004.ini \ -p /path/to/UT2004/System/MyMod.u \ -o out/MyMod # 在启用 clean-up pass 的情况下进行反编译 python -m ut2004packageutil decompile -s \ -i /path/to/UT2004/System/UT2004.ini \ -p /path/to/UT2004/System/MyMod.u \ -o out/MyMod # 混淆 package python -m ut2004packageutil obfuscate \ -i /path/to/UT2004/System/UT2004.ini \ -p /path/to/UT2004/System/MyMod.u \ -o /path/to/UT2004/System/MyMod_obf.u ``` 请参阅 **[docs/USAGE.md](docs/USAGE.md)** 获取完整的命令参考和 选项详情。 ## 命令一览 | 命令 | 用途 | |--------------|----------------------------------------------------------------| | `info` | 打印名称/导入/导出表以及对象转储信息。 | | `xmlexport` | 将包导出为 XML + 辅助文件目录。 | | `xmlimport` | 从 XML 目录重建 `.u`。 | | `obfuscate` | 重命名代码符号(简单或更强模式)。 | | `decompile` | 每个类生成一个 `.uc` 文件;`-s` 用于清理输出。 | | `makepublic` | 在所有导出项上设置 `Public` 标志。 | | `makeprivate`| 清除所有导出项上的 `Public` 标志。 | ## 开发 ``` make test # run the test suite make format # ruff format + import sort make check # ruff import check + mypy make hooks # install pre-commit hooks make pre-commit # run all pre-commit hooks ``` ## 许可证 基于 [MIT License](LICENSE) 发布。
标签:Python, UT2004, 云资产清单, 代码混淆, 安全规则引擎, 无后门, 游戏开发, 虚幻引擎, 逆向工具, 逆向工程