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文件結果報錯。
我通過[黑神話悟空解包教程模組制作序章]_游戲熱門視頻下載到了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打開運行就行,結果
我分析是因為放在桌面的原因,于是我就把這個文件夾放到游戲目錄中,結果還是不行,于是我看日志:
然后就一個一個找問題:解決 VS 無法打開包括文件: “XXX.h”: No such file or directory問題
然后我在文件夾沒找到這個文件。然后我回頭看Gitee上的這個文件夾,然后發現是個鏈接,的確沒這個文件,怪不得沒效果。
通過一些方法把https://github.com/kem0x/Memcury下載下來,18KB
然后運行,報錯
不過好的一點是出現了UnrealMappingsDumper.dll。
我分析這個報錯的緣由,在這篇文章找到了答案:在visual studio用動態鏈接庫創建的在運行的時候顯示說不是win32的程序這是什么原因我的平臺屬性設置的是64的操作系統也是64的_微軟技術-CSDN問答
動態庫是無法運行的,應用程序將在需要時加載動態庫。你需要創建exe程序來調用DLL。
我猜測這也是用到DLL_injector的原因。但是為啥要繞這么一大圈搞個UnrealMappingsDumper.dll。直接把UnrealMappingsDumper.dll放出來不就行,難道是和部署環境相關。
然后就使用DLL_injector。但是點擊沒啥用。
然后我又發現我下載的文件有問題。從GitHub下載后。
運行又出問題。
然后我想是不是要運行游戲后再點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文件。
右上角下載的是EXE文件,左下方下載的是源文件。
用EXE文件的時候要把EXE放到游戲目錄運行,不然會報錯。下面是打開的情況。要在最下面那個目錄那選擇游戲目錄,然后才能檢測到游戲。
微信截圖翻譯
然后我就去看這個教程:[黑神話悟空解包教程模組制作序章]_游戲熱門視頻 我通過這個下載到了 搜了一下如何用vScode打開.sln后綴文件:Visual Studio Code - Code Editing. Redefined 這個下了老半天才3M,然后到官網下載:下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux
又找到一篇文章:黑神話:悟空 解包教程 | XiaoCai’s Blog
還是失敗了。浪費半小時。
還是報錯:
回頭不查看,直接導出模型到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 解包、預覽、導出匹諾曹的模型文件
導出的時候選tool-export options。注意模型選gltf,方便用blender打開。其他的也許,但是要再安裝插件。
這是我導出來的盾兵的模型,不清楚為啥沒貼圖,在UE viewer中明明有貼圖。