\x00@ 是什么意思?

What does \x00@ mean?

我读了一个可执行文件 (exe),我看到了 \x00@,我知道 0x00 是 NULL,但是 @ 代表什么十六进制?我找不到任何关于此的信息。

例子

b'MZ\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x0e\x1f\xba\x0e\x00\xb4\t\xcd!\xb8\x01L\xcd!This program cannot be run in DOS mode.\r\r\n'

这没有什么特别的意思,您只是在以某种糟糕的编辑器方式查看原始二进制文件,@ 只是表示值 0x40,或者可能是 0x0040。也许编辑器正在使用一种符号格式(一些 UTF?),其中大多数原始十六进制值没有意义,但它能够将 0x40 或 0x0040 表示为 @.

我猜这个二进制 goo 来自 PE Format 的 Windows 可执行文件。