熙风新笺吧 关注:81贴子:37
  • 11回复贴,共1

煦风新笺资源文件拆解

只看楼主收藏回复

前段时间在steam上发现了这个游戏,玩完之后发现手又痒了。。。
想把资源文件全部拽出来。。。
注:LZ的游戏版本是Demo1.4.2


IP属地:浙江1楼2022-03-23 13:10回复
    注:本贴所有内容仅供学习参考,请尊重作者版权
    镇楼
    ~


    IP属地:浙江3楼2022-03-23 13:14
    回复
      首先,熙风新笺是基于Ren‘py进行开发的。
      而RenPy的源文件一般使用.rpa的格式保存
      所以,只需要打开游
      戏目录,game目录下的rpa文件即为游戏脚本、资源。


      IP属地:浙江4楼2022-03-23 13:17
      回复
        一般的rpa文件打开后其前几个字节为RPA版本
        但是熙风新笺的rpa包不知为什么前几个字节是“TMOS 2.0”
        明显就不是一个RPA版本号啊喂(RPA包的常见版本是RPA-1.0,2.0,3.0,3.2,4.0等)
        LZ尝试过用unrpa工具解包,自动识别版本时提示未知的文件版本
        LZ试着用-f限定版本为RPA-3.0,结果最后50多MB的rpa给整出了30G的文件(LZ的固态在流血
        用HEX编辑器查看,大多数字节都明显重复了
        明显的解包失败
        但是好在这样解包出的文件的文件名和文件夹结构是正常的

        根据这个可以发现大部分的资源文件都是.webp格式
        (也有少量png)
        正片开始


        IP属地:浙江5楼2022-03-23 13:25
        收起回复
          在不断尝试下LZ发现这些rpa包是采用“Made with Ren'Py”来分割文件字节的

          于是,LZ用python写了几个脚本来自动分割文件
          首先拆分的是game目录下的resourses_images,也就是图片资源。最后LZ得到了900多张图片
          (PS:由于lz的脚本过于生草,拆分这个50M的文件用了5个多小时。。。)

          但是,看了一遍文件后LZ发现了一个问题
          编号488-572的文件似乎还是无法打开


          IP属地:浙江6楼2022-03-23 13:36
          回复
            使用HEX编辑查看这些文件的头,可以发现大部分文件的头都是PNG文件的标准头

            但是进一步查看,这些文件没有PNG文件必须具有的IDAT和IEND数据块标识
            对照上面解包出的文件夹结构与文件名,可以推断出这一部分文件应该位于原目录的CG位置
            本来LZ想就此放弃,但是LZ最想要的就是CG啊
            进一步研究,可以发现这些文件的原扩展名是.pic
            于是LZ又研究了半天pic文件,才发现又想多了。。。。根本打不开


            IP属地:浙江7楼2022-03-23 13:43
            回复
              LZ几次失败之后,最终认为既然拆解游戏本体,那就从Ren’py引擎下手

              在renpy的display子文件夹中,可以发现其中有一对python源码 im.py和im.pyo

              参考上面的2.rpy,可以发现其中在传输解密后图片数据时引用了im.Data()方法

              而im.py中也存在Data类!

              于是,lz在__init__()方法中插入了一段代码
              于是...lz想要的cg到手!

              美汁汁~


              IP属地:浙江9楼2022-03-23 14:10
              回复
                技术力贴赞一个


                IP属地:山东10楼2022-05-13 21:13
                回复
                  牛逼


                  IP属地:新疆来自Android客户端11楼2022-09-10 12:44
                  回复


                    IP属地:山东12楼2023-03-27 19:26
                    回复
                      技术佬赞一个 分享下解cg加密的py代码吧😭😭 Python我是一窍不通


                      IP属地:辽宁来自Android客户端13楼2023-07-18 08:42
                      回复