我需要在不使用 objdump 或 readelf 的情况下查找 ELF 可执行文件(a.out)的程序头数。
这是一件微不足道的事情。
查找/usr/include/elf.h
(Elf32_Ehdr
或 Elf64_Ehdr,如果在 64 位机器上)定义。将您在此处看到的内容与readelf -h a.out
. 那,每个ELF
二进制文件开头的事实Elf{32,64}_Ehdr
就是你所需要的。
你的程序将是:
- 打开
a.out
文件
- 从头开始读
Elf32_Ehdr
(或)Elf64_Ehdr
- 打印
.e_phnum
- 出口