少女前线Live2D解密

2018-05-26 10,811 ℃

上周在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;
}

随便撸了个小程序

百度云

可以用如下方法快速提取

  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舔爆!

碧蓝航线Live2D提取

自从看到敦刻尔克的live2d后就决定要提取一发来射爆,经过简单的分析后发现游戏使用的是Cubism 3,在Unity里导入motion3.json时会转换为AnimationClip,这种...

阅读全文

Unity下的注入与修改

已经有很长一段时间没写过游戏修改的文章了,一个原因是现在越来越多的手游厂商都开始给游戏上各种各样的保护,以前简单的直接修改dll或者直接修改so早已经不...

阅读全文

简单绕过BanG Dream校验

2.2.0 上周去参加CP22,炸梦演出时的人比想象中的要多,给我一种国服能很火的感觉,于是我决定下回日服顺带摸鱼一篇文章 游戏不懂什么版本开始加入了一点校验...

阅读全文

106 条评论

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

    感謝感謝

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

  2. 大佬最近想尝试下网上说的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連打開程式都沒辦法…

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

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

                    1. 你需要先安裝
                      Microsoft XNA Framework Redistributable 4.0
                      跟.NET Framework 4.6.2

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

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

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

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

    1. 已经自己解决问题了,一开始太急躁,静下心来才发现自己忽略掉了重要的东西 :mrgreen:

  6. 請問一下您說的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即可。

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

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

                  1. 将motions文件夹里的 .mtn 拖入live2d viewer,就有动作;但是live2d viewer貌似不支持交互。

                    1. 还是不是很懂。。我在live2d viewer那里无法加载mtn文件。。

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

                    1. 。。已经在列表中显示mtn文件了,但是点击了也不会做出对应的动作啊 :cry:

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

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

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

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

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

  11. 博主求解惑啊,按照博主的步骤导出现在国服最新版本的所有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一个目录,不要拖动文件到程序上,点击程序运行一下就行,那个是运行解码完自动关闭,不是闪退。然后就可以正常打开了。

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

        1. 运行完程序会自动命名为json,另外程序是放到提取后的文件夹里,不要放在外面

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

    1. 同闪退,的确是按照博主说的在导出的文件下启动,仍然闪退。怎么办,,

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

        1. 或是你找libmonofix.so 新版好像換成這個名稱
          用ida pro可以找到decode的方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

欢迎留言

1 + 5 =