galgame吧 关注:1,805,598贴子:26,900,025

回复:【教程向】浅谈汉化入门基本思路与实操

只看楼主收藏回复

支持大佬


IP属地:重庆来自Android客户端31楼2025-05-10 13:52
回复


    IP属地:江苏来自Android客户端32楼2025-05-10 14:02
    回复
      2025-12-30 20:38:23
      广告
      不感兴趣
      开通SVIP免广告


      IP属地:山东来自Android客户端33楼2025-05-10 14:33
      回复
        支持,我喜欢你


        IP属地:陕西来自Android客户端34楼2025-05-10 14:35
        回复
          支持大佬


          IP属地:广东35楼2025-05-10 14:56
          回复
            好帖,收藏了有时间我要手操试试


            IP属地:山东来自Android客户端36楼2025-05-10 15:10
            回复
              所以咋判断用的什么引擎呢,看文件目录结构?


              IP属地:四川来自Android客户端37楼2025-05-10 15:18
              收起回复
                智齿大佬


                IP属地:四川来自Android客户端38楼2025-05-10 15:35
                回复
                  2025-12-30 20:32:23
                  广告
                  不感兴趣
                  开通SVIP免广告
                  大佬


                  IP属地:广东来自Android客户端39楼2025-05-10 15:39
                  回复
                    支持


                    IP属地:陕西来自Android客户端40楼2025-05-10 16:50
                    回复


                      IP属地:广东来自iPhone客户端41楼2025-05-10 17:00
                      回复
                        ## L11
                        由于下载下来的镜像可以从exe直接进游戏,也不知到是有人帮我们动过了还是原本就不用验证,所以还是演示不了。
                        我们先观察游戏目录(我精简了一下,删除了一些不必要的文件包括64位exe,32位比较好调):


                        发现游戏数据包中大多是这种.cpz文件结尾的包,通过这些你能得到什么信息?
                        得到的信息就是:
                        一 .cpz文件是purple社用的一个叫cmvs封包格式,所以我们要从这个引擎入手,看看能不能查到相关资料。
                        二 红圈圈出的地方有一个叫start.ps3的文件看起来与众不同,很有可能是脚本载入的程序的入口点。
                        三 根据包的名字,我们要的文本资源有极大概率是在script.cpz这个数据包中,接下来我们可以重点解析这个数据包。
                        关于【游戏引擎】:
                        实际上,有不少游戏公司或同人没有自己独立的游戏引擎,这时候它们采用一些诸如kirikiri,unity之类的公开引擎来制作游戏,但是比较有规模的公司会采用自家研发的游戏引擎来制作。
                        同一家公司不改引擎(几乎不改)和加密的话前后作分析起来【区别几乎是没有的】,市面上比较常见的引擎是屈指可数的(是比方,手指可能不够用!),我们可以通过封包格式判断游戏采用了什么引擎:
                        KIRIKIRI系列 .xp3等后缀可以看出
                        YU-RIS,.ypf后缀
                        BGI .arc后缀
                        Siglus .g00后缀
                        Artemis .pfs后缀
                        unity,看dll就知道太明显了
                        还有我们这次分析的cmvs引擎 .cpz后缀...
                        (上面列出的就差不多是业界的一半了,没遇到的自行查阅就好,很容易判断的,7788的魔改引擎其实也不少就是了)


                        IP属地:吉林43楼2025-05-10 17:15
                        收起回复
                          ## L12
                          再打开游戏看看:

                          发现标题乱码了,但是游戏内的文本可以正常显示,这说明:
                          游戏内部虽然采用的是shift-jis编码,但是程序员显式指定了jis,所以一会我们要改成中文必须要把编码方式改成GBK,才能正确的识别我们的中文。
                          然后我们试着用GARbro去解包script.cpz,发现可以解开:

                          实际上有大佬替你负重前行过了,我们直接进去就OK:

                          解出来随便(并非随便)挑选一个包snky01.ps3,用【winHex】开进去看一下里面是什么样的:

                          多开几个包,你会发现,每个ps3文件前面都有这个"PS2A0"的这个头的特征,这个姑且记住一下。
                          提示一下,你看到那些方框,你不要以为他是什么加密过的乱码,这其实是解密过(有GARbro的大佬给你负重前行过)的,你看我用黄色荧光笔标记的哪些数字,是不是00 01之类重复数据很多。
                          学过信息论的都知道,真正加密压缩过的数据不可能这么稀疏,说明其实是解密过的数据,我为什么能那么刚好画出一整排的00 01?这是因为它们有很多是固定长度的【机器指令】,也就是所谓的OP。它们的分格段被我划到了,所以我们甚至可以直接修改这些机器码来实现我们想要的一下逻辑。
                          那真正加密过的数据长什么样呢?其实前面提到的start.ps3就是加密过的,给你展示一下:

                          能看出两者的区别了吧?
                          所以我们把解密的snky01.ps3往下拉:

                          标记出的这个是不是很熟悉?没错,这个就是前面进游戏截图的第一段话。
                          而文件的名字叫:snky01.ps3还有snky02.ps3,snky03.ps3... snho01.ps3,snho02.ps3...显然我们可以猜出snkyxx代表的共通线,snho,snrz...代表的应该是对应的个人线脚本。
                          OK,分析到这里,怎么搞大概可以有点想法了,就是用一些文本处理手段手段把汉化过的文本弄到snkyxx.ps3,snhoxx.ps3里面去,然后再弄回.cpz就行了


                          IP属地:吉林44楼2025-05-10 17:21
                          回复
                            支持英雄


                            IP属地:广东来自Android客户端45楼2025-05-10 17:22
                            回复
                              2025-12-30 20:26:23
                              广告
                              不感兴趣
                              开通SVIP免广告
                              ## L13
                              但是:
                              【图27】
                              可是Garbro并没有提供现成的.cpz的封包,那么现在怎么把一堆.ps3文件弄回.cpz让exe读取呢?
                              这里提供3条路:
                              0.在github看看有没有现成的封包软件
                              1.用IDA集爆肝+烧脑为一体进行一次酣畅淋漓的静态分析,花几天甚至半个月,把整个封包结构摸透,然后自己写封包程序。
                              2.用分析exe,HOOK等手段来【免封包】。
                              0我试过了,还真找到一个叫Niflheim有cpz的封包程序,但是编译运行下来不知道是我自己的原因(自由源码他也没给编译好的程序或makelist之类的),还是因为测试的封包是青鸟,反正《青春フラジャイル》是没法正常封包,你们要是有空可以去帮他给个issue,start之类,这种开发者还是欠issue,start的拷打。

                              1的话太难了,你我现在的水平弄起来很麻烦,再说能焊出来就行,弄的那么好也就图个好看,反正玩起来都一样,管他呢。
                              所以这里用免封包手段来焊这个フラジャイル。
                              【免封包】:由于游戏在运行期间是一定要把加密的数据包在内存中解密的成可以解析的文件的,免封包是指通过修改游戏运行流程,或劫持读取,解析函数等手段跳过数据包的解密流程,直接让游戏加载到我们修改过的解密文件,当你知道如何解密却不知道如何封包时,免封包是可以首先考虑的。


                              IP属地:吉林46楼2025-05-10 17:24
                              收起回复