2.2. 排行榜的修改
我们首先注意到,右侧出现了数次"Andy"。用鼠标拖动选中右侧的第一个"Andy",发现左侧对应的十六进制码也被选中了:

这便是0x41、0x6E、0x64和0x79所对应的四个字符:A、n、d、y
为什么这里会出现这么多名字?文件名为scoreNormal,这似乎代表着这个文件包含了排行榜信息,因此,打开游戏去排行榜看一眼:

果然,从第一名到第十名,全是Andy。对应地,十六进制文件中也能解析出十次"Andy"
现在,注意到每两个"Andy"之间,都间隔了连续12字节的0x00和4个字节的其他内容。例如,从第一个Andy到第二个Andy之间的十六进制码为:
41 6E 64 79 00 00 00 00 00 00 00 00 00 00 00 00 B8 0B 00 00

根据试验,前16字节(41 6E 64 79 00 00 00 00 00 00 00 00 00 00 00 00)表示的是排行榜上的名字,而最后4字节(B8 0B 00 00)则表示的是分数
根据小端存储的特性,现在来以二补数类型的形式,认读一下最后4字节。在python中输入:
>>> int(0x00000BB8)
得到结果:3000

这便是排行榜中的,第一名的分数
了解了这个原理,我们就可以很容易地修改用户名和分数了。例如:

再次打开排行榜,就可以看见:

名字和分数都被修改了
注意这里的数字是二补数类型,因此对应二进制的最高位不能为1(否则会变为负数),即解读数字时,第四组的第一位十六进制不能大于7