Skip to content

编码表

PFPX 导航数据文件使用自定义的基于 XOR 的编码系统。导航数据使用字符映射表编码,将可读的 ASCII 文本转换为二进制数据。

字符映射

通过逆向工程,我们确定了以下编码关系:

十六进制码字符十六进制码字符
A5空格 ()B50
A4!B41
A7"B72
A6#B63
A1$B14
A0%B05
A3&B36
A2'B27
AD(BD8
AC)BC9
AF*BF:
AE+BE;
A9,B9<
A8B8=
AB.BB>
AA/BA?
十六进制码字符十六进制码字符
C5@D5P
C4AD4Q
C7BD7R
C6CD6S
C1DD1T
C0ED0U
C3FD3V
C2GD2W
CDHDDX
CCIDCY
CFJDFZ
CEKDE[
C9LD9\
C8MD8]
CBNDB^
CAODA_
十六进制码字符十六进制码字符
E5`F5p
E4aF4q
E7bF7r
E6cF6s
E1dF1t
E0eF0u
E3fF3v
E2gF2w
EDhFDx
ECiFCy
EFjFFz
EEkFE{
E9lF9|
E8mF8}
EBnFB~
EAoFADEL

编码方法

编码过程的工作原理如下:

  1. XOR 操作:每个字节都与密钥 0x85 进行 XOR 运算
  2. 字符映射:结果映射到上述字符表
  3. 头部保留:文件头部保持明文格式
  4. 行结构:每行代表一个导航数据条目

密钥属性

  • XOR 密钥0x85(十进制 133)
  • 可逆性:相同操作可解码数据
  • ASCII 兼容:映射到标准 ASCII 字符集
  • 二进制安全:保持数据完整性

使用注意事项

重要提示

  • 只有导航数据内容被编码
  • 文件头部和元数据保持明文格式
  • 换行符(CR/LF)在编码过程中保留
  • 编码是大小写敏感且位置相关的

转换示例

以下是字符编码的简单示例:

原始字符:'A'(ASCII 65,十六进制 0x41)
与 0x85 进行 XOR:0x41 ^ 0x85 = 0xC4
在表中查找:0xC4 = 'A'

对于反向(解码):

编码字节:0xC4
与 0x85 进行 XOR:0xC4 ^ 0x85 = 0x41
ASCII 结果:0x41 = 'A'

下一步

基于 MIT 许可证发布