2016-07-01 5 views
2

Когда я разбираю исполняемый файл ELF, я вижу раздел GNU_HASH, который, похоже, содержит хэш. Я думаю, что это подпись, чтобы проверить, был ли исправлен или заражен исполняемый файл вирусом.Можно ли проверить хэш в разделе «GNU_HASH» исполняемого файла ELF?

Есть ли способ проверить эту подпись? Ли Linux автоматически проверяет эту подпись при запуске программы?

ответ

7

Когда я разбираю исполняемый файл эльфа, я вижу раздел, содержащий хэш-код GNU . Я думаю, что это подпись, чтобы проверить, был ли файл с исправлением заражен вирусом.

Нет, это не так. Вы путаете две общие использования хэш-функций:

  • использование Cryptographic hash functions для цифровой подписи данных, и
  • использование (как правило, не криптографической) хэш-функции, чтобы позволить быстрый поиск данных, как правило, с помощью а hash table

ELF исполняемые файлы содержат «хэш-раздел», чтобы позволить быстрый поиск символов из таблицы символов эльфа, чтобы ускорить связь. Этот раздел называется «хэш-секцией», потому что он содержит хеш-таблицу. Это не имеет ничего общего с проверкой целостности.

Цитирую спецификации ELF:

Hash Таблица

Хэш таблица Elf32_Word объектов поддерживает таблица символов доступа.

источник: SYSTEM V APPLICATION BINARY INTERFACE, страница 94

+1

Подробная информация, что в '.gnu_hash': https://blogs.oracle.com/ali/entry/gnu_hash_elf_sections. Обратите внимание, что '.gnu_hash' отличается от' .hash', а двоичный файл может содержать либо, либо и то, и другое. –

+0

Хорошо, что .hash содержит подпись? – Bob5421

+0

@ Bob5421: Нет, он содержит хеш-таблицу. Я расширил свой ответ. – sleske