吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5347|回复: 39
收起左侧

[.NET逆向] 记解包一个Unity引擎的视觉小说

  [复制链接]
Tonyha7 发表于 2022-11-26 14:05

前言

对于解包Unity引擎的资源 已经有不少优秀的开源工具
但是这款游戏是厂商自己实现的资源加密 这几天有空就研究了下解包
文章中可能有不当之处 还请大牛们多多包涵

分析

dnspy打开游戏目录下的Assembly-CSharp.dll
先搜索游戏资源文件的后缀.dat



这个PRead的类比较像 进去看看有什么方法




通过查看调用 大致能猜到这个字节数组Data返回的应该是文件



这个字典ti存储了文件名和文件的信息
大致流程是先new一个PRead(.dat文件路径) 然后通过传入文件名让Data返回文件的字节数组
有了这些 可以试试解包了

写解包程序

vs新建个控制台项目 新建个PRead类
直接把dnspy反编译的代码粘贴过来
把需要用到的东西修饰符都改成public 防止访问不了



然后模仿刚才的流程 把返回的字节数组用BinaryWriter写入文件

        static void Main(string[] args)
        {
            PRead pRead;
            Console.WriteLine("鍵入dat完整路徑(如C:\\Games\\[蒼の彼方のフォーリズム][苍之彼方的四重奏][sprite]\\Aokana_Data\\sprites.dat):");
            String dat = Console.ReadLine();
            Console.WriteLine("鍵入輸出路徑(如F:/):");
            String outpath = Console.ReadLine();

            pRead = new PRead(dat);
            foreach (string fileName in pRead.ti.Keys) {
            if (!Directory.Exists(outpath)){ 
                    Directory.CreateDirectory(outpath);
                }
                Directory.CreateDirectory(Path.GetDirectoryName(Path.Combine(outpath, fileName)));
                FileStream fs = new FileStream(Path.Combine(outpath, fileName), FileMode.Create, FileAccess.Write);
                BinaryWriter binaryWriter = new BinaryWriter(fs);
                byte[] array = pRead.File(fileName);
                if (array!=null)
                {
                    foreach (byte b in array)
                    {
                        binaryWriter.Write(b);
                    }
                    binaryWriter.Close();
                }
            }
        }


搞定 这里解包的是bg.dat 其他文件有的有点辣眼睛 就不截图了

免费评分

参与人数 10吾爱币 +16 热心值 +9 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lingyun011 + 1 + 1 热心回复!
ZeroBoom + 1 + 1 谢谢@Thanks!
allspark + 1 + 1 用心讨论,共获提升!
aliez114 + 1 我很赞同!
Xiangzhisuoxin + 1 + 1 我很赞同!
liuzqm + 1 + 1 我很赞同!
axin0529 + 1 + 1 热心回复!
CYLmtthhh + 1 + 1 用心讨论,共获提升!
HGYVIP + 1 + 1 我很赞同!

查看全部评分

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

yiting8 发表于 2022-11-26 15:11
就是要看辣眼睛的

免费评分

参与人数 3吾爱币 +1 热心值 +2 收起 理由
fouding + 1 + 1 用心讨论,共获提升!
luliucheng -1 请勿灌水,提高回帖质量是每位会员应尽的义务!
sdy623 + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| Tonyha7 发表于 2022-11-26 20:07
WaltYoung 发表于 2022-11-26 18:16
怎么判断一个视觉小说是不是unity引擎的呢?

找特征啊 Unity特征很多的 比如UnityCrashHandler 游戏_Data\Managed\Assembly-CSharp.dll 这些
dofu05jj7uu 发表于 2022-11-26 14:21
victorli 发表于 2022-11-26 15:51
大佬666,感谢分享
Suppose 发表于 2022-11-26 17:30
不辣眼睛的谁看啊
WaltYoung 发表于 2022-11-26 18:16
怎么判断一个视觉小说是不是unity引擎的呢?
wyd521 发表于 2022-11-26 20:35
感谢楼主的分享
BOSS123 发表于 2022-11-26 21:31

怎么判一个视觉小说是unity引擎的呢
ssshoi 发表于 2022-11-26 22:49
感谢分享啧啧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 10:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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