jockstudio吧 关注:2,613贴子:7,314
  • 7回复贴,共1

JS解包概览

只看楼主收藏回复

基础芝士看这里https://github.com/imadr/Unity-game-hacking
包里大部分CG、语音、BGM、动态CG(实际上是webm视频)及其他美术素材可以用AssetStudio解出,没什么难度
值得提的有两部分
1、Film和健身小游戏的动态小人是基于Spine,模型文件由三部分组成:Master~Master_10的贴图共十张,纹理图集Master.atlas以及骨骼Master.skel,集齐之后可以在Live2DViewEX(steam购买)的EX工作室查看
目前仅通过EX工作室无法还原所有动画,需要专门定制的播放器
2、人物立绘
人物立绘的所有身体、表情都被pack进一张4K或x8K的大图里,然后被分割成sprite,命名规则如下
<角色名><数字分类号>-<字母分类号>-<命名>
其中,序号字母分类号a和b是身体,f是表情
似乎仍然需要手工合成,但是配合Photoshop的数据组和一点点手工应该可以把所有立绘还原出来,不排除资源包里存在合成的相关数据,但是目前为止仍然还没有找到
3、游戏代码
游戏的功能和逻辑实现在Jock.scripts.dll里,用dnSpy或者ILSpy可以反编译,图中所示为加好感度的函数,这里绝大多数都是零散的类,没有发现由数据,值得一提的是发现了一个Encryption类,里面有个密钥A9F4B2D91E5C8A7F3D4E1C6B7E9A2B1F,暂不知道何处调用了此类加密/解密了什么数据(有可能是存档?)
4、游戏脚本
游戏脚本集中保存在根目录\JockStudio_Data\StreamingAssets\aa\StandaloneWindows64\naninovel-scripts_assets_naninovel\scripts内,遗憾的是原始脚本文件似乎已经被编译成中间代码,虽然其中存在指令数据和剧本数据,但是仍无法正确解析

不应该被解析成ns的数据里包含部分台词数据

需要重新修复数据的映射关系才能还原出游戏脚本


IP属地:广东1楼2024-12-21 23:36回复
    解包有后续的cg嘛


    IP属地:山东来自Android客户端2楼2024-12-22 01:14
    收起回复
      书接上回
      *.nani脚本文件被编译为中间代码,观察dump数据发现存在重复数据结构
      ReferencedObject data
      SInt64 rid = 1001
      ReferencedManagedType type
      string class = "GenericTextScriptLine" 类名
      string ns = "Naninovel" 命名空间
      string asm = "Elringus.Naninovel.Runtime" 程序集名
      ReferencedObjectData data 参数
      对应16进制的

      其中class对应asm里ns里的方法,例如在Elringus.Naninovel.Runtime.dll里Naninovel命名空间内的GenericTextScriptLine类
      LabelScriptLine说明这是一个标签行,即naniscript语法中的#start,查看LabelScriptLine的构造函数发现其需要三个参数:public LabelScriptLine(string labelText, int lineIndex, string lineHash),发现ca9ebe4可能对应hash,start可能对应labelText,至于lineindex我们只需要知道它大概位于hash和asm之间,而且偏移固定即可,对每个对应的对象进行解析就能还原成大致的脚本


      IP属地:广东3楼2024-12-22 01:15
      回复
        看不懂,不过发现有型的阿虎哥出来活跃了还是抱一抱阿虎哥满足一下兴致


        IP属地:广西4楼2024-12-22 02:47
        回复
          拼立绘能出下详细教程吗?


          IP属地:海南来自Android客户端5楼2024-12-22 08:59
          回复
            麻烦问下大佬AssetStudio用的哪个版本?我用AssetStudio.net5.v0.16.40报错:‘System.IO.IOException: Lz4 decompression error, write -1 bytes but expected 131072 bytes’,用AssetStudio.x64_x86.v0.15.32只能看到几张图片


            IP属地:天津7楼2025-03-02 22:58
            收起回复