本帖最后由 pzx521521 于 2025-10-23 23:50 编辑
unity游戏解包 以丝之歌为例
解包工具测评
由于丝之歌unity 6.x编译出来的 可以看到是版本是6000.x
可以看到目前AssetRipper说支持6.x, UABEA没说,实测也可以.AssetStudio因为archived了 不支持unity6.x, 实测下来 对于文本都可以导出

AssetRipper使用浏览器做UI,怎么说呢,一言难尽,有好处也有坏处
导出翻译文件

以最小的文件ZH_Shop.bytes举例看一下里面的内容:
goR0Qm4pOg+9KHgo5DchPVrbcYleybFMIk+p/uvoRUrNI0FGjVxyiOLU/pRQ8s3IHx/ncu1jzhxjxYP5JLuF9NNYoLNoHPikGov9svSjVefEF+nQG3PRuDXv2a4+0sOUCxKGfq1D4XsjZREXyk5at0fZ68WL1tlBjaE5ZgnMYm2DjMHHKkqbRpBMx2Mc84KB1ZCs7R1q008hdeYdP+EYaIYSLzWNmSm3KWWK5T3+8UVUX+RLDg8stmdLLsStPqo4J/K7Sqxnz0Jy5pJ+YYrm2gcrXEJb7HGqfj010zZDWVxPlq5bv7qktySZWj8oerTFg4zBxypKm0aQTMdjHPOCgbw5RVSfkHgE23B3cKEz4tTIFMOtp7wkspyzkJeXpVxTXYKWQEJvzcetgjBWMfU5R2eJtsmDJIk7ng0W7pUL0S6EvCmlE3Z+vUsOm/DrS1xEOLFlcdJOzEBAQqt0Z4gzIlrbcYleybFMIk+p/uvoRUpdDHDBrrxokm0Ztsj8M0MifkkSSE1wDlYOcstU8LvjQIOMwccqSptGkEzHYxzzgoGG+o2pH82W+cHG9f8J63HcJwO54b43KfNRqP8DqOenxPoWleQF2MwhAAp7bdnUszrItCdRQsGDrVJlxsM9S5tVG6apazrDtLVHZL3946N3ObLZNN1HMg3sxDm1tQl21Ebf66t8m5bsFVafdlb8QRHA
明显是一个base64,解密一下->乱码,估计是有aes加密了
解密
用dnSpy打开Silksong_Data\Managed\Assembly-CSharp.dll 搜Decrypt找到 TeamCherry.SharedUtils下的解密函数
public static byte[] Decrypt(byte[] encryptedBytes)
{
byte[] result;
using (RijndaelManaged rijndaelManaged = new RijndaelManaged
{
Key = Encryption._keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
})
{
result = rijndaelManaged.CreateDecryptor().TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
}
return result;
}
可以看到是一个ECB的AES加密,key:
private static readonly byte[] _keyArray = Encoding.UTF8.GetBytes("UKu52ePUBwetZ9wNX88o54dnfKRu0T1l");
来一个脚本测试一下,成功解密出内容:
<entries>
<entry name="THUNTER_ITEM_BLASTEDLANDS">蚀阶</entry>
<entry name="THUNTER_ITEM_FIELDLANDS">远野地区</entry>
<entry name="THUNTER_ITEM_MUCKLANDS">腐沼地区</entry>
<entry name="TITLE_COURIERS_QUESTS">送货员</entry>
<entry name="THUNTER_ITEM_PEAKLANDS">费耶山</entry>
<entry name="THUNTER_ITEMS_TITLE">跳蚤线索</entry>
<entry name="THUNTER_ITEM_CITADEL">圣堡</entry>
<entry name="THUNTER_ITEM_MARROWLANDS">骸骨地区</entry>
<entry name="THUNTER_ITEM_MIDLANDS">中部地区</entry>
</entries>
|