为什么好象是那几个不同的十六进制数表示为点(“.”)符号呢?

Why does it seem to be that several different hexadecimal numbers represented as the dot (".") symbol?

当我尝试调整我在 VirusTotal 上 运行 的 YARA 规则时,我注意到符号 . 并不代表相同的十六进制数。当我试图排除产生误报的文本字符串 .sample. 时,它不会被排除,因为在这种情况下从文本表示形式转换的 .2E,同时在字符串中,那是实际上包含在误报中,.表示00

我假设当文件匹配时,文本被转换为十六进制,然后在文件的十六进制转储中匹配十六进制字符串,并且整个十六进制转储在 VT 预览中被转换为文本。

然后我注意到在VirusTotal的文本预览中实际上有更多的十六进制数被表示为.。例如,0A9909(屏幕截图)。

我尝试使用在线转换器 (http://www.unit-conversion.info/texttools/hexadecimal/) 查看这些十六进制数字的文本表示,其中一些表示为 或空白符号(不是 space符号,如数字 20,但只是一个空白 space)。

所以我的问题是 - 为什么不同的数字似乎代表相同的符号?此外,"blank spaces" 在文件的 hexdump 中代表什么?

0A字符是换行字符,从this doc中的table可以看出,而2E字符是实际的句点[=22] =]

根据 this answer 在同一问题上:

These are whitespace characters, and if included literally would mess up the ASCII table. That's why they (as well as the unprintable control characters below 32, and any binary values above 127, which aren't defined by ASCII and would need another character set to be interpreted correctly) are represented by .

本质上,'.'字符是无法在 table.

中正确显示的事物的包罗万象

至于在线转换器,直到7F才出现生成字符,之后ASCII的128位实现不再定义,转换器提供了一个�符号。即使从 007F,我们发现翻译器在一些十六进制值方面存在问题,包括换行符 0A.

前面链接的 ASCII table 暗示了一些翻译者可能遇到问题的字符,例如 DEL 字符 (7F)、铃铛 (07) 和ENQ (05).

我希望空格是空白字符,这应该可以在 ASCII 中验证 table。