大佬们能指路一下如何提取绯红的神约吗?

0.0
經過半年
重新整理懶人包
順便領悟到新的解包技巧
順便將視頻和音頻都處理完

com.ccfun.jgame.tw (台版) (20241106追加)
com.yoozoo.jgame.global.web (國際版) (20241106更新)

遊戲數據整理詳情

Step 01
台版與國際版一樣都使用海底撈月法得到遊戲熱更新數據
夜神模擬器備份數據為虛擬硬盤文件
DISKGENIUS開啟虛擬硬盤文件導出遊戲數據

Step 02
台版APK自帶數據部分
\com.ccfun.jgame.tw_asset_20241106\app\split_install_time_pack.apk
改後綴為rar , 使用WinRAR解壓縮
APK自帶遊戲數據目錄路徑
\com.ccfun.jgame.tw_asset_20241106\app\split_install_time_pack.apk\assets\res
res整個目錄數據複製一份到外層新的目錄mix底下 , 變更名稱為res_app

國際版APK自帶數據部分
\com_yoozoo_jgame_global_web_asset_20241106\app\base.apk
改後綴為rar , 使用WinRAR解壓縮
APK自帶遊戲數據目錄路徑
\com_yoozoo_jgame_global_web_asset_20241106\app\base.apk\assets\res
\com_yoozoo_jgame_global_web_asset_20241106\app\base.apk\assets\src
res整個目錄數據複製一份到外層新的目錄mix2底下 , 變更名稱為res_app
src整個目錄數據複製一份到外層新的目錄mix2底下 , 變更名稱為src_app

Step 03
台版熱更新數據部分
\com.ccfun.jgame.tw_asset_20241106\data\files\obb\res
res整個目錄數據複製一份到外層新的目錄mix底下 , 變更名稱為res_obb
\com.ccfun.jgame.tw_asset_20241106\data\files\upgrade\res
res整個目錄數據複製一份到外層新的目錄mix底下 , 變更名稱為res_upgrade
\com.ccfun.jgame.tw_asset_20241106\data\files\upgrade\src
src整個目錄數據複製一份到外層新的目錄mix底下 , 變更名稱為src_upgrade
\com.ccfun.jgame.tw_asset_20241106\data\files\upgradelang\res
res整個目錄數據複製一份到外層新的目錄mix底下 , 變更名稱為res_upgradelang

國際版熱更新數據部分
\com_yoozoo_jgame_global_web_asset_20241106\data\files\obb\res
res整個目錄數據複製一份到外層新的目錄mix2底下 , 變更名稱為res_obb
\com_yoozoo_jgame_global_web_asset_20241106\data\files\upgrade\res
res整個目錄數據複製一份到外層新的目錄mix2底下 , 變更名稱為res_upgrade
\com_yoozoo_jgame_global_web_asset_20241106\data\files\upgrade\src
src整個目錄數據複製一份到外層新的目錄mix2底下 , 變更名稱為src_upgrade
\com_yoozoo_jgame_global_web_asset_20241106\data\files\upgradelang\res
res整個目錄數據複製一份到外層新的目錄mix2底下 , 變更名稱為res_upgradelang

Step 04
合併台版APK自帶數據與熱更新數據res與src目錄
新增mix3目錄用來存放覆蓋的數據
(1) mix目錄內res_app目錄複製一份到mix3目錄內res_app目錄名改成res
(2) mix目錄內res_obb目錄內文件複製一份到mix3目錄內res目錄(有重複文件名的話就替換掉已存在的文件)
(3) mix目錄內res_upgrade 目錄複製一份到mix3目錄內res目錄(有重複文件名的話就替換掉已存在的文件)
(4) mix目錄內res_upgradelang 目錄複製一份到mix3目錄內res目錄(有重複文件名的話就替換掉已存在的文件)
(5) mix目錄內src_upgrade 目錄複製一份到mix3目錄內src_upgrade目錄名改成src
最後mix3目錄內只會有兩個目錄res與src

合併國際版APK自帶數據與熱更新數據res與src目錄
新增mix4目錄用來存放覆蓋的數據
(1) mix2目錄內res_app目錄複製一份到mix4目錄內res_app目錄名改成res
(2) mix2目錄內res_obb目錄內文件複製一份到mix4目錄內res目錄(有重複文件名的話就替換掉已存在的文件)
(3) mix2目錄內res_upgrade 目錄複製一份到mix4目錄內res目錄(有重複文件名的話就替換掉已存在的文件)
(4) mix2目錄內res_upgradelang 目錄複製一份到mix4目錄內res目錄(有重複文件名的話就替換掉已存在的文件)
(5) mix2目錄內src_app 目錄複製一份到mix4目錄內src_app目錄名改成src
(6) mix2目錄內src_upgrade 目錄複製一份到mix4目錄內src目錄(有重複文件名的話就替換掉已存在的文件)
最後mix4目錄內只會有兩個目錄res與src

遊戲整理方法
(1) 找出APK遊戲數據目錄
(2) 找出遊戲熱更新數據目錄
(3) 合併兩目錄的數據
(4) 數據覆蓋順序 : APK數據當基底 , 熱更新數據覆蓋APK基底數據
(5) 熱更新數據覆蓋順序 : upgrade數據覆蓋obb數據

遊戲數據整理簡易流程詳情

台版APK自帶數據部分 (original data in Taiwanese version apk)
\com.ccfun.jgame.tw_asset_20241106\app\split_install_time_pack.apk\assets\res
build a new folder “mix” , copy “res” folder to “mix” folder , rename “res” folder to “res_app”

台版熱更新數據部分 (hot-updated data in Taiwnese version)
\com.ccfun.jgame.tw_asset_20241106\data\files\obb\res
copy “res” folder to “mix” folder , rename “res” folder to “res_obb”
\com.ccfun.jgame.tw_asset_20241106\data\files\upgrade\res
copy “res” folder to “mix” folder , rename “res” folder to “res_upgrade”
\com.ccfun.jgame.tw_asset_20241106\data\files\upgradelang\res
copy “res” folder to “mix” folder , rename “res” folder to “res_upgradelang”
\com.ccfun.jgame.tw_asset_20241106\data\files\upgrade\src
copy “src” folder to “mix” folder , rename “src” folder to “src_app”

then
\mix\res_app
\mix\res_obb
\mix\res_upgrade
\mix\res_upgradelang
\mix\src_app

build a new folder “mix3”
\mix\res_app copy to \mix3\res (original data)
\mix\res_obb copy to \mix3\res (overwriting original data)
\mix\res_upgrade copy to \mix3\res (overwriting original data)
\mix\res_upgradelang copy to \mix3\res (overwriting original data)
\mix\src_app copy to \mix3\src (original data)

finally
\mix3\res
\mix3\src

國際版APK自帶數據部分 (original data in international version apk)
\com_yoozoo_jgame_global_web_asset_20241106\app\base.apk\assets\res
\com_yoozoo_jgame_global_web_asset_20241106\app\base.apk\assets\src
build a new folder “mix2”
copy “res” folder to “mix2” folder , rename “res” folder to “res_app”
copy “src” folder to “mix2” folder , rename “src” folder to “src_app”

國際版熱更新數據部分 (hot-updated data in international version)
\com_yoozoo_jgame_global_web_asset_20241106\data\files\obb\res
copy “res” folder to “mix4” folder , rename “res” folder to “res_obb”
\com_yoozoo_jgame_global_web_asset_20241106\data\files\upgrade\res
copy “res” folder to “mix4” folder , rename “res” folder to "res_upgrade
\com_yoozoo_jgame_global_web_asset_20241106\data\files\upgradelang\res
copy “res” folder to “mix4” folder , rename “res” folder to "res_upgradelang
\com_yoozoo_jgame_global_web_asset_20241106\data\files\upgrade\src
copy “src” folder to “mix4” folder , rename “src” folder to "src_upgrade

then
\mix2\res_app
\mix2\res_obb
\mix2\res_upgrade
\mix2\res_upgradelang
\mix2\src_app
\mix2\src_upgrade

build a new folder “mix4”
\mix2\res_app copy to \mix4\res (original data)
\mix2\res_obb copy to \mix4\res (overwriting original data)
\mix2\res_upgrade copy to \mix4\res (overwriting original data)
\mix2\res_upgradelang copy to \mix4\res (overwriting original data)
\mix2\src_app copy to \mix4\src (original data)
\mix2\src_upgrade copy to \mix4\src (overwriting original data)

finally
\mix4\res
\mix4\src

png圖像解密過程python腳本遇到問題解決詳情

台版與國際版png加密都是同一個
半年前的python解密腳本仍然可用

這幾天反覆測試(11/06 - 11/16)
得到2個解密前需要先準備的步驟

(1) 使用python腳本解密時遇到錯誤信息而中斷
Index Error : bytearray index out of range

光這一個就想了好幾天 , 測試好幾天
終於弄懂了 : png圖像文件大小不能小於100位元組
運行python解密腳本前先把小於100位元組png圖像刪除
這樣才能讓python解密腳本正常運行
從頭到尾不會遇到錯誤信息而中斷

實際解決方法
Windows右上角搜索功能
搜索\mix3\res or \mix4\res 目錄下所有.png後綴文件
再依文件大小排列 , 手動刪除小於100位元組png圖像
會刪去30幾個png圖像 (UI圖居多)

或是直接使用python腳本刪除png圖像也是可以
python腳本放在 \mix3\res or \mix4\res 目錄下
運行python腳本即可自動刪除小於100位元組png圖像
運行01_delete_small_png_files.bat即可自動運行python腳本
或C:\Windows\System32\cmd.exe 複製一份和delete_small_png_files.py放在一起
CMD命令 : python delete_small_png_files.py 即可運行python腳本

(2) 使用python腳本解密時遇到無法使用TexturePacker命令
python腳本前段是png解密 , 將偽裝成PC版png圖像解密還原成蘋果版pvr.ccz圖像
後段是使用TexturePacker命令將蘋果版pvr.ccz圖像轉檔成PC版png圖像
python腳本後段有一行代碼
ext = filepath.split(‘.’)
這是以.作為分隔之用
如果你的目錄名帶有.的話 , python腳本後段會因為.誤判文件路徑造成無法運行
實際解決方法
R:\NOX\20241106_Nox43\backup20241106202716.npbk\com.yoozoo.jgame.global.web_asset_20241106
要將.改成_即可
R:\NOX\20241106_Nox43\backup20241106202716_npbk\com_yoozoo_jgame_global_web_asset_20241106

使用TexturePacker命令將蘋果版pvr.ccz圖像轉檔成PC版png圖像
全部解密+轉檔需要等上3小時以上
才能將\mix3\res and \mix4\res 目錄下所有.pvr.ccz圖像轉換成png圖像

png圖像解密過程詳情(png解密轉換成.pvr.ccz再轉檔成png)

前置作業
(1) 刪除小於100位元組png圖像
(2) 目錄名稱不能帶有.

PNG解密(.png → .pvr.ccz → .png)
在mix3\ or \mix4\ 目錄下
運行02_decrypt_png.bat 即可自動運行python腳本
或C:\Windows\System32\cmd.exe 複製一份和decrypt_png.py放在一起
CMD命令 : python decrypt_png.py 即可運行python腳本
這一階段會讓你等3個小時以上

使用python腳本運行完後
原本加密png圖像會解密成.pvr.ccz圖像
再從pvr.ccz圖像轉成png圖像

png圖像解密過程詳情(.pvr.ccz圖像與.plist文件刪除)

最後會留下.pvr.ccz圖像
可再使用另一個python腳本
批次刪除各子目錄下pvr.ccz圖像
刪除前先確定所有png圖像是否都解密完成
因為解密時間達3小時
很容易中斷沒全部解密完成

在mix3\ or \mix4\ 目錄下
運行03_delele_pvr.ccz_files.bat 即可自動運行python腳本
或C:\Windows\System32\cmd.exe 複製一份和delele_pvr.ccz_files.py放在一起
CMD命令 : python delele_pvr.ccz_files.py 即可運行python腳本
python腳本刪除文件速度很快 , 一下子就全部刪除完
目錄外的dummy.plist 可自行刪除

png圖像解密過程詳情(spine png圖像調整尺寸)

最後使用python腳本檢查spine png圖像尺寸是否符合atlas文件內描述
實際尺寸與altas描述尺寸不同的話 , 自動調整png圖像尺寸
運行04_png_resize.bat 即可自動運行python腳本
或C:\Windows\System32\cmd.exe 複製一份和png_resize.py放在一起
CMD命令 : python png_resize.py 即可運行python腳本

python搭配bat批次命令詳情

每一個python腳本可以用bat方式運行
懶得手動keyin CMD命令的話可以使用此方法
bat文件內寫入python 腳本名.py 即可
一個bat文件內可以寫入2個以上.py文件

範例
delele_pvr.ccz_and_plist_files.bat 內文

@echo off
python delele_pvr.ccz_files.py
python delele_plist_files.py

png圖像解密結論

最後
環境變數要設定好
python 與 TexturePacker 命令才能正常運行
整個png圖像解密順序已寫成bat命令型式
並標上編號 , 依照編號順序雙擊bat文件即可運行python腳本
python腳本內通通使用 os.getcwd() 函式
不用再手動輸入根目錄路徑
只要將bat和py文件放在mix3\ or \mix4\ 目錄下運行bat即可

png圖像解密python腳本懶人包
python_20241117.rar (16.2 KB)

01_delete_small_png_files.bat
02_decrypt_png.bat
03_delele_pvr.ccz_files.bat
04_png_resize.bat

delete_small_png_files.py
decrypt_png.py
delele_pvr.ccz_files.py
png_resize.py

Note :
delete_small_png_files.py
delete small png files less than 100 bytes from “res” folder

decrypt_png.py
decrypt fake png to pvr.ccz with content protection key
convert pvr.ccz to png (Apple images to PC images)

delele_pvr.ccz_files.py
delele pvr.ccz files in all subfolders

png_resize.py
resize every spine png image’s width and height according to the definition of the atlas file

CRIWARE視頻文件抽取詳情(usm影音分離)

台版視頻文件目錄
\mix3\res\common\movie
國際版視頻文件目錄
\mix4\res\common\movie

兩者解法一樣
(1) VGMToolbox
(2) Misc. Tools
(3) Stream Tools
(4) Video Demultiplexer
(5) Options Format : USM(CRI Movie 2)
(6) Extract Audio and Video
(7) Drop USM files to “Drop Files Here” Window
(8) usm —> m2v + adx or hca

將USM文件拖到程序窗口內即可自動影音分離
將movie整個目錄拖到程序窗口內
各子目錄內usm文件即可自動影音分離
有的目錄只有m2v視頻文件(無音軌)
有的目錄有m2v視頻文件 + adx音頻文件

只有recruit目錄的adx音頻文件真的有聲音
其他目錄的adx音頻文件無聲音
\mix2\res\common\movie\recruit
\mix4\res\common\movie\recruit

這邊會有兩種不同處理方式

CRIWARE視頻文件抽取詳情(m2v轉成mp4 與 adx轉成mp3)

USM視頻文件bat批次檔懶人包
usm_bat_20241117.rar (6.7 KB)

CASE 1 : 針對recruit目錄內有視頻與音頻
bat批次檔運行順序(bat批次檔放入recruit目錄內)
01_remove_m2v_adx_redundant_filename.bat
02_convert_m2v_to_mp4_and_move_usm_m2v_files_to_folder.bat
03_use_footbar2000_convert_adx_to_mp3_manually.txt (手動使用foobar2000將adx轉檔成mp3)
04_remove_mp3_redundant_filename_and_move_adx_files_to_folder.bat
05_mp4_merge_with_sound_and_build_folder_and_move_file_to_folder.bat

CASE 2 : 針對其他目錄
merge_no_audio.bat 放入各目錄內運行bat即可 (一條龍完成)
手動刪除沒有實際音頻的adx文件

以上就是USM文件處理方式

CRIWARE音頻文件抽取詳情(wem轉mp3)

台版音頻文件目錄
\mix3\res\common\wwise
國際版音頻文件目錄
\mix4\res\common\台版視頻文件目錄
兩者解法一樣

我有先手動整理一下
\wwise\目錄底下的wem音頻與bnk文件
通通放到新建目錄Sound內
\mix3\res\common\wwise\Sound
\mix4\res\common\wwise\Sound

加上原本就存在的Japanese目錄
\mix3\res\common\wwise\Japanese
\mix4\res\common\wwise\Japanese

原本已存在的wem音頻文件
全選後右鍵Enqueue in foobar2000加入排程
排程清單全選後右鍵Convert —> quick convert → MP3(LAME) 320kbps CBR
新建目錄存放foobar2000轉檔後mp3音頻



之前wem音頻文件使用Wwise-Unpacker轉檔成mp3
後來查資料過程中發現wem音頻文件也可以使用foobar2000來轉檔
一樣foobar2000要先安裝插件foo_input_vgmstream.fb2k-component
然後再手動安裝音頻編碼包才能正常轉檔
轉檔完後放入 02_WEM_convert_to_MP3目錄內

最後再使用bat批次命令將mp3音頻文件多餘文件名[1]去除

CRIWARE音頻文件抽取詳情(bnk抽出為wem , wem再轉mp3)

bnk文件為wem音頻文件的容器
可使用RingingBloom 2.1開啟抽出wem
https://github.com/Silvris/RingingBloom/releases/download/v2.1/RingingBloom_2.1.zip

要運行這軟件需要安裝.NET Core
.NET Core 3.1 Desktop Runtime (v3.1.32) - Windows x64 Installer!
下載 .NET Core 3.1 Desktop Runtime (v3.1.32) - Windows x64 Installer
2024-11-15_023733
2024-11-15_023759

安裝完NET Core才能正常運行RingingBloom.exe
(1) NBNK Editor
(2) Import BNK (開啟bnk文件)
(3) 若bnk有wem文件的話才會出現Data Index
(4) 點選Data Index 右鍵 Export Wems
(5) 選擇wem存放目錄
(6) 接著出現詢問窗口 “Export with name ?”
(7) 選yes的話wem音頻文件命名方式以 Imported Wem 0 - 999 為主 (需要再重新命名)
(8) 選no的話wem音頻文件命名方式以原始id為主 (原始id : 10867681 一串數字)
(9) 使用bat批次命令搭配Emditor 寫一個重新命名批次檔





抽出後的wem音頻文件放在04_BNK_extract_WEM目錄內
再使用foobar2000轉檔成mp3音頻文件放在05_WEM_convert_to_MP3目錄內
最後再使用bat批次命令將mp3音頻文件多餘文件名[1]去除

以上是wem音頻文件與bnk文件處理方式
接著製作台版和國際版懶人包

wem音頻文件bat批次檔懶人包
wem_20241117.rar (48.7 KB)

台版原始APK+熱更新遊戲數據包懶人包載點詳情

台版原始APK+熱更新遊戲數據包懶人包載點
com.ccfun.jgame.tw_asset_20241106.rar (7.02GB)

Google Drive載點

Mega.nz載點

百度盤載點

提取码: 1234

國際版原始APK+熱更新遊戲數據包懶人包載點詳情

國際版原始APK+熱更新遊戲數據包懶人包載點
com.yoozoo.jgame.global.web_asset_20241106.rar (7.45GB)

Google Drive載點

Mega.nz載點

百度盤載點

提取码: 1234

台版遊戲資源整理後懶人包載點詳情

台版遊戲資源整理後懶人包
com.ccfun.jgame.tw_20241106.rar (14.87GB)

Google Drive載點

Mega.nz載點

百度盤載點

提取码: 1234

國際版遊戲資源整理後懶人包載點詳情

國際版遊戲資源整理後懶人包
com.yoozoo.jgame.global.web_20241106.rar (16.28GB)

Google Drive載點

Mega.nz載點

百度盤載點

提取码: 1234

8 个赞