提取 usmap 映射文件
本教程介绍使用 UE4SS、Dumper7 或 JMap 为 Unreal Engine 游戏生成 .usmap 映射文件。原文针对使用 IoStore 格式的游戏;实际需求和工具兼容性应以游戏及工具版本为准。
原教程说明,工具使用映射文件解析资源名称;如果游戏的 Paks 目录包含 .ucas 和 .utoc,在解包、检查或修改资源之前通常需要相应映射。三种方法的要求不同:UE4SS 已能在游戏中运行时最容易使用;Dumper7 的导出较为全面,但要编译源码并注入 DLL;JMap 可独立运行,但可能无法成功。
方法一:UE4SS
如果 UE4SS 已经在游戏中正常运行,可以直接从第 5 步开始。
- 从 UE4SS 实验版发布页下载版本。
- 将文件解压到游戏程序旁的
Binaries\Win64目录。 - 用文本编辑器打开
UE4SS-settings.ini,在EngineVersionOverride中填写游戏的引擎版本。例如 UE 5.7 对应 Major 5、Minor 7。
- 在 Debug 部分启用
ConsoleEnabled、GuiConsoleEnabled和GuiConsoleVisible。
部分游戏需要额外配置才能运行 UE4SS。
- 启动游戏,在 UE4SS 调试工具的 Dumpers 标签页生成
.usmap。
- 文件输出至
...\Binaries\Win64\Mappings.usmap。
方法二:Dumper7
Dumper7 可生成 SDK 和映射,但需要从源码编译,还需要工具将 DLL 注入游戏进程。原教程举例使用 Cheat Engine 或 UUU(后者需要更换其使用的 DLL)。
- 克隆 Dumper7 仓库,在 Visual Studio 中打开并构建解决方案,生成 DLL。
- 打开 Cheat Engine 并选择游戏进程。
- 选择 Memory View → Tools → Inject DLL,选择 Dumper7 DLL。
- 完成生成后,在
C:\Dumper-7\<UE_Version>-<GameName>\Mappings查找映射。
方法三:JMap
- 从 JMap 发布页下载并解压。
- 打开命令提示符,运行
cd "<folder_path>"进入解压目录。 - 按游戏版本设置引擎版本,例如:
set PATTERNSLEUTH_RES_EngineVersion=5.7
- 在任务管理器中查找游戏进程并记录 PID。
- 运行
jmap_dumper.exe --pid <PID> mappings.usmap。生成的文件位于 JMap 目录中。