1
我开了一个.exe文件,我发现了一个字符串“高级”被存储在以下方式为什么字符串存储在以下方式中的PE文件
50 00 72 00 65 00 00 6D 69 00 75 00 6D 00
我只是不知道为什么“00”被附加到每个字符以及它的用法是什么。
谢谢,
我开了一个.exe文件,我发现了一个字符串“高级”被存储在以下方式为什么字符串存储在以下方式中的PE文件
50 00 72 00 65 00 00 6D 69 00 75 00 6D 00
我只是不知道为什么“00”被附加到每个字符以及它的用法是什么。
谢谢,
这可能是一个Unicode字符串的UTF-16编码。这里有一个使用Python的例子:
>>> u"Premium".encode("utf16")
'\xff\xfeP\x00r\x00e\x00m\x00i\x00u\x00m\x00'
# ^^^^^^^
在表示字节顺序的字节标记之后,可以看到交替字母和空字节。
\xff\xfe
是字节顺序标记;它表示每个16位值的低位字节先出现。 (如果高位字节先出现,则字节标记将为\xfe\xff
;关于哪个标记表示哪一个没有意义)。
然后将每个字符编码为16位值。对于许多值,UTF-16编码仅仅是其Unicode代码点的简单无符号16位表示。具体而言,8位ASCII值仅使用空字节作为高位字节,其ASCII值作为低位字节。
这很有道理,谢谢! – sudo
我不明白'\ xff \ x00p \ x00r \ x00e \ x00m \ x00i \ x00u \ x00m \ x00'是“高级”,你会友好地解释一下吗? – CIsForCookies