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, 云资产清单, 代码混淆, 安全规则引擎, 无后门, 游戏开发, 虚幻引擎, 逆向工具, 逆向工程