吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16578|回复: 28
收起左侧

[调试逆向] 2019-11-19 碧蓝航线立绘的修改及封包实现的论证分析

  [复制链接]
bluekiller 发表于 2019-11-19 17:56
本帖最后由 bluekiller 于 2019-11-19 19:12 编辑

上一篇碧蓝航线立绘的成像原理及提取技术分析 论证了加密立绘的加载和立绘提取的可能性,今天我们来在游戏中论证修改立绘和封包的可能性。

课题:我们还是以贝尔法斯特为蓝本,进阶研究:
1.有没有可能破解加密方式,不用51一个小块,只用1个大块封包
2.有没有可能性替换其他的立绘。

课题提出的目的是因为,采用51个小块,将限制立绘的几何形状的修改,而采用大块mesh,将无限制立绘几何形状的发挥,甚至可以替换成别的立绘。当然难度增加。不尝试不知道,万一行了呢。

360截图16241223103129133.png

这张游戏贝尔法斯特的截屏,我们的目标就是实现少女前线的立绘红牡丹封包进去。下图就是少前的红牡丹

lafei.png
为了减少不必要的修改,我们采用贝尔法斯特的画布896x1214,通过ps将贝尔法斯特替换为红牡丹。这样做得好处就是mesh中的许多参数的修改可以跳过了。

下面beierfasite_4.mesh.mesh就是根据上一篇的mesh结构分析mod的
360截图17001022576891.png

由于采用贝尔法斯特原先mesh结构,大大简化了修改工作量
原来:
0x20 -          值0x32010000 4字节,LE,解析为三角形面f的描述数量,306(DEC)顶点,描绘1个四边形需要6个点,306/6=51。ok ,也就是说texture2d的贝尔法斯特图像被切割成了51块
mod:         修改为0x06000000,因为原来是51个块306,那么1个块就是6.

原来:
0x30 -          值0xCC000000 4字节,LE,解析为贴图顶点数量,204(DEC)顶点,一个小块的贴图顶点4个,那么204/4=51。
mod:         修改为0x04000000,因为原来是51个块204,那么1个块就是4.

原来:
0x70 -          值0x64020000 4字节,LE,612(dec),vector IndexBuffer items,612字节,三角形面f的数据612/6=102个面。
mod:         修改为0x0C000000,因为原来是51个块612,那么1个块就是12.我们只要复制原来612字节的前12字节就ok了,其他的删除。记住地址偏移上移了600字节

原来:
0x00000308 值0xFF0F0000,4字节,LE,4080 (DEC),4080 items,4080字节,这里就是mesh的重点数据区描述,
0x0000030C -                         4080字节的开始偏移地址。20个字节描述5个顶点数据,前12字节是一个v顶点坐标(x、y、z),后8字节是vt贴图顶点坐标(x、y)。一个四边形4个v顶点坐标,12x4=48字节,48x51=2448字节,一个四边形4个vt贴图顶点坐标,8x4=32字节,32x51=1632字节,1632+2448=4080字节,完全吻合。

mod:        
0xB0000000 修改为0x50000000,因为原来是51个块4080,那么1个块就是4080/51=80,删除原先4080后面的4000字节,好,这80字节就是一个快的4个v顶点坐标和vt顶点坐标
格式:20字节,v(x、y、z)12字节 + vt(x、y)8字节 每4字节计算dec的float写入
第1组:0x00B4-0x00C8  v(x、y、z)12字节 + vt(x、y)8字节 =(0  0  0)            + ( 0  0)
第2组:0x00C8-0x00DC  v(x、y、z)12字节 + vt(x、y)8字节 =(0  1214  0)     + ( 0  1)
第3组:0x00DC-0x00F0  v(x、y、z)12字节 + vt(x、y)8字节 =(896  1214  0)  + ( 1  1)
第4组:0x00F0-0x0104  v(x、y、z)12字节 + vt(x、y)8字节 =(896  0  0)         + ( 1  0)


下图方便理解

11.fw.png

ok,mesh改造完成。

验证一下,输出到obj格式

360截图18510717106106107.png

ok,没有错误,导入MAX并贴图

360截图16720331637770.png

ok,正确

另存为fbx,再看一下
360截图16720404243853.png

没有毛病

最后的工作,封包入源文件beierfasite_4_tex.unity3d,替换掉原来的包文件mesh和texture2d
用lz4压缩算法压缩。
将最终mod的beierfasite_4_tex文件丢手机内存碧蓝航线热更目录的Painting目录,覆盖原文件。

================
启动游戏,看看贝尔法斯特wife

360截图167204058611280.png

卧槽,这也行。

就此,论证修改立绘和封包的可行性。

over


免费评分

参与人数 7吾爱币 +16 热心值 +7 收起 理由
衣以候 + 1 + 1 谢谢@Thanks!
201911 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
willJ + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
UnrealFPS + 1 + 1 我很赞同!
孤僻木鱼 + 1 + 1 牛批
zimo650 + 1 + 1 谢谢@Thanks!
夏雨微凉 + 2 + 1 热心回复!

查看全部评分

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

 楼主| bluekiller 发表于 2019-11-20 08:05
corbell 发表于 2019-11-20 08:03
这意思是将游戏内的人物 “扣”出来?  是吧?

不是这个意思,游戏立绘被事先加密分割了,这操作只是还原
天真同学 发表于 2019-11-21 21:55
bluekiller 发表于 2019-11-21 21:52
图都解密了,要啥代码?

有代码可以改SC达到替换SC用指定皮肤的效果。。。。
1330134210 发表于 2019-11-19 18:26
zxbbzxzx 发表于 2019-11-19 18:49
看到标题进来了,虽然不是很明白顶帖
Ch1valry 发表于 2019-11-19 18:54
大佬牛逼
Kyaru 发表于 2019-11-19 19:06
虽然不是很懂,但是会不会被查啊
 楼主| bluekiller 发表于 2019-11-19 19:13
Kyaru 发表于 2019-11-19 19:06
虽然不是很懂,但是会不会被查啊

仅限技术探讨
okita 发表于 2019-11-19 19:51
大佬 会sc的修改吗
 楼主| bluekiller 发表于 2019-11-19 19:55
okita 发表于 2019-11-19 19:51
大佬 会sc的修改吗

听不懂你说啥
sanshui332 发表于 2019-11-19 20:11
好像很厉害的样子~~
幸运合成器 发表于 2019-11-19 20:12
大佬,看你id十分的眼熟,我是从碧蓝航线r贴吧跟过来的,用过你的合成工具
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-3-29 17:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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