记一次Unity拆包 —— 以 Cytus II 国际版为例

声明:

本文所提及内容已经实际违反了Rayark的用户协议,解包软件资源所带来的后果自负。

解包得到的资源只应用作个人学习、研究或者欣赏。严禁传播,更禁止用作商业用途。本文仅分享方法,不包含解包得到的资源文件。


别问为什么要拆,问就是听歌舔封面\NEKO//\NEKO//

前言

本文介绍两种方法,一种是使用UABE,一种是使用uTinyRipper。都是Windows 10 1909环境。

那么话不多说,干就完了奥力给

一些准备工作

和很多游戏一样,Cytus II国际版的资源文件不在apk包内,而是在一个.obb文件内。我下载的包为Google Play 3.0.1版本,文件为/sdcard/Android/obb/com.rayark.cytus2/main.29113500.com.rayark.cytus2.obb。Rayark没有对obb进行加密处理,直接把这个文件拷到PC上,解压。

在解压的时候还有一个地方需要注意。我平常使用的压缩软件是7-Zip 19.00,在解压完提取资源的过程中出现了问题,UABE直接报错,uTinyRipper解出来文件但同样报错,检查输出文件也没有发现想要的资源。最后发现问题出在7z上面,他解出来的资源文件体积非常小,仅有几百MB (后续测的时候发现7z其实报有额外数据没解出来了,但我当时没有看见) 解决方案是把obb后缀改成zip,然后用Windows自带的文件资源管理器进行解压。我使用的3.0.1最后解包得到了2.2GB左右数据,这个大小就正常多了。

META-INF文件夹直接删掉,我们想找的资源都在Assets里面。直接打开已经可以看见不少好东西了,背景、标题、剧情中用到的动画都直接以mp4文件的形式出现在了这里,还有Nora包的动态曲封gif和几个音效。但歌曲的音频、曲封等资源都在/bin/Data目录,里面是一堆看不懂名字是啥的文件(我估摸着是hash值)要让资源现出原形,就需要我们的主角登场啦!

方法1:使用UABE

全称Unity Assets Bundle Extractor下载链接(Github)

使用起来也非常简单:

  1. 打开AssetBundleExtractor.exe。他的主界面长这样:UABE主界面
  2. 点击左上角的File - Open,找到Data目录里面一堆文件,直接Ctrl+A全选,打开选择文件
  3. 等他加载完成之后来到了这么一个界面,在左边选择读取到的资源文件。Texture2D为图片,AudioClip为音频。文件命名方面,以Neko为例,Neko001为大Neko包,Neko002为小Neko包。文件选择
    为什么会出现同名同类型的2个资源呢?是因为cy2的预览音频和完整音频、IM内解锁弹出封面和选歌界面封面使用的是不同的文件,而UABE不显示他们之间的区别,就出现了这种情况。
  4. 在左边点选之后,点右边Plugin,按OK。弹出选择路径的窗口,确认之后文件就会导出到选择的路径了!Plugin
    如果导出的是Texture2D类型,在点完Plugin之后还有导出为tga、导出为png和编辑三种选项可以选择(好像还能用来替换图片资源,没试)

关于音频文件我多说几句,导出格式不可选,默认为wav,但用Audition打开看频谱明显是压缩品质()还是批量转换成mp3格式吧,这样比较节省空间要不是硬盘快满了我会这样

自购自抓的Arcaea专辑

拆包得到的wav,有明显的高频缺失

方法2:使用uTinyRipper(推荐)

通过上面的流程可以发现UABE还是有些弊端的。我是在检查上面提到的报错的时候阴差阳错地认识了uTinyRipper,感觉还挺好用就用上了(?)

uTinyRipper使用起来比UABE还要无脑不少。下载链接(SourceForge)

  1. 点开uTinyRipper.exe,把Data文件夹直接拖进去主界面
  2. 等文件加载完。看到那个大大的Export了吗?点他!导出

选完输出文件夹之后等待一会就导出完了。uTinyRipper要说好处真是用起来相当无脑,坏处也就是太无脑了,不管你要不要的资源全给你导出来,速度比较慢。但与此同时,他也会将不同资源分类。这时的资源命名规则跟之前提到的差不多,只是带有后缀_0的文件,表示IM解锁方形封面或者是预览音频。区分出来用起来就很方便了。

资源的自动化整理

咕咕咕


参考资料

本文链接:

http://www.direcore.xyz/archives/3/
1 + 3 =
12 评论
    诺顿Chrome 89Android
    3月15日 回复

    我也只解出了预览音频,但Date文件有一个多G啊,楼主怎么办

    MilarvozChrome 87Windows 10
    1月7日 回复

    我用了utinyripper, 但是之后只有level1的文件夹被导出,这是为什么
    以及想请教一下,obb解压出来的AssetBundles这个文件夹里的东西是什么,也挺大的

      .direwolfChrome 87Windows 10
      1月18日 回复

      @Milarvoz 如果没记错的话,我当时使用7-zip进行解压obb,就遇到了这种情况,文中也有提到。检查一下解压后Data的大小是否符合常理,我当时解出的Data有1.4GB,现版本估计更大)AssetBundles这个文件夹里边也是资源,需要通过别的方式解包,但是这个我没去倒腾了

    IcenightChrome 87Windows 10
    2020年12月12日 回复

    爲什麽我只看見預覽音頻, 沒有完整的。有大佬可以幫幫我嗎?

      .direwolfChrome 87Windows 10
      1月18日 回复

      @Icenight 评论的邮件提醒刚修好orz之前发邮件给您了,请检查您的邮箱))

        IcenightChrome 87Windows 10
        1月19日 回复

        @.direwolf 不好意思,我邮箱找不到,方便的話可以再發一篇嗎

          .direwolfChrome 88Windows 10
          1月25日 回复

          @Icenight 很奇怪))我发那封邮件和之前站点的邮件提醒用的是同一个邮箱,如果能收到提醒的话理应也能收到那封邮件才对..如果垃圾邮件里面没有的话我也不知道了
          首先是用Windows自带的资源管理器去解压obb,然后拆出来<名字是一段hash的目录>/Assets/AudioClip下,不带_0的是完整音频,我能想到的大致就这两点

            Icenight0812Chrome 88Android O
            1月26日

            @.direwolf 好的谢谢,感谢感谢

          .direwolfChrome 87Windows 10
          1月21日 回复

          @Icenight 已经给您重新发送了٩(ˊᗜˋ*)و

            Icenight0812Chrome 88Android O
            1月21日

            @.direwolf 不好意思,可是我真的看不到,我想问问在哪啊,打扰你不好意思。

    ItsZeroHikariChrome 81Windows 10
    2020年05月01日 回复

    学到了 这就去拆包()

    某魏Chrome 77Android N
    2020年06月19日 回复

    太强了