Почему кажется, что несколько различных шестнадцатеричных чисел представлены в виде символа точки (".")?

Я заметил, что символ . не соответствует тому же шестнадцатеричному числу, когда я пытался настроить свои правила YARA, на которых я работаю VirusTotal, Когда я пытался исключить ложную положительную текстовую строку .sample., это не будет исключено, потому что . преобразовано из текстового представления было 2E в этом случае, тем временем в строке, которая на самом деле содержалась в ложных срабатываниях, . представленный 00,

Я предполагаю, что при сопоставлении файлов текст преобразуется в шестнадцатеричный формат, затем шестнадцатеричная строка сопоставляется в шестнадцатеричном формате файла, а весь шестнадцатеричный преобразовывается в текст в предварительном просмотре VT.

Затем я заметил, что на самом деле было больше шестнадцатеричных чисел, которые были представлены как . в VirusTotalпредварительный просмотр текста. Например, 0A, 99, 09 (Скриншот).

Я попытался увидеть текстовое представление этих шестнадцатеричных чисел с помощью онлайн-конвертера ( http://www.unit-conversion.info/texttools/hexadecimal/), и некоторые из них были представлены как или пустой символ (не space символ, как число 20, но просто пустое место).

Итак, мои вопросы: почему разные цифры представляют один и тот же символ? Кроме того, что представляют собой "пробелы" в hexdump файла?

1 ответ

Решение

0A символы являются символами перевода строки, как видно из таблицы в этом документе, в то время как 2E символы являются фактическими периодами.

Согласно этому ответу на тот же вопрос:

Это пробельные символы, и если они включены буквально, это приведет к путанице в таблице ASCII. Вот почему они (а также непечатаемые управляющие символы ниже 32 и любые двоичные значения выше 127, которые не определены в ASCII и нуждаются в другом наборе символов для правильной интерпретации) представлены как.

По сути, "." персонаж - это универсальное средство для вещей, которые не могут быть правильно отображены в таблице.

Что касается онлайн-конвертера, то он генерирует символы до 7Fпосле чего 128-битная реализация ASCII больше не определяется, а транслятор предоставляет символ.. Даже из 00 в 7F мы находим, что у переводчика есть проблемы с несколькими шестнадцатеричными значениями, включая символ перевода строки 0A,

Таблица ASCII, связанная ранее, намекает на несколько символов, с которыми у переводчика могут возникнуть проблемы, например на символ DEL (7F), звонок (07) и ENQ (05).

Я ожидаю, что пробелы являются пробельными символами, это можно проверить в таблице ASCII.

Другие вопросы по тегам