【已解决】时隙之旅资源列表问题,求大佬指点

游戏图片没有加密,直接用AssetStudio就能读取资源。JSON文件全是乱码
目前游戏已经停止注册,因账号丢失,所以无法进入游戏。
手上留存着官服旧版客户端,大约 1.9G,新拿到了测试服的数据,约 1.1G。猜测部分资源需要登录游戏之后才能下载或更新。
想请教各位大佬,如何获取游戏的全部资源列表,下载全部数据?拆包后需要寻找那些文件?

附:安装包为未和谐版本的测试服
链接: 百度网盘 请输入提取码
提取码: r5rs

: 百度网盘 请输入提取码

之前解包时忘记删了,没想到这么快就关服了

hero_005

hero_009

測試服與正式服APK安裝

由hsxx大提供未和諧版本測試服APK (853MB)
1752723115-com.yhwh.sxzl_ad1-2025-07-17_11-34.apk

由遊俠網下載正式服APK (757MB)
更新时间:2025-11-08 11:47:14版本:1.1.2

https://andl.guopan.cn/159458-395065-1761046961.apk

兩者APK都安裝於夜神模擬器

夜神模擬器 + Sunny分析 - 測試服APK

的確無法下載更新
但從Sunny可以看到更新時
下載zip更新包URL

https://res-sgzx.wanhui2.com/res/of/android/zips/1041.zip

遊戲畫面中右下角顯示資源包更新進度 [1040/1059]

夜神模擬器 + Sunny分析 - 正式服APK

的確無法下載更新
但從Sunny可以看到更新時
下載zip更新包URL

https://res-sgzx.wanhui2.com/res/mx/android/zips/1050.zip

遊戲畫面中右下角顯示資源包更新進度 [1049/1059]

測試服與正式服遊戲資源包 - URL分析思路

測試服 https://res-sgzx.wanhui2.com/res/of/android/zips/1041.zip
正式服 https://res-sgzx.wanhui2.com/res/mx/android/zips/1050.zip

一開始以為使用相同的URL
仔細一看中間目錄名不同 of 與 mx 的差別

遊戲資源包更新並非使用資產清單
而是使用zip壓縮包覆蓋式更新
zip壓縮包下載到本地後
自動解壓縮覆蓋既有資源
zip壓縮包數字越大表示資源是最新的

遊戲資源包為連續數字有規律性
可以使用python腳本生成連續數字URL
然後使用wget去嘗試下載 (try url)

測試服與正式服遊戲資源包 - python腳本批次生成

Python 腳本
已知有連續數字url

https://res-sgzx.wanhui2.com/res/of/android/zips/{x}.zip

https://res-sgzx.wanhui2.com/res/mx/android/zips/{y}.zip

{x} 為 1 到 9999 數字
{y} 為 1 到 9999 數字
逐行生成url.txt

運行url.bat
自動運行url.py
自動生成1 到 9999 數字 url.txt

然後拿去餵wget
看看測試服與正式服遊戲資源包有何不同
運行wget.bat
自動開始下載url.txt

測試服與正式服遊戲資源包 - zip壓縮包比較

wget下載完成後

測試服zip壓縮包 (59files 2.24GB)
\res\of\android\zips\1001.zip

\res\of\android\zips\1059.zip

正式服zip壓縮包 (36files 1.45GB)
\res\of\android\zips\1024.zip

\res\of\android\zips\1059.zip

看起來都是到1059.zip
只是起點不一樣
接著做比較 (MD5校對)

測試服與正式服遊戲資源包 - zip包MD5校對

python腳本
有一根目錄
底下有兩個目錄
\mx
\of
分別對底下檔案做MD5校驗
生成md5.csv文件
csv文件中將兩目錄同檔名放在同一個欄位做md5比較
比如
\mx\android\zips\1024.zip MD5 72179372197203c76b119aa280397a2b
\of\android\zips\1024.zip MD5 72179372197203c76b119aa280397a2b

運行md5.bat
自動運行md5.py
自動開始校對兩者目錄下zip文件MD5
自動生成md5.csv文件

MD5比對後
可以發現
測試服of目錄
正式服mx目錄
兩者zip壓縮包MD5是相同的
只是單純複製兩份zip壓縮包到不同目錄而已

因此後面懶人包採用測試服of目錄zip壓縮包
因為比較完整 (1001.zip 到 1059.zip)
接下來需要python腳本批次對zip解壓縮

兩者APK解壓後混合

由hsxx大提供未和諧版本測試服APK (853MB)
1752723115-com.yhwh.sxzl_ad1-2025-07-17_11-34.apk

由遊俠網下載正式服APK (757MB)
159458-395065-1761046961.apk

這邊覆蓋順序 : 正式服 → 覆蓋 → 測試服
可自行調整覆蓋順序
正式服 \assets\assetbundle 目錄 → 覆蓋 → 測試服 \assets\assetbundle 目錄

手動新增目錄mix
測試服 \assets\assetbundle 目錄 複製一份到mix目錄下 \mix \assets\assetbundle
正式服 \assets\assetbundle 目錄 覆蓋mix目錄下 \assets\assetbundle
覆蓋完後 7168 files (543MB)

這邊當APK基底資源 (base resources)
等下還要用zip熱更新資源來覆蓋

測試服zip熱更新資源包 - python腳本批次解壓縮思路

前面有說明正式服與測試服zip熱更新資源包是相同的
只是測試服zip熱更新資源包比較完整
\of\android\zips\1001.zip 到 1059.zip

使用python腳本批次對zip解壓縮
數字大的壓縮包表示資源比較新
wget下載的好處就是可以
可將服務器上的文件最終更新日期保留下來
由圖可知
1001.zip 更新日期 2025.04.18
1059.zip 更新日期 2025.10.29

因此數字小的zip先解壓縮
數字大的zip解壓縮資源後覆蓋
數字小的zip解壓縮資源
依此類推

測試服zip熱更新資源包 - python腳本批次解壓縮

python腳本
有一目錄下有多個zip壓縮檔
1001.zip 到 1059.zip
依照zip檔名順序
從1001.zip 到 1059.zip開始自動解壓縮
全部解壓縮至目錄 output (同zip所在目錄)
後面的壓縮包解壓出來的資料覆蓋前一個壓縮包解壓出來的資料

1002.zip解壓縮至覆蓋1001.zip資料
1003.zip解壓縮至覆蓋1002.zip資料

1059.zip解壓縮至覆蓋1048.zip資料

運行unzip.bat
自動運行unzip.py
自動將zip壓縮包依文件名順序解壓縮
1001.zip 到 1059.zip
後面的zip解壓資料會覆蓋前一個zip解壓資料

批次解壓完成後
output目錄 (6453 files 977MB)
測試服zip壓縮包 (59files 2.24GB)

覆蓋後由2.24GB縮水至977MB
所以可以看出有很多重複文件名的資源

如果想要未和諧版的資源
那肯定在最前面的壓縮包內 : )
需要手動解壓縮一一比對

測試服zip熱更新資源包與APK自帶資源包混合

APK 基底資源 (7168 files 543MB)
zip熱更新資源 (6453 files 977MB)

將output資源覆蓋到mix目錄下
覆蓋完後所有資源 (11617 files 1.21GB)

等下還要使用AnimeStudio批次抽出AB包資源

使用AnimeStudio 命令列介面 (AnimeStudio.CLI.exe) 抽出遊戲資源思路

以往都是使用AnimeStudio 圖形化使用者介面 (AnimeStudio.GUI.exe)
這次使用AnimeStudio 命令列介面 (AnimeStudio.CLI.exe)
CLI 是「命令列介面」(Command-line interface) 的縮寫
是一種以文字為基礎的介面,使用者透過鍵盤輸入指令與電腦互動
它在圖形化使用者介面 (GUI) 普及之前廣泛使用
並可透過終端機執行指令或撰寫指令碼來自動化重複性工作

因為本遊戲的AB包都已經分類好在每個子目錄內
每一個目錄都去手動查看抽出資源太費時間(不可能一個一個目錄去翻閱)
因此使用批次命自動瀏覽各子目錄抽出遊戲資源
大概手動看一下AB包有哪些可用類型的資源
確認大概有 TextAsset、Texture2D、AudioClip、Sprite、MonoBehaviour
確認AB包有container path (遊戲資產所在目錄路徑)
等下批次解包出的資源可以依照container path生成子目錄

使用AnimeStudio 命令列介面 (AnimeStudio.CLI.exe) 抽出遊戲資源

將C:\Windows\System32\cmd.exe 複製一份與AnimeStudio.CLI.exe放在一起
先抽出 TextAsset、Texture2D、AudioClip
再抽出Sprite、MonoBehaviour、VideoClip (Sprite大多與Texture2D都是同文件名PNG圖檔 , 只是有些尺寸會不一樣) (可以不用輸出)
看個人喜好 : )

將mix目錄下所有文件放入新增目錄input內 (C:\Users\KEVIN\Desktop\mix\input)
手動建立輸出目錄 (C:\Users\KEVIN\Desktop\mix\output)
命令參數 : --game Normal (非特殊 - 普通的AB包)
命令參數 : --types TextAsset Texture2D AudioClip (只抽出TextAsset、Texture2D、AudioClip類型資源)
命令參數 : --types Sprite (只抽出Sprite類型資源)
命令參數 : --types MonoBehaviour (只抽出MonoBehaviour類型資源)
命令參數 : --types VideoClip (只抽出VideoClip類型資源)
命令參數 : --group_assets ByContainer (依照AB包 Container PATH 生成子目錄 - 自動分類抽出的資源)

CMD命令範例 : AnimeStudio.CLI 輸入目錄路徑 輸出目錄路徑 輸出參數

CMD命令 : AnimeStudio.CLI C:\Users\KEVIN\Desktop\mix\input C:\Users\KEVIN\Desktop\mix\output --game Normal --types TextAsset Texture2D AudioClip --group_assets ByContainer
開始自動批次抽出 TextAsset、Texture2D、AudioClip 類型資源

CMD命令 : AnimeStudio.CLI C:\Users\KEVIN\Desktop\mix\input C:\Users\KEVIN\Desktop\mix\output2 --game Normal --types Sprite --group_assets ByContainer
開始自動批次抽出 Sprite 類型資源

命令參數不用再更改
只需要更改輸入目錄路徑與輸出目錄路徑 (要使用絕對路徑)

抽出完成後
output + output2 (19237 files 2.97GB)

Spine文件處理

Spine文件目錄 \mix\output\assets\game\rawassets\spine

Spine文件版本 4.2.26
.atlas.txt 有多餘後綴 .txt
.skel.bytes 有多餘後綴 .bytes

使用bat批次命令去除多餘後綴
forfiles /s /m *atlas.txt /c “cmd /c rename @file @fname
forfiles /s /m *skel.byte@filef@fnamele @fnamec “cmd /c rename @file @@fnamecname

運行png_resize.bat

自動運行png_resize.py
自動修改png圖檔尺寸大小
基本上不需要修改

完成後可使用官方版和網友版
Spine Viewer開啟 skel文件

生成懶人包 : )

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

遊戲資源AB包與抽出資源懶人包(含工具與python腳本)
com.yhwh.sxzl_20251122.rar (10.4GB) (RAR密碼 : 1234)

Google Drive載點

Mega.nz載點

百度盤載點

1 个赞