是否可以检查 ELF 可执行文件的 "GNU_HASH" 部分中的哈希值?
Is it possible to check the hash in the "GNU_HASH" section of an ELF executable?
当我反汇编 ELF 可执行文件时,我看到 GNU_HASH
部分似乎包含散列。我认为这是一个签名,以检查可执行文件是否被修补或被病毒感染。
有没有办法检查这个签名? Linux 程序 运行 时是否自动检查此签名?
When i disassemble an elf executable, i see a section that contains a
GNU hash. I think it is a signature in order to check if executable
was patch or infected by a virus.
不,不是。您混淆了哈希函数的两种常见用法:
- 使用 Cryptographic hash functions 对数据进行数字签名,以及
- 使用(通常是非加密的)散列函数允许快速查找数据,通常通过 hash table
ELF 二进制文件包含一个 "hash section" 以允许从 ELF 的符号 table 快速查找符号,以加快链接速度。此部分称为 "hash section",因为它包含一个散列 table。它与完整性检查无关。
引用ELF规范:
Hash Table
A hash table of Elf32_Word
objects supports symbol table
access.
来源:SYSTEM V APPLICATION BINARY INTERFACE,第 94 页
当我反汇编 ELF 可执行文件时,我看到 GNU_HASH
部分似乎包含散列。我认为这是一个签名,以检查可执行文件是否被修补或被病毒感染。
有没有办法检查这个签名? Linux 程序 运行 时是否自动检查此签名?
When i disassemble an elf executable, i see a section that contains a GNU hash. I think it is a signature in order to check if executable was patch or infected by a virus.
不,不是。您混淆了哈希函数的两种常见用法:
- 使用 Cryptographic hash functions 对数据进行数字签名,以及
- 使用(通常是非加密的)散列函数允许快速查找数据,通常通过 hash table
ELF 二进制文件包含一个 "hash section" 以允许从 ELF 的符号 table 快速查找符号,以加快链接速度。此部分称为 "hash section",因为它包含一个散列 table。它与完整性检查无关。
引用ELF规范:
Hash Table
A hash table of
Elf32_Word
objects supports symbol table access.
来源:SYSTEM V APPLICATION BINARY INTERFACE,第 94 页