muvluv girlsgarden解包求教

教程已寫好 : )
教程圖片和教程詳細文字敘述
需要的工具軟件與python腳本都放在懶人包內

準備工具 - Fiddler

Fiddler
解包必備工具

Fiddler能捕獲HTTP和HTTPS流量
並將其記錄下來供用戶查看
它通過使用自簽名證書實現中間人攻擊來進行日誌記錄

這個安裝程式是舊版的
因為用習慣了

主要用來看遊戲數據包的網址
可以全選URL再滑鼠右鍵複製URL
將URL貼到純文字文本文件上
建議搭配EmEditor v21.2.1 文字編輯器使用

安裝完後設定
Options —> HTTPS —> Capture HTTPS CONNECTs (勾選) 擷取HTTPS加密連線
Options —> HTTPS —> Decrypt HTTPS traffic (勾選) 解密HTTPS流量
Options —> HTTPS —> Ignore server certificate errors (勾選) 忽略自我簽署憑證錯誤
Options —> HTTPS —> Check for certificate revocation (勾選) 檢查憑證是否已被撤銷
Options —> HTTPS —> Actions —>Trust Root Certificate 信任根憑證
信任根憑證: 指的是一套預先儲存在作業系統或瀏覽器中的根憑證
這些憑證是由夠有公信力的機構(如 Google, DigiCert 等)所簽署
Fiddler是用自己建立的憑證
有些遊戲不吃Fiddler憑證

以上設定
記得要按OK才會生效

記得Fiddler的憑證一定要安裝在電腦內
這樣才能正常解包 解密HTTPS流量

Fiddler的憑證沒安裝情況
無法解密HTTPS流量

Fiddler的憑證有安裝情況
可以解密HTTPS流量

安裝Fiddler的憑證 按OK
信任Fiddler的憑證 按OK

Tunnel to 字樣消失
正常解密HTTPS流量

進入遊戲後開始擷取網址
將擷取到的網址全選
滑鼠右鍵 Copy —> Just Url
滑鼠右鍵 新增一個純文字文本文件
在純文字文本文件內容貼上url
再使用EmEditor
抽取出想要的網址

搜尋(S) —> 尋找(F) 貼上想要找的網址 —> 抽出
這樣就可以列出特定網址
然後再另存新檔
繼續使用EmEditor編輯
或拿去餵wget下載資料
或拿去製作python腳本用

所以Fiddler + EmEditor 解包必備

目前有些遊戲
無法使用Fiddler解包獲取遊戲資源URL
只能用海底撈月法
使用DiskGenius 撈取遊戲資料

準備工具 - Python

python 官網

論壇大部份的解密、解包、批次處理文件
腳本都是使用python
因此需要安裝python

從官網下載python安裝程式
安裝過程這兩個選項一定要勾
Use admin privileges when installing py.exe (勾選安裝py.exe 時使用管理者權限)
Add python.exe to PATH (把Python加到路徑裡)

Add python.exe to PATH 非常重要定一要勾選
把程式加到系統路徑基本上就是讓系統認得這個程式和它的指令
所以舉例來說,如果你沒把Python加到路徑裡
你就不能在終端機打python 空格 指令
因為系統認不出來,但如果Python加到路徑裡了就能用
如果沒有把Python加到路徑裡
你在cmd.exe 輸入python 是沒有反應的
反之會出現目前python版本等一堆文字

另外順便做一件事
把C:\Windows\System32\cmd.exe 複製一份到桌面
是複製一份不是建立捷徑
這樣方便你測試python腳本

看到論壇有人貼python腳本文字時
將文字全部選擇後複製
滑鼠右鍵新增一個純文字文本文件(*.txt)
然後貼上
將純文字文本文件修改名與後綴(副檔名)
比如 : 新增 Text Document.txt 改成 png_resize.py
(資料夾選項記得設定成顯示文件的副檔名)

執行cmd.exe
輸入命令 python 腳本名稱
比如 python png_resize.py
這樣就執行python腳本

python腳本可以搭配bat批次檔
一樣滑鼠右鍵新增一個純文字文本文件(*.txt)
內文輸入

@echo off
python png_resize.py

將純文字文本文件修改名與後綴(副檔名)
比如 : 新增 Text Document.txt 改成 png_resize.bat
運行png_resize.bat後 可自動運行png_resize.py腳本
不用手動cmd輸入命令

另外python腳本運行時會常常缺套件
pip install 是用於在 Python 中安裝套件的指令
只需打開終端機或命令提示字元
輸入 pip install 套件名稱
即可從 Python 套件索引 (PyPI)
下載並安裝該套件及其依賴項
例如 : 若要安裝 requests 套件
則cmd命令輸入 pip install requests
有缺的話會告訴你缺哪個套件英文名稱
缺什麼補什麼就是了

準備工具 - EmEditor

EmEditor v21.2.1 - 解包必備文字編輯工具
內附安裝程式與序號
解包必備文字編輯工具
查看文件HEX好用
批次取代字串
多檔尋找字串

準備工具 - AnimeStudio

AnimeStudio - 針對AB包HEX開頭 - 6000.0.0f1

AB包最新版解包工具
針對 6000.0.0f1 文件HEX開頭
AB包 = Asset Bundle (*.unity3d *.bundle 或其他後綴)

unity3d version 手動帶入參考
6000.0.0f1
2022.3.5f1
2021.3.5f1
2020.3.5f1
2019.3.5f1

AnimeStudio下載

nightly.link
Repository Escartem/AnimeStudio
Workflow build.yml | Branch master
Choose one of the artifacts:

AnimeStudio-net8
https://nightly.link/Escartem/AnimeStudio/workflows/build/master/AnimeStudio-net8.zip

AnimeStudio-net9
https://nightly.link/Escartem/AnimeStudio/workflows/build/master/AnimeStudio-net9.zip

AnimeStudio所需Runtime下載

https://dotnet.microsoft.com/zh-tw/download/dotnet/thank-you/runtime-desktop-8.0.20-windows-x64-installer?cid=getdotnetcore

https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/8.0.20/windowsdesktop-runtime-8.0.20-win-x64.exe

https://dotnet.microsoft.com/zh-tw/download/dotnet/thank-you/runtime-desktop-9.0.9-windows-x64-installer?cid=getdotnetcore

https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/9.0.9/windowsdesktop-runtime-9.0.9-win-x64.exe

準備工具 - Python 腳本 : 自動檢查Spine PNG圖片尺寸是否與atlas文件記載一致

Python 腳本 - 自動檢查Spine PNG圖片尺寸是否與atlas文件記載一致

修改自yjzyl9008的腳本
不用手動指定目錄

讀取子目錄下 *.atlas 檔案
讀取atlas檔案中記載png圖檔長與寬尺寸大小資訊
再去比對同檔名png圖檔的長與寬尺寸資訊
是否與atlas檔案中的長與寬記載一致
不一致的話則修改png圖檔的長與寬

python腳本
直接放在
spine圖片最外圍的目錄
運行png_resize.bat
自動運行png_resize.py
自動開始檢查png圖片長與寬尺寸大小資訊是否與atlas文件記載一致
不一致的話則修改png圖檔的長與寬

準備工具 - skeletonViewer

SPINE官方出的 skeletonViewer
只支援PNG圖檔 不支援WEBP圖檔

要支援WEBP圖檔
只能使用網友做的skeletonViewer才行

安裝完這兩個
skeletonViewer全部版本都可以正常運行
jre-8u461-windows-x64.exe (開啟jar文件)
jdk-25_windows-x64_bin.msi (方便開啟各種版本skeletonViewer)

使用瀏覽器開啟遊戲網址 + Fiddler 解包網址

運行Fiddler

使用瀏覽器 Google Chrome 和 Microsoft Edge開啟遊戲網址

進入遊戲後 Fiddler 左側會一直有網址刷新
遊戲隨便玩幾下後
差不多得到遊戲資源包網址
然後將遊戲URL全部選擇
滑鼠右鍵 → Copy → Just Url
貼到新的純文字文本檔案內
再使用EmEditor整理網址

整理遊戲資源包清單URL

整理遊戲資源包清單URL

整理後看到遊戲資源包清單bin文件

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/WebGL/Desktop/StreamingAssetsMobile/aa/catalog.hash

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/WebGL/Desktop/StreamingAssetsMobile/aa/catalog.bin

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/catalog.hash

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/catalog.bin

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/ui_catalog.hash

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/spine_catalog.hash

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/vfx_catalog.hash

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/sound_catalog.hash

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/ui_catalog.bin

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/spine_catalog.bin

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/vfx_catalog.bin

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/sound_catalog.bin

可以先下載bin文件
由bin文件可知遊戲資源有5種類別 : catalog、spine、sound、ui、vfx

其中catalog.bin有兩種url
但其實是一樣的文件
連hash都一樣

這邊可以由Fiddler解包知道url的規律
方便等下使用python腳本
生成遊戲資源包下載url清單

資源包文件名要加上兩種前綴

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/WebGL/Desktop/StreamingAssetsMobile/aa/

https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/

python腳本 - 解密bin文件並生成json

python腳本 - 解密bin文件並生成json

修改自luojun1大的腳本
讀取目錄下所有bin文件
bin解密並還原json
並自動生成json文件

運行bin2json.bat
自動運行bin2json.py

catalog.bin 生成 catalog.json
sound_catalog.bin 生成 sound_catalog.json
spine_catalog.bin 生成 spine_catalog.json
ui_catalog.bin 生成 ui_catalog.json
vfx_catalog.bin 生成 vfx_catalog.json

python腳本 - json轉換成url下載清單

python腳本 - json轉換成url下載清單

讀取目錄下catalog.json檔案
讀取目錄下sound_catalog.json檔案
讀取目錄下spine_catalog.json檔案
讀取目錄下ui_catalog.json檔案
讀取目錄下vfx_catalog.json檔案

這些json檔案 由一連串很長的字串組成
字串頭為 {
字串尾為 }

python腳本功能
讀取"name": " 與 ", 之間的字串
並逐行重新生成

狀況 1
讀取到catalog.json 這個檔案時
比如
“name”: “021bcfd876bf790621550b8b8a94d264.bundle”,
取中間字串 021bcfd876bf790621550b8b8a94d264.bundle
並逐行重新生成

最後每行字串前面統一加上新字串https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/WebGL/Desktop/StreamingAssetsMobile/aa/WebGL/
並生成catalog_url.txt 文件

狀況 2
讀取到sound_catalog.json、spine_catalog.json、ui_catalog.json、vfx_catalog.json這些檔案時
比如
“name”: “001d17b0dd44a64eba4bf49b837b5c14.bundle”,
取中間字串 001d17b0dd44a64eba4bf49b837b5c14.bundle
並逐行重新生成

最後每行字串前面統一加上新字串https://assets.muvluv-girls-garden.com/production-public/660691da-a7cd-47ad-a254-2ce39f3e4352/BundleAssets/X/WebGL/ASTC/
並生成sound_catalog_url.txt、spine_catalog_url.txt、ui_catalog_url.txt、vfx_catalog_url.txt 文件

運行json2url.bat
自動運行json2url.py

catalog.json 生成 catalog_url.txt
sound_catalog.json 生成 sound_catalog_url.txt
spine_catalog.json 生成 spine_catalog_url.txt
ui_catalog.json 生成 ui_catalog_url.txt
vfx_catalog.json 生成 vfx_catalog_url.txt

使用wget下載遊戲資料

使用wget下載遊戲資料

wget.bat 本文內容
wget -i catalog_url.txt -c -r -P ./DL/catalog
wget -i sound_catalog_url.txt -c -r -P ./DL/sound
wget -i spine_catalog_url.txt -c -r -P ./DL/spine
wget -i ui_catalog_url.txt -c -r -P ./DL/ui
wget -i vfx_catalog_url.txt -c -r -P ./DL/vfx

因為一開始沒有分類直接解包
然後發現AB包 container path是一堆hash
造成AnimeStudio輸出分類目錄名稱也是hash

然後各種類別AB包(*.bundle) 都混在一起
於是才想到在一開始下載遊戲資源AB時
wget下載時就依照類別生成不同目錄

運行wget.bat
自動開始依序下載url清單
並自動生成目錄
catalog_url.txt 下載到目錄/DL/catalog
sound_catalog_url.txt 下載到目錄/DL/sound
spine_catalog_url.txt 下載到目錄/DL/spine
ui_catalog_url.txt 下載到目錄/DL/ui
vfx_catalog_url.txt 下載到目錄/DL/vfx

AnimeStudio unity版本手動輸入6000.0.0f1

AnimeStudio unity版本手動輸入6000.0.0f1

下載下來的AB包
滑鼠右鍵使用EmEditor開啟
查看AB包的HEX
發現文件頭是 UnityFS5.x.x0.0.0

使用RAZ版AssetStudio
2022.3.5 f1
2021.3.5 f1
2020.3.5 f1
2019.3.5 f1
用4個版本去try
都無法正常解包PNG圖檔

於是大膽猜想應該是最新的unity版本
換使用AnimeStudio
unity版本手動輸入6000.0.0f1
可以正常解包PNG圖檔
因此確定這是檔頭簡單的偽裝

AnimeStudio 輸出設定

AnimeStudio 輸出設定

因為AB包
container path 是hash
file name 也是 hash
造成輸出不美觀
但還是要想辦法輸出文件

輸出分類方式 (Group exported assets by)
catalog : container path
sound : souce file name
spine : container path
ui : container path
vfx : container path

結論 :
只有sound的AB包要先使用python腳本重新命名
再使用AnimeStudio開啟並輸出檔案

spine、ui、vfx都是先使用AnimeStudio開啟
再使用python腳本整理檔案

catalog輸出設定以及檔案整理

catalog輸出設定以及檔案整理

catalog : container path (group png files manually after extracting)
輸出分類設定選擇container path分類
輸出檔案後簡單手動分類即可

sound輸出設定以及檔案整理

sound輸出設定以及檔案整理

sound : souce file name (rename bundle files using python before extracting)
輸出檔案前 建議先使用python腳本對AB包重新命名
然後輸出分類設定選擇依照bundle文件檔名分類(非依照container path分類)
輸出後的同一位角色語音才會在同一個文件夾內
(若選擇container path分類的話 , 多位角色語音會混在一起)

使用pthon腳本 rename_sound_files.py (運行rename_sound_files.bat)
讀取子目錄下 *.bundle 檔案
並依照原始檔名順序重新命名每個bundle檔案
以sound001-999重新命名
如sound001.bundle到sound999.bundle
並生成一個txt文件
記錄原始檔名對應新的檔名
如 0b7e1f135006127a3951fc952f3bbbc0.bundle —> sound001.bundle
逐行列出

spine輸出設定以及檔案整理

spine輸出設定以及檔案整理

spine : container path (rename folders using python after extracting)
輸出分類設定選擇container path分類
同一位角色spine文件剛好都在同一個目錄裡

使用pthon腳本 rename_spine_files.py (運行rename_spine_files.bat)
讀取子目錄下 . 檔案
這個是沒有副檔名的檔案
每一個目錄裡都有一個這樣沒有副檔名的檔案
將這個沒有副檔名的檔案新增副檔名.json
如 e113101_F 改成 e113101_F.json
並記錄這個檔案的檔名 e113101_F
將原本所在的目錄改成這個檔名
如 0a2617b3c793f9f4587fd46c6a7d64dd 改成 e113101_F

ui輸出設定以及檔案整理

ui輸出設定以及檔案整理

ui : container path (collect and rename png files using python after extracting)
輸出分類設定選擇container path分類
使用python腳本將png圖檔自動統一抽出放入同一個目錄內
並對重複檔名png圖檔自動重新命名

使用pthon腳本 move_png_files.py (運行move_png_files.bat)
讀取子目錄下 *.png 檔案
將所有png檔案從各子目錄中移動出來
移動到最外層目錄中
這個最外層目錄名稱叫png
若移動檔案時遇到重複的檔名
依序在檔名加上02到99之間的數字
檔案移動完之後
若原目錄已沒有任何檔案
則刪除這個空目錄

vfx輸出設定以及檔案整理

vfx輸出設定以及檔案整理

vfx : container path (collect and rename png files using python after extracting)
輸出分類設定選擇container path分類
使用python腳本將png圖檔自動統一抽出放入同一個目錄內
並對重複檔名png圖檔自動重新命名

使用pthon腳本 move_png_files.py (運行move_png_files.bat)
讀取子目錄下 *.png 檔案
將所有png檔案從各子目錄中移動出來
移動到最外層目錄中
這個最外層目錄名稱叫png
若移動檔案時遇到重複的檔名
依序在檔名加上02到99之間的數字
檔案移動完之後
若原目錄已沒有任何檔案
則刪除這個空目錄

遊戲資源AB包與輸出資料懶人包載點詳情

遊戲資源AB包與輸出資料 (含解包工具及教程)
assets.muvluv-girls-garden.com_20251016.rar (8.09GB)

Google Drive載點

Mega.nz載點

百度盤載點

5 个赞