【星光偶像计划】数据下载和解包方法探索

前言

星光偶像计划(Stella Idol Project)是DMM新出的偶像主题放置类游戏,稍微玩了一下发现是彻彻底底的放置套壳,不过算是DMM近期做的质量稍微高一点的,所以探索一下数据包如何下载怎么解包。

(吐槽,国产漫画恰好有个叫《星梦偶像计划(Project stardream)》,一字之差……)

本文严重参考:https://live2dhub.com/t/topic/4536/6,非常感谢脚本下载作者和响应解密脚本作者二人🙏!

顺带一提后面联动还会出神杀的亚里亚顺带一提后面联动还会出神杀的亚里亚

环境准备

安装python(略)

首先创建文件夹。

下载脚本需要的python版的文件读取脚本环境:

git clone https://github.com/anosu/AddressablesToolsPy.git

切文件夹:

cd AddressablesToolsPy

安装环境:

pip install . pip install loguru

资源包下载脚本

密码是本文发布日期的6位数字。

用Assetstudio提取文件

用之前讲过的来解包。

此项目已变为存档状态,如有需要请fork或下载最新版保存。

用16进制文件浏览器看文件资源包中的情况,发现有两个UnityFS的文件头。

在Studio项目中这种算是属于FakeHeader类型的,所以在Specify Game当中选择FakeHeader。

光把文件拖进去的话还是会报错:

从Log的关键词中我们发现需要指定一个Unity版本,理论上这个版本需要去安卓的安装包里面找Unity原始资源的版本作为参考,我在网页端F12扒请求以后发现是2022.3.44f1,在Specify Unity Version中选择。

我乱输的这个也可以我乱输的这个也可以

然后我们把文件夹拖进去就可以发现没问题了。

Hashkey抓取

用F12访问网页版的游戏,可以抓到当前版本资源索引文件catalog_[versions].bin的URL:

https://cdn.XXX.com/v[versions]_[strings]/Addressables/WebGL/catalog_[versions].bin

可以看到最后的WebGL代表客户端类型,从参考页面可以看到有Windows/Android/WebGL至少这几种类型。

中间的版本号+字符串的还好说,这个版本号也对应了资源索引文件catalog_[versions].bin中的版本号。

在网络里面搜索论坛提到的DMM的api调用地址osapi,可以看到有一个资源hit了:

复制这个资源的响应:

将其保存到名为response.txt的文本文件中。

然后把下面的脚本保存为decode.py(这里的key和iv并没有发生变化):

和上面密码一样。

最后我们将response.txtdecode.py放在同一目录下,执行python decode.py response.txt,就可以获取到一段明文响应Config.json,响应中就包含获取资源包需要的hashkey。(上图)

在上图我们可以看到ab_hash_keyres_version等重要参数,也和脚本里的内容对上了。

后面再进行更新也只需要在网页端访问游戏,然后按本节解密响应内容即可。

添加新评论