求助大佬,关于游戏星之翼的文件解密

游戏官网链接:《星之翼》官方网站 - 空中对决一触即发 - 空中3D即时竞技游戏 - 盛天游戏

Andaroid下有专门区分spine的文件夹,但它的文件被加密了,论坛内有两个相关贴,但没有结果,遂发此贴。

这是全部spine文件:

谷歌盘https://drive.google.com/file/d/1CKnC6yAC1Ph_O9assqzCY0stGPXQ5lkG/view?usp=sharing

百度盘 百度网盘 请输入提取码 提取码: 3sxf

相关图片:

游戏官网下有游戏角色的立绘包

这是样本文件:

yb.zip (8.2 MB)

我记得只是把尾部16字节当key来xor,不知道改没改

3 个赞

驗證 yjzyI9008 大說法 , 的確可行 : )

r18

AB包解密

解密腳本可用

xor.rar (2.8 KB)

解密後使用AnimeStudio抽出Spine文件
去除Spine文件多餘後綴 .txt .bytes
修改Spine PNG圖檔尺寸
Spine版本 : 4.2.31

Spine懶人包載點詳情

Spine懶人包
Starward_Spine_20251209.rar (570MB) (RAR密碼 : 1234)

Google Drive載點

Mega.nz載點

百度盤載點

4 个赞

感谢各位大佬的帮助 :smiling_face_with_three_hearts:

beta_hsdhy

遊戲資產清單取得

透過夜神模擬器安裝國際版和台版
透過Sunnny取得遊戲資產清單 (2025.12.09更新)
得到URL規律

國際服遊戲資產清單

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/AnimationPacket/173/AnimationPacket_173.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/AnimationPacket/186/AnimationPacket_186.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Art3D/347/Art3D_347.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Art3D/374/Art3D_374.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Assembly/2.3.0.369/Assembly_2.3.0.369.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Assembly/2.3.0.441/Assembly_2.3.0.441.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Background/79/Background_79.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Background/86/Background_86.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattleConfig/187/BattleConfig_187.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattleConfig/211/BattleConfig_211.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattlePacket/2.3.0.357/BattlePacket_2.3.0.357.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattlePacket/2.3.0.441/BattlePacket_2.3.0.441.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Bgm/46/Bgm_46.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Bgm/51/Bgm_51.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterController/166/CharacterController_166.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterController/192/CharacterController_192.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterMesh/124/CharacterMesh_124.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterMesh/139/CharacterMesh_139.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterPerformance/226/CharacterPerformance_226.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterPerformance/258/CharacterPerformance_258.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterTimeline/179/CharacterTimeline_179.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterTimeline/197/CharacterTimeline_197.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Icon/192/Icon_192.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Icon/208/Icon_208.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Input/2.3.0.113/Input_2.3.0.113.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Input/2.3.0.117/Input_2.3.0.117.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Main/2.3.0.314/Main_2.3.0.314.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Main/2.3.0.344/Main_2.3.0.344.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Packet/2.3.0.372/Packet_2.3.0.372.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Packet/2.3.0.456/Packet_2.3.0.456.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Se/122/Se_122.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Se/130/Se_130.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/129/Spine_129.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/143/Spine_143.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Voice/93/Voice_93.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Voice/104/Voice_104.bytes

台服遊戲資產清單
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/AnimationPacket/173/AnimationPacket_173.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/AnimationPacket/186/AnimationPacket_186.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Art3D/347/Art3D_347.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Art3D/374/Art3D_374.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Assembly/2.3.0.369/Assembly_2.3.0.369.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Assembly/2.3.0.441/Assembly_2.3.0.441.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Background/79/Background_79.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Background/86/Background_86.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/BattleConfig/187/BattleConfig_187.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/BattleConfig/211/BattleConfig_211.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/BattlePacket/2.3.0.357/BattlePacket_2.3.0.357.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/BattlePacket/2.3.0.441/BattlePacket_2.3.0.441.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Bgm/46/Bgm_46.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Bgm/51/Bgm_51.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterController/166/CharacterController_166.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterController/192/CharacterController_192.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterMesh/124/CharacterMesh_124.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterMesh/139/CharacterMesh_139.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterPerformance/226/CharacterPerformance_226.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterPerformance/258/CharacterPerformance_258.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterTimeline/179/CharacterTimeline_179.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/CharacterTimeline/197/CharacterTimeline_197.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Icon/192/Icon_192.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Icon/208/Icon_208.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Input/2.3.0.113/Input_2.3.0.113.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Input/2.3.0.117/Input_2.3.0.117.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Main/2.3.0.314/Main_2.3.0.314.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Main/2.3.0.344/Main_2.3.0.344.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Packet/2.3.0.372/Packet_2.3.0.372.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Packet/2.3.0.456/Packet_2.3.0.456.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Se/122/Se_122.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Se/130/Se_130.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Spine/129/Spine_129.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Spine/143/Spine_143.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Voice/93/Voice_93.bytes
https://twx-cdn-xzy-cp.t1degames.com/Bundles/Android/Voice/104/Voice_104.bytes

遊戲資產清單規律分析思路

國際服和台版遊戲資產清單內容是相同的
差別在host name不一樣而已
下載台版遊戲資源時
Eset Internet Security跳出警告封鎖網址
不曉得為什麼 , 關掉Web防護就正常

這邊使用國際服遊戲資源來分析
懶人包也是用國際服遊戲資源

由國際服和台版遊戲資產清單URL
可發現規律性
拿Spine資源網址來說

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/129/Spine_129.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/143/Spine_143.bytes

可看成

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/{name}/{version}/{name}_{version}.bytes

{name} 為變數 , 遊戲資產類別名稱
{version} 為變數 , 遊戲資產類別版本

全部18個遊戲資產類別都有相同的規律
名稱和版本都會一起變動

遊戲啟動時會同時偵測兩個不同版本相同資產清單
{version} 數字小表示資源較舊 , 通常位於APK安裝包內
{version} 數字大表示資源較新 , 下載熱更新時從服務器端下載

知道以上規律性
可以生成不用進去遊戲
可以直接使用遊戲資產清單下載器python腳本
可以直接使用遊戲資源下載器python腳本
AB包檔名有規律 (不再是 hash\hash_data)

遊戲資產清單下載器python腳本

國際服下載遊戲資產清單 *.bytes 文件 (台服也是同樣的操作)
運行dl.bat
自動運行dl.py
自動生成DL下載目錄
自動開始下載遊戲資產清單
自動生成dl.txt (全部變數範圍的URL)
自動生成dl_ok.txt (只有成功下載的URL)
自動生成dl_failed.txt (只有失敗下載的URL)

第1次運行dl.bat下載時
因為沒有本地資料
所以會全部下載一遍

等本地有資料後
第2次運行dl.bat下載時
會自動略過已下載的資料
從上次成功下載的URL中 (dl_ok.txt)
以本地最新的版本之後為起點開始下載
比如Spine資產清單
上次下載最新版本文件為 Spine_143.bytes
下次下載就從 Spine_144.bytes 開始下載
其他類別資產清單比照辦理

所有類別資產清單都下載完成後
會詢問是否要刪除舊版本資產清單
選Y的話
18個類別資產清單只會保留最新的版本
方便後續使用下載器下載遊戲資源

下面的 {A} 到 {R} 變數 可自行從python腳本中修改
目前設定的變數範圍應該夠用 : )

python 腳本
已知幾個URL格式

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/AnimationPacket/173/AnimationPacket_173.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/AnimationPacket/186/AnimationPacket_186.bytes

得到規律 {A} 為變數 , 範圍 163 到 500

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/AnimationPacket/{A}/AnimationPacket_{A}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Art3D/347/Art3D_347.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Art3D/374/Art3D_374.bytes

得到規律 {B} 為變數 , 範圍 319 到 500

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Art3D/{B}/Art3D_{B}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Assembly/2.3.0.369/Assembly_2.3.0.369.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Assembly/2.3.0.441/Assembly_2.3.0.441.bytes

得到規律 {C} 為變數 , 範圍 349 到 600

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Assembly/2.3.0.{C}/Assembly_2.3.0.{C}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Background/79/Background_79.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Background/86/Background_86.bytes

得到規律 {D} 為變數 , 範圍 69 到 200

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Background/{D}/Background_{D}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattleConfig/187/BattleConfig_187.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattleConfig/211/BattleConfig_211.bytes

得到規律 {E} 為變數 , 範圍 168 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattleConfig/{E}/BattleConfig_{E}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattlePacket/2.3.0.357/BattlePacket_2.3.0.357.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattlePacket/2.3.0.441/BattlePacket_2.3.0.441.bytes

得到規律 {F} 為變數 , 範圍 347 到 600

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/BattlePacket/2.3.0.{F}/BattlePacket_2.3.0.{F}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Bgm/46/Bgm_46.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Bgm/51/Bgm_51.bytes

得到規律 {G} 為變數 , 範圍 40 到 200

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Bgm/{G}/Bgm_{G}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterController/166/CharacterController_166.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterController/192/CharacterController_192.bytes

得到規律 {H} 為變數 , 範圍 149 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterController/{H}/CharacterController_{H}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterMesh/124/CharacterMesh_124.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterMesh/139/CharacterMesh_139.bytes

得到規律 {I} 為變數 , 範圍 110 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterMesh/{I}/CharacterMesh_{I}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterPerformance/226/CharacterPerformance_226.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterPerformance/258/CharacterPerformance_258.bytes

得到規律 {J} 為變數 , 範圍 198 到 400

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterPerformance/{J}/CharacterPerformance_{J}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterTimeline/179/CharacterTimeline_179.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterTimeline/197/CharacterTimeline_197.bytes

得到規律 {K} 為變數 , 範圍 154 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/CharacterTimeline/{K}/CharacterTimeline_{K}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Icon/192/Icon_192.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Icon/208/Icon_208.bytes

得到規律 {L} 為變數 , 範圍 173 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Icon/{L}/Icon_{L}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Input/2.3.0.113/Input_2.3.0.113.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Input/2.3.0.117/Input_2.3.0.117.bytes

得到規律 {M} 為變數 , 範圍 106 到 200

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Input/2.3.0.{M}/Input_2.3.0.{M}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Main/2.3.0.314/Main_2.3.0.314.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Main/2.3.0.344/Main_2.3.0.344.bytes

得到規律 {N} 為變數 , 範圍 298 到 500

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Main/2.3.0.{N}/Main_2.3.0.{N}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Packet/2.3.0.372/Packet_2.3.0.372.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Packet/2.3.0.456/Packet_2.3.0.456.bytes

得到規律 {O} 為變數 , 範圍 360 到 600

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Packet/2.3.0.{O}/Packet_2.3.0.{O}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Se/122/Se_122.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Se/130/Se_130.bytes

得到規律 {P} 為變數 , 範圍 110 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Se/{P}/Se_{P}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/129/Spine_129.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/143/Spine_143.bytes

得到規律 {Q} 為變數 , 範圍 110 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/{Q}/Spine_{Q}.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Voice/93/Voice_93.bytes

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Voice/104/Voice_104.bytes

得到規律 {R} 為變數 , 範圍 84 到 300

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Voice/{R}/Voice_{R}.bytes

依照變數範圍生成URL下載清單 dl.txt
並嘗試下載檔案於DL目錄內
生成記錄下載成功LOG文件 dl_ok.txt
生成記錄下載失敗LOG文件 dl_failed.txt
已成功下載到本地的檔案則跳過不再下載
比較 dl_ok.txt 與 dl_failed.txt 內文字串
以 dl_ok.txt 最後一行字串內的 {A} 到 {R} 變數為比較基準
比如 dl_ok.txt 清單內Spine類別最後一行URL為

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/143/Spine_143.bytes

參照 dl_failed.txt 下一次重新下載URL起點 (從變數144開始)

https://cdn-xzy-cp.shengtiangames.com/Bundles/Android/Spine/144/Spine_144.bytes

下載成功的URL持續記錄到 dl_ok.txt
下載失敗的URL持續記錄到 dl_failed.txt
dl.txt , dl_ok.txt , dl_failed.txt 運行python腳本時即時生成和更新

針對已下載到本地所有類別檔案
每一個類別最新的檔案保留邏輯
保留每個類別 {A} 到 {R} 變數最大值版本
.bytes前面數字最大值的檔案保留 (2位數或3位數的數字)
比如 Assembly_2.3.0.441.bytes 與 Assembly_2.3.0.442.bytes 比較
保留 Assembly_2.3.0.442.bytes (因為442為當前最大數字)
比如 Spine_142.bytes 與 Spine_143.bytes 比較
保留 Spine_143.bytes (因為143為當前最大數字)
比如 Bgm_50.bytes 與 Bgm_51.bytes
保留 Bgm_51.bytes (因為51為當前最大數字)

詢問是否要刪除各類別舊的檔案 (Y/N)
若選擇Y
則一次刪除所有類別舊的檔案
只保留每個類別 {A} 到 {R} 變數的數值最大的檔案
.bytes前面數字最大值的檔案保留 (2位數或3位數的數字)

遊戲資源下載器python腳本

有了遊戲資產清單 *.bytes 文件後
共18個 *.bytes 文件 (12月9日更新)

AnimationPacket_188.bytes
Art3D_379.bytes
Assembly_2.3.0.442.bytes
Background_86.bytes
BattleConfig_215.bytes
BattlePacket_2.3.0.448.bytes
Bgm_51.bytes
CharacterController_195.bytes
CharacterMesh_141.bytes
CharacterPerformance_265.bytes
CharacterTimeline_201.bytes
Icon_208.bytes
Input_2.3.0.117.bytes
Main_2.3.0.345.bytes
Packet_2.3.0.461.bytes
Se_130.bytes
Spine_144.bytes
Voice_106.bytes

接下來就是要透過遊戲資產清單下載遊戲資源
國際服與台版做法皆相同

將 download.bat 與 download.py
與18個過遊戲資產清單放在一起
運行download.bat
自動運行download.py
自動解析*.bytes文件
自動開始下載遊戲資源
自動生成*.url.txt

如果只要下載SPINE資源
將 download.bat 與 download.py 和 Spine_144.bytes 單獨放在起即可
運行 download.bat 自動開始下載

遊戲資源整理

因為同時使用新舊版遊戲資產清單一起下載
所以下載完成後文件總大小會翻倍
手動覆蓋後
確定只要下載最新的遊戲資產清單就好 : )
新舊版比較後大多是重複名稱的資源
整理好後
接下來是AB包解密

AB包XOR解密

將 xor.bat 與 xor.py
放在AB包所在根目錄內

運行xor.bat
自動運行xor.py
自動開始對AB包解密

python 腳本
遞迴瀏覽子目錄下所有檔案
*.bytes *.json *.version *.hash *.rawfile 略過不處理
File Header 為 55 6E 69 74 79 46 53 的 *.bundle 檔案略過不處理
File Header 不是 55 6E 69 74 79 46 53 的 *.bundle 檔案才要XOR解密

讀取二進制文件
讀取文件尾部最後16 Byte Hex 當作key
然後對整體文件做 xor 解密
覆蓋原檔

腳本對同存在於根目錄下文件不做處理
只處理根目錄內子目錄文件

使用AnimeStudio.CLI.exe抽出遊戲資源

AB包沒加密 (AB = Asset Bundle)
AB包版本 2022.3.62f2

使用 AnimeStudio.CLI.exe 抽出資源 (AnimeStudio 命令列介面)
將整個AB包目錄移動到 ASImport 目錄下
運行 AnimeStudio.CLI-1.bat
自動抽出資源 TextAsset、Texture2D、AudioClip、Video、Font類型資源
輸出目錄在 ASExport

去除Spine文件多餘後綴

將 去掉多餘後綴.bat 放到AB包所在根目錄下
運行 去掉多餘後綴.bat
自動去除多餘後綴 .txt 與 .bytes 與 .asset
forfiles /s /m *txt /c “cmd /c rename @fileffilef@fna@fnameele @fname
forfiles /s /m *bytes@file/@fnameename @filec@fnamed /@file @fnameename @fi@filece @fname
forfil@files /s /m *asset @filec “cmd /c rename @file @fname

調整Spine PNG圖檔尺寸

將 png_resize.bat 與 png_resize.py
運行png_resize.bat
自動運行 png_resize.py
自動調整png圖檔尺寸符合atlas文件內描述

Spine版本 4.2.43

Spine目錄
\03_EXTRACT\Assets\Art_Resources\Ui\Spine\Activity\Activity2025SummerDay\MainBg
\03_EXTRACT\Assets\GameData\Ui\Spine
\03_EXTRACT\Assets\GameData\UiSpine\

生成懶人包 : )

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

遊戲資源AB包與抽出資源懶人包
Starward_20251213.rar (35.13GB) (RAR密碼 : 1234)

Google Drive載點
https://drive.google.com/file/d/13DL3ykJf3SdGMgFgABeQYLvI0UFq7Ahh/view?usp=sharing

Mega.nz載點
https://mega.nz/file/rVoWRTiB#Xs0a1S_20CxCHvPqkI1woPLD5FVoOBCTM5DUobBYYcw

百度盤載點

https://pan.baidu.com/s/1edOLsUzT_cQ_KUSlEdHwbA?pwd=1234

1 个赞

@qingliu,非常感谢您的脚本,有帮到我的忙!

我用高性能语言重新实现了这个脚本,使其更易使用且性能更佳。测试中,在 1.43 GiB(1938 个文件)的场合下,速度快了 90%(12 秒相对于 147 秒),现在发出来供大家使用。

下载链接
  • 通过附件下载
    ab-xor.rar(385.9 KiB)| 下载后,请先解压ab-xor.exe,再投入使用。

  • 通过网盘下载
    Starward Helper - 百度网盘 | 请进入Starward Helper,随后进入Decrypt Asset Bundle,最后下载ab-xor.exe


使用方法:将需要解密的文件或文件夹拖放到程序上启动,程序自动获取其中的所有文件。此外,程序还会忽略非.bundle文件,并且会探测文件头以避免重复解密。

使用中的截图


1 个赞

佬,我是新人。目前使用AS对星之翼包进行浏览仅能看见贴图和部分模型,机体模型完全找不到,是不是需要用你的方法进行全解包才能找到缺少的这些模型?