热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Live2DViewerEX创意工坊文件解密

Live2DViewerEX创意工坊文件解密声明:   本文只是讨论解密wpk、lpk文件。本人不会提供任何程序,只是经验分享。   如有侵权,联系删除。最近换了系统,而\(Liv

Live2DViewerEX 创意工坊文件解密

声明:

      本文只是讨论解密 wpk、lpk文件。本人不会提供任何程序,只是经验分享。

      如有侵权,联系删除。


最近换了系统,而\(Live2DViewerEx\)是无法再\(linux\)上运行的,\(steam play\)也是不支持的,\(wine\)也没能运行成功,

ztO如有它法,敬请告知Orz

没有办法,从github上找到了ppet这个软件,倒是可以支持,但是需要原始的模型文件,于是便开启了解密之旅。

本文是基Live2DViewerEX 创意工坊lpk文件分析 – 动态调试Unity程序一文。


WPK

这文件很简单就是一个zip压缩,解压即可,会得到,形如下的文件

file
┠**.lpk
┠**.png
┗config.json

LPK

这个文件本身也是一个zip压缩包,解压之后会有两个无后缀文件、一堆后缀为(\(bin/bin3\))的文件

其中较小的无后缀文件也是个\(json\)文件,另一个无后缀文件则是上一层中的那张图片

\(bin/bin3\) 的区别无非是 \(moc/moc3\) 猜也能猜到,后续也能在反编译的代码中找到相关代码


反编译

至此,已经无法再进一步获得信息了,开始反编译


dnSpy

\(dnSpy\) 是一个非常好用的调试\(c\#\)的程序,可以照着仓库去编译安装,也可以直接去找现成的使用


修复mono.dll


Unity程序为了防止别人通过反编译来破解修改自己的游戏项目。可以通过两种比较成熟的方案来预防。一种是混淆,另一种就是加密(加壳)。

Unity通过Mono来达到跨平台的效果。在Build编译时会将你编写的\(code\)转为符合\(CLI\)\(CIL\)(\(Common Intermediate Language\)),并且主要的Code会编译在Assembly-CSharp.dll里面,然后再有mono来加载,解析,执行。

很多有安全意识的游戏都会自己修改mono源码的mono_image_open_from_data_with_name函数,对DLL脚本进行加密。

不过这种的加密方式缺点比较明显。会在加载前进行一次性解密,游戏运行过程中,内存中存在解密后完整的\(dLL\)


以上来源网络,本人并不会unity,对于这个项目,也挺大的,去提取每个\(dll\)也很麻烦 其实是我不会

那就走另一条路,修复的mono.dll,于是还需要\(dnSpy-Unity-mono\)。照着文档就行了。

最后用\(Visual Studio\)编译(最好用2019,高版本有适配的问题),配置是Release,平台是x86。用编译好的mono-2.0-bdwgc.dll替换你需要调试的Live2DViewerEX里程序的mono就行(有两个,你调试哪个exe就替换哪个)


调试程序

为了能够更仔细的观察过程,选择自己上传打包自己的模型,这样能仔细观察,程序是怎么把模型打包成\(wpk\)的,所以选则调试\(exstudio.exe\)

至于怎么调试,阅读相关代码就不说了

这里只提供个找代码的好方法,\(dnSpy\)他只能搜函数,可以把代码反编译导出来,用其他的idea(本人用的\(vsc\)),就可以搜字符串了,

再在\(dnSpy\)里把你怀疑的代码打上断点即可

最后用自己熟悉的语言写个揭秘脚本就行了


bin文件改名

这就非常遗憾了,明眼也能猜七八,文件名明显是md5,但有和直接md5不用,经过查看代码,发现是先处理后md5

言而总之,文件名恢复是不可逆的,

只能通过文件的前1024个字节或\(mode.json\)去判断文件的类型了,明明就看自己习惯了,挺难受的

写了半天的通过\(mode.json\)改名,结果不同的模型的配置文件差挺大的,有的在一级有的在二级,老费劲了



推荐阅读
  • vue使用
    关键词: ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 最近学习反射机制的时候Properties.load(读取本地文件流的时候怎么也找不到加载文件后面发现IDEA的默认根目录是在它的Project工程下IDEA的文件目录和Ec ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
author-avatar
手机用户2502860565
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有