西游绘笔西行有大佬会解包嘛

…今天新出的游戏

大部分文件都能解,就是FakeHeader 但是找不到skel文件,蹲一个大佬看有什么线索。

1 个赞

我尝试了 qingliu 大佬之前提供的一种通过文件内容特征查找spine动画文件的方式,找到了疑似skel的文件。
image
这个文件中包含了atlas中所有切片名称的信息,并且开头能看到3.8.85 类似spine版本号的信息。


因此怀疑skel文件没有通过unity打包,只是更改了后缀。但遗憾的是,这个文件如果通过更改后缀的方式,仍然无法还原spine动画。很有可能是文件里内混杂了一些没必要的信息,需要删除。但到这一步我已经找不到什么线索了。

150102.rar (5.1 MB)
我上传了一个例子,看群里是否有大佬能还原skel文件。 基本上就是解包这个游戏的最后一步了。

1 个赞

image
我这边无法导入ex studio

但我刚刚试了一下。是可以直接导入spine的 不知道为什么。 :sweat:

我还是头一次遇到spine能读取,exstudio不能读取的文件。 因此测试的时候,发现exstudio无法导入,就以为skel文件是有问题的。现在看来是ex的问题。 :weary: 但为什么你是可以成功导入进ex的?

这个游戏的skel动作文件它把基础人物和动作分开了,需要合并,不然只能在spine里查看,live2dviewerex会报错的,简单写了个合并脚本,操作如下。
1.提取出文件的bundles文件先把文件的伪文件头去掉放入as里面读取
2.type选择monobehaviour,然后搜索Info,将所有带有aniinfo的文件导出,这个里面记录了拆分出的两个skel文件,在bundles包里可以看到是u2d结尾的文件,文件直接导出到bundles的文件夹里面就行
3.运行脚本在bundles文件夹里面的output文件夹里面就有合并好的skel文件了,导出atlas和png文件就可以在live2dviewerex了查看了

import ujson
from pathlib import Path

def skel_merge(path):
    Path.mkdir(Path(path + "/" + "output"), exist_ok=True)
    path = Path(path)
    for jsonfile in path.rglob("*_aniInfo.json"):
        with open(jsonfile,"r",encoding="utf8") as f:
            data = ujson.load(f)
            skel_name = jsonfile.name.split("_aniInfo")[0] + ".skel"
            _baseBytesMd5 = data["_baseBytesMd5"]
            with open(str(path)+"/"+_baseBytesMd5+".u2d","rb")as f:
                _baseBytesMd5_bytes = f.read()
            _aniBytesMd5 = data["_aniBytesMd5"]
            with open(str(path)+"/"+_aniBytesMd5+".u2d","rb")as f:
                _aniBytesMd5_bytes = f.read()
            f.close()
        with open(str(path)+"/" +"output"+"/" +skel_name,"wb")as f:
            f.write(_baseBytesMd5_bytes)
            f.write(_aniBytesMd5_bytes)
            f.close()

if __name__ == '__main__':
    path = r"C:\Users\zjbook\Desktop\bundles"
    skel_merge(path)

最终效果

3 个赞

感谢大佬!

:heart_hands:学习了!

不清楚 你得看这个游戏是不是套的这种方案 每个游戏的资源策略都不一样 也有可能不是spine做的动画 不过思路可以借鉴 可以看看monobehaviour里面有没有什么线索 仅限unity引擎的游戏

1 个赞

大佬,不好意思,可以请问一下怎么去伪文件头吗,小白不太知道

站内搜https://live2dhub.com/t/topic/2609/16

我把带unityfs的文件全解了,但是缺了好多角色,是什么情况

怎么解的啊,可以教教么 :grimacing:

还有一部分在apk里面 :sweat_smile:

先上鎮樓圖
看到有獸娘就引起我的興趣 : )

python代碼可用

這幾天都在整理這一款遊戲
主要在分類u2d文件 (寫bat)
有空再寫怎麼整理u2d文件 (應該會寫很長)

懶人包已弄好
SPINE部分 (skel版本有5個 , 用skeletonViewer-3.8.99.jar開啟即可 , skel文件每一個一一都看過了 , 比例怪異的png已都調整好)
\unity3d\assets\objects\spine\fabao (法寶)
\unity3d\assets\objects\spine\hero (角色戰鬥小人)
\unity3d\assets\objects\spine\hero_live (角色大圖) (圖很漂亮沒話講)
\unity3d\assets\objects\spine\herohead (角色Q版頭像)
\unity3d\assets\objects\spine\other (其他)
\unity3d\assets\objects\spine\pet
\unity3d\assets\objects\spine\shenchong

語音部分 (用foobar2000 + 外掛foo_input_vgmstream.fb2k-component 開啟acb awb文件 免hca key)
\audio (角色語音 技能語音 BGM 效果音)
\audio_repeat (重複的部分)

影片部分 (技能動畫 劇情動畫 PV)
\movie (usm文件用VGMToolbox抽出為m2v 再使用ffmpeg轉成mp4)

\unity3d (其他遊戲內圖檔)

\skel+json (合併前的skel 文件 , head + body 部分 , json文件 , 使用python合併後的skel文件)

\manifest (遊戲資源清單)
6d51a5f55f9fb034d3035de92227c8c5.txt (76KB)
8575f76ae57cd05b016f5290a95ce291.txt (78KB)
(audio和movie就是用這清單還原為原始文件名)

\text (台詞)
11013c44eaacf47bd20ee999d1ca338a.txt (431KB)
631929608d158f89fa7a735144943748.txt (613KB)

\bytes (沒作用的文件)

\u2d_unkown (不曉得是什麼文件)

懶人包
com.cyou.xxygb_20240723.rar (11.1GB)

Google Drive 載點

Mega.nz 載點

百度盤 載點

1 个赞

感谢大佬 :grin: