今天刚开始准备推妹抱,发现了这个游戏是可以更改主人公的名称
但是!当我准备把我用户名输进去发现事情有点不对劲
我发现我的用户名的最后一个字母"r"输不进去,原来这游戏对用户名长度进行了限制,只能6个字符
我当时的想法是修改存档里面的用户名(剧透,该方法无效)
所以我使用如下工具
https://github.com/arcusmaximus/KirikiriTools/
这个东西可以解密krkr的tjs为明文,而存档文件实际上加密方式同tjs,所以我们使用这个工具也可以解出来
我们把KirikiriDescrambler.exe
从github下载下来扔到savedata目录 (记得退出游戏)
然后执行 KirikiriDescrambler datasc.ksd
如果出现File descrambled. 说明成功
然后你就可以用记事本打开了
接着找到
"PlayerName" => "listde",
将其修改为你的名字,然后保存重新打开游戏
接着。。。神奇的事情发生了,你会发现启动游戏的一瞬间,它又改回去了。。。
看来修改存档貌似是不行的,这玩意会进行判断,那只能考虑逆向?
然后。。。我逆向了半天什么也没看出来
不过,就在我要放弃的时候,随便乱翻发现了这个东西
wow,原来限制的功能居然是在xp3封包里面的一个叫做option_system.func
实现的
这样一来思路就很简单了,直接利用garbro解包,修改文件然后利用KirikiriTools下的Xp3Pack.exe进行封包
先解包,因为是未加密的xp3封包,所以garbro可以秒掉(
用vscode打开 .\data\uipsd\option_system.func
如果乱码是正常现象,vscode右下角找到utf-8 (也有可能是GBK)
选择用编码重新打开,然后点击shift jis
这样编码就正常了
接着我们找到这个SystemConfig.PlayerName, maxchars,6
将6改为7,然后保存
接着我们返回根目录封包即可 (记得删除原先的data.xp3)
输入
Xp3Pack.exe data
等待片刻即可完成封包
打开游戏!
可以发现我们可以正常修改用户名为listder了