## 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就行了

。