Open twinstar6980 opened 1 year ago
82/93/83 等类型中编码了 unicode 字符串,它们以两个varint与字符串内容组成,游戏以第一个 varint 的值作为该字符串的 unicode 字符数,以第二个 varint 作为该字符串的字节数。 在目前的几个解码工具中(Taiji/PvZ2Tool/PopStudio),它们均舍弃前者而直接使用后者作为字节数来截取 utf-8 字符串的内容,但对 libPvZ2.so 的逆向分析表明,游戏舍弃了后者,而以前者作为字符数来读取 n 个 utf-8 编码的 unicode 字符。 因此,本项目中的 RTON unicode 字符串处理存在错误,需要开发者进行修正。
感谢,将会在下个版本进行修复
82/93/83 等类型中编码了 unicode 字符串,它们以两个varint与字符串内容组成,游戏以第一个 varint 的值作为该字符串的 unicode 字符数,以第二个 varint 作为该字符串的字节数。 在目前的几个解码工具中(Taiji/PvZ2Tool/PopStudio),它们均舍弃前者而直接使用后者作为字节数来截取 utf-8 字符串的内容,但对 libPvZ2.so 的逆向分析表明,游戏舍弃了后者,而以前者作为字符数来读取 n 个 utf-8 编码的 unicode 字符。 因此,本项目中的 RTON unicode 字符串处理存在错误,需要开发者进行修正。