2025虚幻游戏逆向工程解包尝试

2025虚幻游戏逆向工程解包

前言

在2025游戏模型提取攻略写了,但是想要找的时候又忘了在哪篇文章中写的,所以干脆专门写一下。中间有许多坑。

一坑接一坑。

先说结论:用Umodel(UV Viewer)查看和导出模型。FModel虽然也许,但是部署麻烦,目前还在报错中。

内容

参考这篇文章:

Unreal Engine 5 逆向工程与游戏开发 - 黑神话悟空

1获取黑神话悟空的解包密码 AES:在游戏启动exe目录的key.txt文本中

2从游戏目录中获取Mappings.usmap文件:

使用 DLL_injector 工具: 通过 DLL 注入工具获取游戏内存中的 Mappings.usmap 文件。在github下载或者第三方网站下载:DLL 注入器信息 - WeAreDevs

导入 UE Mapping Dumper:这是一个将为 UE 生成映射文件的项目,几乎所有未来的 UE5 游戏都是必需的,以便从游戏文件中读取数据。去 Githubopen in new window 上下载。或者第三方网站:项目首页 - UnrealMappingsDumper:A dumper that generates mappings (.usmap) files for datamining Unreal Engine games. - GitCode

运行游戏:运行游戏后,打开 DLL injector,加载 UE Mapping Dumper并等待 Mappings.usmap 文件生成。

3导出文件到 FModel FModel是一个强大的工具,可以帮助我们对 UE4/5 的资源文件进行逆向分析。

解包工具:

FModel: https://github.com/4sval/FModel/releasesopen in new window

UE Viewer: https://www.gildor.org/en/projects/umodel

4使用三维软件制作资产

5使用 UE5 引擎替换和打包资产

看起来很简单,但是每一步都有坑。

AES Key

方法一:在游戏目录运行AES_finder.exe。注意不要下载源文件。

方法二:直接搜索想要逆向工程的AES Key

推荐用方法二,不用下载工具,因为下载的AES_finder.exe也不能保障一定能解出AES Key

说可以用AES_finder工具获取。但是没有具体说怎么获取的。然后我就发现直接找文件夹没找到这个key.txt。

AES_finder:我通过这篇文章aes-finder实用工具资源下载说明:实时监控内存,高效查找AES密钥-CSDN博客找到了这个下载地方GitCode - 全球开发者的开源社区,开源代码托管平台,但是这个是要用Visual Studio 2013打开aes-finder.sln解决方案进行编译。而不是像EXE文件一样

[UE] FModel 资源解包流程:这个就是可以用EXE文件打开,然后我在这篇文章去找下载地址:https://cs.rin.ru/forum/viewtopic.php?f=10&t=100672

然后发现是个论坛,里面用游戏的AES Key。好家伙。也就是AES_finder可以不用下载。

我安装VS后,点sln文件结果报错。

img

我通过[黑神话悟空解包教程模组制作序章]_游戏热门视频下载到了AES_finder.exe。把它放在游戏目录中双击,然后提示要安装Java。38M。

安装Java后,双击AES_finder.exe,马上出现了key.exe。但是可能加壳了,没有出AES Key

Exe is protected. Remove protection before using the tool. More info in the readme. Execution time in seconds: 0 Exe 受保护。在使用工具之前请移除保护。更多信息请参阅自述文件。

我拿匹诺曹测试失败了,不过黑暗之魂还是有效的。

不过我在别的地方发现了匹诺曹的key:0x9140E4AFF909A85DC0F4E6E45CD5012058F39D60C7EE2BAB1DB05D85668EE53B

获取 Mappings.usmap 文件

1下载DLL_injector.exe文件,不要下载源代码,哪个我不会用,你如果会用就随意。[DLL Injector Information - WeAreDevs](https://wearedevs.net/d/DLL Injector)

2下载UE Mapping Dumper文件,GitCode - 全球开发者的开源社区,开源代码托管平台

3下载Memcury,解压到\UnrealMappingsDumper-master\Dependencies\Memcury文件夹。缺少这一步,用VS运行UnrealMappingsDumper.sln会报错,说缺失Memcury.h文件

4下载VS,用VS打开UnrealMappingsDumper.sln文件。然后会报错,但是在\UnrealMappingsDumper-master\x64出现了UnrealMappingsDumper.dll。运行后原本800kb变成了261M,如果多运行几次会更大,一部分是VS环境配置,另一部分是缓存。

5把DLL_injector文件夹放到游戏目录,然后把UnrealMappingsDumper.dll放到\DLL Injector\resources文件夹。然后打开x64_DLL_Injector.exe。文件夹选择UnrealMappingsDumper.dll;运行软件选择DLL Injector.exe;

6打开游戏,然后点x64_DLL_Injector.exe的inject,过十几秒会出现成功的标志。

还是失败,没找出原因。离谱。可能是软件的问题,也可能是游戏的问题。

这也是一个坑,我下载了DLL_injector:[DLL Injector Information - WeAreDevs](https://wearedevs.net/d/DLL Injector)

UE Mapping Dumper:GitCode - 全球开发者的开源社区,开源代码托管平台

但是我下载了这两个不知道怎么用。用两个疑问:1DLL_injector加载的dll是在哪,是哪个dll;2UE Mapping Dumper怎么使用。

搜攻略说是用VS打开SLN文件。

我搜了一下如何使用:UnrealMappingsDumper 教程

说用VS打开运行就行,结果

img

我分析是因为放在桌面的原因,于是我就把这个文件夹放到游戏目录中,结果还是不行,于是我看日志:

img

然后就一个一个找问题:解决 VS 无法打开包括文件: “XXX.h”: No such file or directory问题

然后我在文件夹没找到这个文件。然后我回头看Gitee上的这个文件夹,然后发现是个链接,的确没这个文件,怪不得没效果。

通过一些方法把https://github.com/kem0x/Memcury下载下来,18KB

然后运行,报错

img

不过好的一点是出现了UnrealMappingsDumper.dll。

我分析这个报错的缘由,在这篇文章找到了答案:在visual studio用动态链接库创建的在运行的时候显示说不是win32的程序这是什么原因我的平台属性设置的是64的操作系统也是64的_微软技术-CSDN问答

动态库是无法运行的,应用程序将在需要时加载动态库。你需要创建exe程序来调用DLL。

我猜测这也是用到DLL_injector的原因。但是为啥要绕这么一大圈搞个UnrealMappingsDumper.dll。直接把UnrealMappingsDumper.dll放出来不就行,难道是和部署环境相关。

然后就使用DLL_injector。但是点击没啥用。

img

然后我又发现我下载的文件有问题。从GitHub下载后。

img

运行又出问题。

然后我想是不是要运行游戏后再点DLL_injector。回头测试一下。

原文说:运行游戏后,打开 DLL injector, 加载 UE Mapping Dumper并等待 Mappings.usmap 文件生成。

导出文件到 FModel

1必须下载到FModel.exe,不要下载到源文件的,源文件是给大佬更新软件用的。

2必须下载给FModel.exe添加依赖,不然会报错。把这个https://github.com/X1A0CA1/Files/tree/main/BlackMythWukongBlogFiles,解压到Fmodel文件夹/Output/.data/ 。然后重启就可以看到包了

3在Directory - AES输入AES Key。包就可以打开了。

不知道为啥提示映射失败,不能在软件中打开。然后我干脆把资源导出来,用3dsmax查看。

另外就是感觉没用Mappings.usmap 也没啥影响。

这个官网要翻墙才能下载:https://fmodel.app/

然后我在第三方网站下载:https://sourceforge.net/projects/fmodel.mirror/files/latest/download

还有这个也可以下载:GitCode - 全球开发者的开源社区,开源代码托管平台

看了一下使用,要用VS。

然后看了这个:使用FModel提取游戏资产-CSDN博客

发现官网下载的 FModel是exe文件。

img

右上角下载的是EXE文件,左下方下载的是源文件。

用EXE文件的时候要把EXE放到游戏目录运行,不然会报错。下面是打开的情况。要在最下面那个目录那选择游戏目录,然后才能检测到游戏。

img

微信截图翻译

然后我就去看这个教程:[黑神话悟空解包教程模组制作序章]_游戏热门视频 我通过这个下载到了 搜了一下如何用vScode打开.sln后缀文件:Visual Studio Code - Code Editing. Redefined 这个下了老半天才3M,然后到官网下载:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

又找到一篇文章:黑神话:悟空 解包教程 | XiaoCai’s Blog

还是失败了。浪费半小时。

img

还是报错:

img

回头不查看,直接导出模型到blender或者3dsmax中看。

关于游戏打包

官方文档:打包你的项目 | 虚幻引擎 5.6 文档 | Epic Developer Community (epicgames.com)

打包是将虚幻引擎项目转换为独立可执行文件(.exe)或应用程序的过程。 Pak(.pak)文件是虚幻引擎用于存储烘焙内容的归档文件格式。

打包细节:UE5 Pak学习与应用(四) 基于虚幻引擎的Pak制作工具 - 知乎 (zhihu.com)

其实主要变换点在于: 工程 Content: 把 Content 之前的路径去掉,Content 变为 Game.

工程 Plugins: 工程的插件里面的资产也是可以烘焙打包到 Pak 文件中的,但它的路径处理就稍微复杂一点。(1)需要把实际的插件名称前的路径移除掉,即多个插件可能包含在一个 Plugins/folder 中,而这个包裹的文件夹在 Reference 路径中是不需要的。 (2)然后把 Content 路径移除掉… 是的,这里是移除掉,虽然在磁盘上这个目录是实际存在的,但是虚幻引擎的读取使用规则里面不需要。可以看第四条 Engine Plugins 中有个 AnimationSharing 插件,里面存的 AnimsharingRed 资产的处理例子。 Engine Content: 处理手法和工程 Content 差不多,可以理解为是把 Content 之前的路径去掉了,然后 Content 变为 Engine;也可以理解为这里是把 Content 变没了。

Engine Plugins: 处理手法与工程 Plugins 类似,去掉实际插件前的包含目录,去掉 Content. 以上是虚幻引擎在处理资产磁盘路径 到 Reference 路径的变换规则,多对比几次磁盘路径和 Reference 路径就能归纳出来。

.pak文件用解压软件打不开,可以用Fmodel解压出来。

.uasset文件通过虚幻引擎打开:https://blog.csdn.net/qq_39934403/article/details/114832013

UE4游戏提取的通用步骤(21_9_8)_unrealpaktool-CSDN博客

可以参考思路

虚幻4游戏解包导出及Mod制作指南

这个有点复杂。

虚幻引擎自带工具解Pak包_哔哩哔哩_bilibili

这个没试过,是个思路。试着用zip解压一下。

请添加图片描述

导出来了,但是打不开。

结尾

目前暂未成功。

目前还是UE Viewer最简单好用,不要另外配置依赖文件。

1UE Viewer下载:Gildor’s Homepage,才2M。

2使用工具 umodel_win32 解包、预览、导出匹诺曹的模型文件

img

img
导出的时候选tool-export options。注意模型选gltf,方便用blender打开。其他的也许,但是要再安装插件。
请添加图片描述
这是我导出来的盾兵的模型,不清楚为啥没贴图,在UE viewer中明明有贴图。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt学习及使用_第1部分_认识Qt---Qt开发基本流程

前言 学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面. 参考书:<Qt 6 C开发指南>(以下称"本书") 标识说明:概念用粗体倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字), 本书原话内容用深蓝色标识,比较重要的内容用加粗倾…

大模型的开发应用(十):对话风格微调项目(上):数据工程与模型选型

数据工程 1 项目介绍2 数据工程2.1 申请 API Key 并测试2.2 文本嵌入模型2.3 生成训练集2.3.1 制作风格模板2.3.2 调用大模型获取数据2.3.3 对大模型生成的数据进行质量过滤2.3.4 程序入口 2.4 数据转换 3 模型选型3.1 候选模型与评估数据集3.2 模型评估 附录&#xff08;对比不…

Jmeter压测手册:脚本配置、服务器环境搭建与运行

序 本文记录了我在新公司的首次压测遇到的一些问题以及解决方案。公司服务部署在国外&#xff0c;网络延迟导致的压不上去&#xff0c;需要本地调试脚本&#xff0c;然后用国外服务器压测的过程。同时记录了过程中遇到的一些问题&#xff0c;特别是Jmeter本身占用CPU资源&#…

立定跳远--二分枚举答案+cehck

P10909 [蓝桥杯 2024 国 B] 立定跳远 - 洛谷 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<int,int> pii; int n,m; int a[N]; int an; bool check(int l) {int pos0;int c1;int wm;for(int i1;i<n;i){if…

蓝桥杯20112 不同的总分值

问题描述 在今年蓝桥杯的决赛中&#xff0c;一共有 10 道题目&#xff0c;每道题目的分数依次为 5 分&#xff0c;5 分&#xff0c;10 分&#xff0c;10 分&#xff0c;15 分&#xff0c;15 分&#xff0c;20 分&#xff0c;20 分&#xff0c;25 分&#xff0c;25 分。 假设某…

[论文阅读] 系统架构 | 零售 IT 中的微服务与实时处理:开源工具链与部署策略综述

零售IT中的微服务与实时处理&#xff1a;开源工具链与部署策略综述 论文信息 Microservices and Real-Time Processing in Retail IT: A Review of Open-Source Toolchains and Deployment Strategies Aaditaa Vashisht (Department of Information Science and Engineering, …

【面板数据】A股上市公司注册地所在地数据集(1991-2023年)

数据简介&#xff1a;上市公司注册地所在地数据指企业在工商行政管理部门登记注册的法定住所信息&#xff0c;涵盖省、市、区三级行政区划及详细地址。该数据是公司法律身份的核心标识&#xff0c;直接影响税务管辖、诉讼归属、政策适用及市场准入等关键环节。更是连接企业行为…

21、Create React App的使用

Create React App 是官方支持的创建单页 React 应用程序的方法。提供了一个现代的构建设置&#xff0c;无需配置。它虽然只是一个包&#xff0c;但不建议全局安装。如果本地安装过可先卸载&#xff0c;这样能保证每次创建项目时使用最新版本的功能。 开始使用 可以使用npx&…

CSS盒子 flex弹性布局

使用flex弹性布局页面效果图&#xff08;源代码在文章末尾&#xff09;&#xff1a; 目录 flex弹性布局 一、基本容器 二、设置主轴方向 三、设置主轴对齐方式 四、设置交叉轴上的对齐方式 flex弹性布局 一、基本容器 Flexbox 是 CSS3 引入的一种一维布局模型&#xff0…

数据结构与算法-线性表-线性表的应用

1 线性表 1.5 线性表的应用 1.5.1 线性表的合并 【算法步骤】 分别获取 LA 表长 m 和 LB 表长 n 。从 LB 中第 1 个数据元素开始&#xff0c;循环 n 次执行以下操作&#xff1a; 从 LB 中查找第 i 个数据元素赋给 e &#xff1b;在 LA 中查找元素 e &#xff0c;如果不存在&…

流数据机器学习框架 CapyMOA

环境准备: pip install capymoa 使用 HoeffdingTree 对流数据做在线分类: from capymoa.streams import FileStream from capymoa.learners import HoeffdingTreeClassifier from capymoa.evaluation import ProgressiveEvaluator# 1. 构造流&#xff1a;假设 data/stream…

QEMU源码全解析 —— 块设备虚拟化(27)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(26) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 Virt

Cilium动手实验室: 精通之旅---19.Golden Signals with Hubble and Grafana

Cilium动手实验室: 精通之旅---19.Golden Signals with Hubble and Grafana 1. Lab 环境2. 部署测试应用2.1 7层可见性的网络2.1.1 允许所有命名空间2.1.2 DNS 可见性2.1.3 L7-egress-visibility 2.2 检查 Deployments2.3 在 Hubble UI 中查看 3. Grafana 选项卡3.1 Grafana 中…

常见文件系统格式有哪些

PART.01 常见文件系统格式有哪些 常见的文件系统格式有很多&#xff0c;通常根据使用场景&#xff08;Windows、Linux、macOS、移动设备、U盘、硬盘等&#xff09;有所不同。以下是一些主流和常见的文件系统格式及其特点&#xff1a; 一、Windows 常见文件系统格式 Digital …

React Native 弹窗组件优化实战:解决 Modal 闪烁与动画卡顿问题

&#x1f4cc; 前言 在移动端开发中&#xff0c;用户对动画的流畅性和过渡自然性有着极高的期待。最近我对一个使用 react-native-modal 实现的 Alert 弹窗组件进行了优化&#xff0c;成功解决了闪烁和卡顿问题&#xff0c;并显著提升了用户体验。 本篇博客将带你深入了解优化…

智能客服系统开发方案:RAG+多智能体技术实现

智能客服系统开发方案:RAG+多智能体技术实现 一、系统架构设计 #mermaid-svg-hKDXil2J0xV064Q5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hKDXil2J0xV064Q5 .error-icon{fill:#552222;}#mermaid-svg-hKDXil2…

【Kafka】消息队列Kafka知识总结

【Kafka】消息队列Kafka知识总结 【一】消息队列【1】什么是消息队列【2】消息队列有什么用&#xff08;1&#xff09;异步处理&#xff08;2&#xff09;削峰/限流&#xff08;3&#xff09;降低系统耦合性&#xff08;4&#xff09;实现分布式事务&#xff08;5&#xff09;顺…

微信小程序开发 RangeError: Maximum call stack size exceeded

通常是由于​​调用栈深度超限​​&#xff08;如无限递归、过深的函数调用链或数据绑定循环&#xff09;导致。以下是具体解决方案&#xff1a; 一、核心原因分析 ​​无限递归​​ 函数直接或间接调用自身且无终止条件&#xff0c;例如事件处理函数中错误触发自身。​​数据…

mapbox进阶,切片网格生成实现

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️line线图层样式1.4 ☘️symbol符号图层…

Mysql 函数concat、concat_ws和group_concat

1.concat concat()函数是将多个字符串组合在一起&#xff0c;形成一个大的字符串&#xff1b;如果连接的字符串中存在一个为NULL&#xff0c;则输出的结果为NULL&#xff0c;语法格式为&#xff1a; concat(str1,str2,....strn) -- 1、字符之间不加连接符 mysql> select c…