从零开始的⽴绘拆包教程
蓝毒⼩天使天下第⼀!
本⽂拆包教程不限于明⽇⽅⾈,在后⾯也会给出其他⼿游的拆包教程,例如少⼥前线,碧蓝航线等最近⼀次更新于2019年8⽉7⽇
⽬录
拆包简介和使⽤⼯具:
⾸先拆包最简单的⽆⾮就是拆取游戏资源,例如游戏⽴绘,⾳频,视频等,再深层次⼀点有拆取游戏配置⽂件,apk反编译得到部分源码等在本⽂,我们只介绍拆取游戏资源和对游戏资源的后期处理,但是这⾥的⽅法不能保证所有的⼿游⽴绘都能提取,不同游戏对⽴绘等游戏⽂件的处理不同,这⾥只提供⼏种思路 XD
可能需要⽤到的⼯具有 Unity Studio,装有 opencv 的python或C++,PhotoShop
其中 是必要⼯具,可以⽤来提取市⾯上⼤部分⼿游的游戏资源
装有 opencv 的python或C++,PhotoShop 等可以对提取的游戏资源(⽴绘)进⾏处理,如果是要批量处理的话⾸推 C++ ,python 虽然⽅便但是太慢,PhotoShop 也可以进⾏批量处理,但是⿇烦且慢
PS:如果有其他有同样功能的⼯具也可以,不限于上⾯的⼏个软件,点击蓝⾊可以进⽹盘下载,理论上⽤ python的 PIL库 更好,不过我直接⽤ opencv 了,导致最后⽣成的可执⾏⽂件⽐较⼤
提取资源的⽅法:
⾸先,如果要拆取⽴绘等⽂件,就需要对应⽤程序进⾏处理,最简单的有两种⽅式:怎么对文件夹加密
1. 对下载的 apk 安装包 进⾏解压
⽅法如下,在电脑上下载对应游戏的apk安装包,把后缀 .apk 改为压缩包⽂件格式,如 .rar 等,利⽤解压软件对其进⾏解压得到解压⽂件夹
2. 对已经安装在⼿机的游戏,寻系统⽬录,到其⽂件夹
以少⼥前线为例,通常在⼿机上安装的软件,会把资源⽂件等放在 Android ⽂件夹的 data ⽂件夹下,这个时候到其对应的游戏⽂件夹即可,下图是 少⼥前线 的⽂件夹,明⽇⽅⾈⽐较特殊,它将资源⽂件隐藏在了其他⽂件⽬录下,所以最好使⽤第⼀种⽅法
通常进⼊⽂件夹后按照顺序进⼊以下⽂件夹 files ⽂件夹—— AB ⽂件夹 ——Android ⽂件夹,会看到⾥⾯的游戏资源⽂件,如果你是按照第⼀个解压⽅法做的,也可以看到上⾯的⽂件路径,按照该顺序点进去就⾏,然后根据游戏的不同,不同的⽂件可能会被放在⼀起,也可能会被分类在不同⽂件夹中,
这个时候只需要按照⾃⼰需要的进⾏复制提取到电脑上就好了,注意不要剪切,特别是⽤第⼆种⽅法的,千万别剪切
当然,到这⾥还没有结束,我们看到的资源⽂件并不是原来格式,⽽是以 ab后缀的⽂件 展⽰的,这个时候就需要 Unity Studio 来提取⽬标⽂件(当然不是所有⼿游都会⽤Unity,所以这个⽅法并不适⽤于所有⼿游,如果以后我遇到其他类型的再更新吧XD)
这⾥我们以明⽇⽅⾈为例,如果你正确的到了路径,那么你可以看到⼀个名为 charpack 的⽂件夹,其中储存了明⽇⽅⾈的⼲员⽴绘⽂件
这个时候打开 Unity Studio ,⽤如下选项 Extract folder 批量解压提取ab⽂件,之后使⽤ load folder 加载处理后的⽂件
然后在 Asset List 中就可以看到提取的内容
资源的后续处理:
提取出来的图⽚⼤部分情况下是有瑕疵的,因为他们需要进⼀步处理才能得到原图
⽽对于其中提取的内容,我们通常需要关⼼很多⽂件
常规情况下(使⽤通道分离压缩图⽚的):我们需要到⼀个是Type为Texture2D的原图,⼀个是Type为Texture2D或Sprite的透明度背景图,⽽且通常情况下,原图有⼀个⽂件名,对应透明度背景图⽂件名会在原图⽂件名后⾯加上alpha字样,我们通过处理这两个图才能得到最终的png图像⽂件,所以现在就将所有对应的图⽚⽂件从 Unity Studio 导出
还有⼀些情况,有些⼿游会对图⽚进⾏加密或者是做⼀些额外处理:这种情况我们就需要按照情况来分析哪些⽂件有⽤,哪些⽂件没⽤,例如碧蓝航线需要使⽤⼀张图⽚ + ⼀张obj 3D模型⽂件来还原原图
A. 通道分离图像的合成:
⾸先我们在前⾯提到过,如果我们能到⼀个是Type为Texture2D的原图,⼀个是Type为Texture2D或Sprite的透明度背景图,那么就说明这个⽴绘需要进⾏通道分离图像的合成来得到原图
那么这个时候我们应该如何处理呢,⾸先 png 图像有4个通道,前三个是 RGB 颜⾊通道,第四个是透明度通道,实际上为了减少图⽚的⼤⼩,⼤部分游戏⼚商都会先对图⽚进⾏ ETC 等压缩算法的处理,再将透明通道单独剥离出去,以达到最⼤程度的压缩,其中你会发现我们经⼿的⽴绘和在游戏中展⽰的⼀样,但仔细看会发现不够清晰,正是因为在打包成apk⽂件之前,游戏公司就已经先对图⽚进⾏了压缩处理,丧失了⼀部分信息,所以说并不是画师的原图,如果想提⾼清晰度,有两种⽅法,⼀种是原画师或官⽅公布等途径得到原图,⼀种是利⽤图⽚优化软件对其进⾏清晰度优化
进⼊正题,如何处理我们得到⽂件?
1. 利⽤ PS 进⾏处理:
这⾥我们直接引⽤⼀下这位贴吧⽼哥的⽅法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论