少女前线Live2D解密

2018-05-26 52,502 ℃

上周在CP22看到这个游戏两周年了,打算回坑玩一阵,不过上一个号是买的初始号账号密码都忘记了,所以只好开了个新号。然后新皮肤倒是抽到了,不过枪都没有怎么舔老婆呢,所以只好提取一发啦

少前Live2D的所有TextAsset类文件都加密了,搜了一下并没有找到相关的东西,就自己研究吧。解密函数就塞在libLive2DEncryption.so里,这名字生怕你找不到它,直接F5后照着写就行了

public static byte[] Decrypt(byte[] encrypt)
{
    var length = encrypt.Length - 17;
    var v24 = new byte[16];
    var decrypt = new byte[length];
    for (var i = 0; i < 16; i++)
    {
        v24[i] = encrypt[i * 5 + 1];
    }
    var v20 = 0;
    var v10 = -1;
    var v11 = 0;
    do
    {
        var v12 = v10 + 1;
        if (v10 + 1 > 80)
        {
            var v13 = v24[v10 - ((v10 + ((v10 - 16) >> 31 >> 28) - 16) & 0xFFFFFFF0) - 16];
            decrypt[v11] = (byte)(encrypt[v10 + 1] ^ v13);
            v12 = v10 + 1;
            ++v11;
        }
        else
        {
            if (v10 == 5 * (v10 / 5))
            {
                ++v20;
            }
            else if (v10 != -1)
            {
                decrypt[v11++] = (byte)(encrypt[v10 + 1] ^ v24[(v10 - v20) % 16]);
            }
        }
        v10 = v12;
    }
    while (v11 != length);
    return decrypt;
}

随便撸了个小程序

百度云

可以用如下方法快速提取,适用于0.10.0~0.12.3版本的AssetStudio

  1. 打开AssetStudio,勾选Options – Display asset original name,同时将group方式改为Do not group exported assets
  2. 用File – load file载入所有的live2d_gun_*.ab文件
  3. Show Type勾上TextAsset和Texture2D,用Export – Filtered assets导出
  4. 在提取后的文件夹里运行GFLive2DDecrypter.exe即可

我TM舔爆!

Il2CppDumper v6.1.0

距离上次在博客发布都要快一年了,这次因为又添加了一个新功能,所以在博客介绍一下。 ida脚本现在分为“ida.py”和“ida_with_struct.py”两个,使用“ida_with_s...

阅读全文

双生视界Live2D提取

总算是回到家了,差点就要把这篇文章咕掉了。 在github上有人提双生视界Live2D解出来的文件载入显示有问题时,UnityLive2DExtractor的代码还没写完,所以先用...

阅读全文

UnityLive2DExtractor

摸了好久终于是把这玩意摸完了。 程序在原本AzurLaneLive2DExtract基础上,除了一些bug修复和细节完善,最主要的是实现了physics3.json的还原,这样其他游戏...

阅读全文

215 条评论

  1. AS用的v0.12.29
    option勾选D a o n和O f/f a e选择Do not group
    filter type 勾选TA与Tt2D
    导出后只有一个assets文件夹
    .moc .mtn显示的还是 .bytes文件
    GFLive2DDecrypter我在assets各个文件目录下都试过,就是闪一下就没了。哪一步有问题吗?
    qq:1653983369求解哇

  2. 前面的问题解决了,我把ots14的大破整理出来了,能动,动作也自己研究了加进去了,但是没声音,还有,原立绘的文件存在另外一个地方,没放在live2d那里,整理出来也不一样,请问怎么处理?谢谢

    1. 似乎是我没弄懂?请问正确使用完GFLive2DDecrypter是不是剩下的文件格式就是json和bytes?

  3. 求救。。我是在安卓机上下载的国服最新版本,然后AssetStudio用的是0.12.29的版本,按照博主的做法提取出来的文件的确也是json文件,运行博主的给的小程序后,在live2dviewer中导入json文件的时候却没反应。。求救求救。。

  4. 博主好,因为游戏版本更新,所以解密小程序似乎不能用了。进而,对live2D的提取只能做到解包,能麻烦一下博主更新下解密吗?十分感谢。预祝新年快乐呀。

    我也想TM舔爆!

  5. dalao 按照你的步骤moc文件解码出来了,但是用live2dviewer打开之后是白背景模型是黑色,是怎么回事啊,哪里没弄对么?

  6. 大佬你好!我使用您的工具进行解包操作之后所生成的文件看起来不太对。每一个文件后面都有一个#编号。我在使用live2dviewer打开时会卡在12.1%,左边的文件的路径并不存在于我的电脑里面。

  7. 大佬求解,libLive2DEncryption.so现在安装包找不到了,现在按步骤解压下来进去live2d文件夹里moc、mtn文件都是bytes二进制的,不知道该怎么转换?

  8. 可以麻煩版主再提供GFLive2DDecrypter.exe的連結嗎?
    百度雲失效 live2D解包就差小程序這麼一腳

    感謝感謝

    1. 大佬,还有个问题不太理解。为什么大佬们hook代码的时候不直接修改mono_image_open_from_data_with_name方法,在这方法里面把代码hook出来。而是要重新写个so去hook呀

  9. 大佬最近想尝试下网上说的inline hook ,把hook的代码写好了编译成.so。但是不知道u3d的android手游从哪里加载.so文件。大佬能不能指导一下。

    1. 给你几个注入方案,具体的就请百度了
      1.修改classes.dex在入口点的OnCreate里添加一段System.loadLibrary
      2.使用Xposed注入
      3.使用VirtualApp类程序注入
      4.自己写个Zygote的注入

    1. 網路上找到的只有把spine導入unity的方法
      我連相關的程式都沒有
      之前用過spine viewer連打開程式都沒辦法…

    2. 如果是指https://github.com/EsotericSoftware/spine-runtimes
      我知道這個
      但是他下載只有原代碼沒有執行檔
      也找不到教學
      網路上的教學是以你已經安裝好相關程式為前提的…
      我不知道該怎麼辦

    3. 就是要源码啊,说起来还有点麻烦,版本下2.1.17(大概)然后把里面的spine-unity还有一个文件夹拖进unity工程里面,具体哪个忘了,不过网上的教程应该都有。顺便unity里面只能看到可以切换动作的预览图,具体怎么导出来我也不知道,大概得写个程序播放。

  10. 瞎折腾了很久还没没搞会。。提取出来的一切都正常,live2dviewer中也显示出来,触摸区域也有,但是点击对应的区域没有对应的动作。。。包括在自定义那里左边的列表点击mtn文件都没有对应动作,这个是为什么呀。。。。

  11. 如果你是用的模拟器,在/files 里找不到的live2d_gun文件的话可以尝试 在sdcard/data/data/com.digitalsky.girlsfrontline.cn 里找一下,模拟器会把游戏的安装包安到sdcard目录下

    1. 提取出来后,用live2d viewer载入,模型显示正常,也有触摸区域显示,但是点了没有对应的动作,这个是为什么呀?

  12. 请问,live2d提取出来后,我用Live2dviewerEX打开,模型有触摸区域,但点击触摸区域,模型却没有做出对应的动作效果,这是什么原因?
    有大佬解答一下吗?

  13. 請問一下您說的F5後照著寫是什麼意思? 拜託大大再說詳細一點~((搞了很久都搞不出來TAT

    1. 手机上下载游戏,安装,进入游戏下载数据包,下载完后关闭游戏,在手机Android/data中找到游戏文件夹com.digitalsky.girlsfrontline.cn ,在这个文件夹下的files/Android里就有所有的live2d_gun_*.ab文件,将它们传到电脑上
      (或者找到游戏完整数据包文件,用AssetStudio拆包,按上面的目录找到live2d_gun_*.ab文件);
      打开AssetStudio,勾选Options – Display asset original name,同时将group方式改为Do not group exported assets;
      用File – load file载入所有的live2d_gun_*.ab文件;
      点击Type 使 TextAsset和Texture2D类型的文件在最上面,Sprite类型文件在最下面,用Export – Filtered assets导出;
      在提取后的文件夹里运行GFLive2DDecrypter.exe即可。

    2. 你好,我在data/com.digitalsky.girlsfrontline.cn/files 其下并没有找到Android这个文件夹,files里头只有一个 .sox 一个.dat 和一个文本文件,如何才能找到live2d_gun_*.ab的相关文件呢? 非常感谢

    3. 进入游戏下载数据包没?用的什么手机?手机系统可能会隐藏数据文件,查看一下files文件大小(2.5g左右),或者手机连接电脑,用电脑查看一下。
      如果隐藏文件解决不了,就上网找完整数据包(找不到就没办法了,我也没找到),在电脑上解压数据包提取live2d_gun_*.ab。

    4. 您好,这里是刚开始学习解包游戏,程序只接触过最基础的C语言的小萌新,正准备从解包少前立绘开始尝试,然而我从一开始就被加密卡住了。我尝试着自己上网找解密方法,但我找了一个下午,找到的拆包教程全都跳过了解密的部分,就算有,也只是粗略带过。现在实在没办法只能求教一下大佬解密部分我该如何做?有小程序吗?如果有,能否发我一份?以下是我的QQ邮箱:1396226965@qq.com
      万分感谢

    5. (我不知道如何在live2d viewer中进行导入 .mtn,而只知道在live2d viewer之外拖到live2d viewer中)以下方法:
      在live2d viewer之外打开角色对应的motions文件夹,鼠标选中一个或多个 .mtn文件,将它们用鼠标拖到角色显示的窗口,左边的文件列表会显示motions文件夹与拖入的 .mtn文件,点击不同的.mtn文件,角色会做出对应的动作

    6. 如果你还看得到的话:
      我的问题是用l2dviewerex打开后鼠标点击人物但没有动作
      我的解决方法是用EX工作室编辑人物,按照官方的说明文档里的语言通过编辑配置文件将人物动作与鼠标动作关联
      说明文档网站:http://live2d.pavostudio.com/doc/zh-cn/
      真滴是佩服玩代码的大佬

  14. emmm正愁看不懂dnspy里F5出来的东西,刚好有参考答案让我学习了,给大佬递茶.jpg

  15. 萌新问下- -从第二部就开始卡主了- -载入所有的live2d_gun_*.ab文件这些文件是需要在哪里找到的? :???:

  16. 求问dalao,我按流程拆包解密出来的moc文件,只有HK416在Live2DViewer能正常显示,其它的打开都了都没有图案,还是白底,png也还在,请问怎么解决

  17. 这so文件当时确实是一眼就看到了,萌新就是想问问,v+数字,是指什么,自己研究的话要怎么找出来……?
    先谢过大佬指点了 :oops:

  18. 博主求解惑啊,按照博主的步骤导出现在国服最新版本的所有live2d_gun文件,结果全是txt格式的文件,重命名为josn也没用。因为博主给的小程序在我的电脑上无法运行,所以我用Live2D Wallpaper这个软件来检验导出的josn文件。其实之前用bilibili服的数据包中的live2d_gun文件是能导出josn文件的,而且导出来的josn文件也能在Live2D Wallpaper上运行,可惜是和谐过的,我就想再试试的国服数据包提取,结果就导出了txt文件。博主还在关注这个游戏的提取么?能否麻烦博主对现在这个版本的国服做新的提取方法呢,感激不尽。
    ps:博主的小程序闪退啊,这样就不能用pose.json和physics.json解除和谐了,肿么办,,用博主的小软件打开导出的文件会显示:对路径“C:\WINDOWS\system32\Com\dmp”的访问被拒绝。

    1. 终于发现下载反和谐数据包之后,导出来的文件都会变成txt。博主,我现在唯一的疑问就是:大佬你文章下面那张最高出价的GIF里,到底是怎么把胸中间那块黑布直接弄没的?我在live2d viewer上调了半天,pose.josn的“PARTS_HEXIE”数值变化只能控制黑布的透明度。难、难道真的是photoshop直接扣掉,,,

    2. 卧槽,model.moc在live2d viewer的Parts部分是可以调节的,终于把碍事的布弄掉了,555被自己蠢哭 :cry:

    3. 打开AssetStudio,勾选Options – Display asset original name,同时将group方式改为Do not group exported assets
      导出文件后请不要自己改动,把博主给文件放在和assets一个目录,不要拖动文件到程序上,点击程序运行一下就行,那个是运行解码完自动关闭,不是闪退。然后就可以正常打开了。

    4. 大佬,我想接着导出其他的live2d,结果导出的文件全是txt。重新下了一遍游戏数据包再导出还是txt,的确是按照博主给的导出步骤,请问这是什么缘故。会不会是无意中改了assetstudio的什么设置呢?

  19. 如果不修改libLive2DEncryption.so直接提取是否2d-live无法正常打开?
    GFLive2DDecrypter.exe启动后闪退什么情况?

  20. libLive2DEncryption.so 大佬这个文件夹在哪?找不到…..我是新手求解,感谢大佬。

    1. libLive2DEncryption.so,兄弟libLive2DEncryption.so这个文件在哪?能否说一下,新手上路跌跌撞撞的…

  21. 再反馈个问题,现在运行的话是和谐过的动作(你敢信,和B站上未和谐的录屏对比发现居然和谐了乳摇···怪不得这个读出来总觉得胸一动不动的)。不知道大佬能看看是什么的问题不?

    1. 把pose.json拖進去載入是讓它呈現未和諧樣貌
      把physics.json拖進去載入就會呈現乳搖了

    2. 请问您导出的最高出价的2Dlive和博主的一样么?都是胸前没有黑布的遮挡的么?

    3. 你按博主的设置走全解包出来,然后用博主的小程序解密走一波就都要有了啊。全拖进去就是未和谐的了。。

    4. 就是点一次里面的文件就都解码完了啊,具体怎么用那些文件自行研究吧。网上live2d说明多得是。

    5. 唉,,,总之谢谢解答。自己试着再弄弄吧,虽然我弄了一晚上还是没能启动博主的小程序

    6. 请问pose.json文件和physics.json文件都位于什么地方呢?是需要root才能看到的隐藏文件么?找了半天实在是没找着,这两个文件是否能麻烦您给发个连接呢,感激不尽。

    7. 关于和谐问题,我觉得吧,还是建议直接下台服客户端得了。
      国服即使反和谐依然是比那边和谐的,解完你也得手动改动作数据/贴图。
      别纠结国服才是正道 :evil: :evil:

  22. 上面的问题发现解决方法了 是贴图尺寸不对,重新单个找到1024×1024贴图导出替换回去就好了。留着给后面的人看!

  23. 非常感谢大佬!!这个方法我找了好久了。还有个问题反馈下,DSR50红牡丹皮肤的大破解包出来依然一片空白,不知道是什么问题。

  24. 那小程序没啥用啊 我提取完直接可以用live2dviewerex打开了 那个小程序用来干嘛的?

  25. 导出dsr50_2101 normal 里的贴图尺寸不是1024,想问下dalao那边会这样吗? :???: 其它几个都正常的说

    1. 肯定是texture2D,我有仔细看的,就只有她的正常模式是导出的贴图尺寸不正确,是1022像素的宽度 :shock: 会不会是缓存包下载的时候这个文件就是损坏的?

    2. 重新下载缓存后还是不行,用Export – Filtered assets导出的图片还是1004X1022,不过后来我试了只导出这一个文件,用selected assets导出就正常了 :mrgreen:

回复 qA 取消回复

8 + 8 =