吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6893|回复: 56
上一主题 下一主题
收起左侧

[游戏安全] unity游戏解包 以丝之歌为例

  [复制链接]
跳转到指定楼层
楼主
pzx521521 发表于 2025-10-23 23:47 回帖奖励
本帖最后由 pzx521521 于 2025-10-23 23:50 编辑

unity游戏解包 以丝之歌为例

解包工具测评

suport version update
AssetStudio 2022.x.x archived
UABEA 2022.x.x
AssetRipper 3.5.0 to 6000.3.X

由于丝之歌unity 6.x编译出来的 可以看到是版本是6000.x

可以看到目前AssetRipper说支持6.x, UABEA没说,实测也可以.AssetStudio因为archived了 不支持unity6.x, 实测下来 对于文本都可以导出

version

AssetRipper使用浏览器做UI,怎么说呢,一言难尽,有好处也有坏处

导出翻译文件

version
以最小的文件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.dllDecrypt找到 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>

免费评分

参与人数 13吾爱币 +24 热心值 +12 收起 理由
Kristenvivio + 1 + 1 我很赞同!
Coogeon + 1 + 1 谢谢@Thanks!
junjia215 + 1 + 1 用心讨论,共获提升!
willJ + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
huangxy07ai52 + 1 + 1 用心讨论,共获提升!
QQ2024 + 1 + 1 谢谢@Thanks!
ghimi + 1 热心回复!
klmytwb + 1 + 1 用心讨论,共获提升!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
MK88999 + 1 + 1 用心讨论,共获提升!
Cheems001 + 1 用心讨论,共获提升!
yuer424 + 1 + 1 热心回复!
gunxsword + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
8sp8 发表于 2025-10-24 08:58
这不是个xml么 其他的东西呢
推荐
lizhifeng2026 发表于 2026-8-18 19:34
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AES解密(即开即用)</title>
</head>
<body>
<h3>&#128275; 解密结果如下:</h3>
<pre id="output" style="background:#f4f4f4;padding:20px;border-radius:8px;word-wrap:break-word;white-space:pre-wrap;max-height:600px;overflow:auto;"></pre>

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js">
</script>
<script>
// 1. 固定密钥(与你给的 C# 代码完全一致)
const key = CryptoJS.enc.Utf8.parse("UKu52ePUBwetZ9wNX88o54dnfKRu0T1l");

// 2. 你提供的 Base64 密文(原封不动)
const ciphertextBase64 = "goR0Qm4pOg+9KHgo5DchPVrbcYleybFMIk+p/uvoRUrNI0FGjVxyiOLU/pRQ8s3IHx/ncu1jzhxjxYP5JLuF9NNYoLNoHPikGov9svSjVefEF+nQG3PRuDXv2a4+0sOUCxKGfq1D4XsjZREXyk5at0fZ68WL1tlBjaE5ZgnMYm2DjMHHKkqbRpBMx2Mc84KB1ZCs7R1q008hdeYdP+EYaIYSLzWNmSm3KWWK5T3+8UVUX+RLDg8stmdLLsStPqo4J/K7Sqxnz0Jy5pJ+YYrm2gcrXEJb7HGqfj010zZDWVxPlq5bv7qktySZWj8oerTFg4zBxypKm0aQTMdjHPOCgbw5RVSfkHgE23B3cKEz4tTIFMOtp7wkspyzkJeXpVxTXYKWQEJvzcetgjBWMfU5R2eJtsmDJIk7ng0W7pUL0S6EvCmlE3Z+vUsOm/DrS1xEOLFlcdJOzEBAQqt0Z4gzIlrbcYleybFMIk+p/uvoRUpdDHDBrrxokm0Ztsj8M0MifkkSSE1wDlYOcstU8LvjQIOMwccqSptGkEzHYxzzgoGG+o2pH82W+cHG9f8J63HcJwO54b43KfNRqP8DqOenxPoWleQF2MwhAAp7bdnUszrItCdRQsGDrVJlxsM9S5tVG6apazrDtLVHZL3946N3ObLZNN1HMg3sxDm1tQl21Ebf66t8m5bsFVafdlb8QRHA";

try {
    // 3. AES-ECB 解密(PKCS7 填充)
    const decrypted = CryptoJS.AES.decrypt(ciphertextBase64, key, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });

    // 4. 优先尝试转成 UTF-8 文本
    let plaintext = decrypted.toString(CryptoJS.enc.Utf8);
   
    if (plaintext && plaintext.length > 0) {
        document.getElementById('output').textContent = plaintext;
    } else {
        // 如果不是文本,显示十六进制(方便你判断文件头)
        document.getElementById('output').textContent =
            "&#9888;&#65039; 解出来的不是可读文本(可能是图片/压缩包等二进制)。\n\n十六进制前200字节如下:\n" +
            decrypted.toString(CryptoJS.enc.Hex).slice(0, 400) + "...";
    }
} catch (e) {
    document.getElementById('output').textContent = "&#10060; 解密失败(密钥或密文不匹配): " + e.message;
}
</script>

</body>
</html>
3#
BrutusScipio 发表于 2025-10-23 23:54
中国区不是整了个分支版团结引擎吗,但这种功能一般都是共用的吧
4#
sceptic 发表于 2025-10-24 00:01
学习了,虽然看不懂
5#
6302638 发表于 2025-10-24 00:05
看不懂,但好牛,不明觉厉
6#
52kail 发表于 2025-10-24 07:53
这个key是怎么找到的?
7#
yedada1314 发表于 2025-10-24 08:46
大佬很厉害,我也想学习逆向分析,如果可以的话,希望大佬出点教程,带领我们小白进行学习
8#
Jerrymei 发表于 2025-10-24 08:54
感觉很厉害
9#
uncleWong0160 发表于 2025-10-24 09:25
Emm....看不懂 不明觉厉
10#
VictorQuqi 发表于 2025-10-24 09:29
解密密码直接搜都能搜到,加密混淆还是有点拉了(
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-11 22:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表