Hinikaa/elfinfo
GitHub: Hinikaa/elfinfo
一个用 C++ 实现的轻量级 ELF64 头和节表解析工具,通过显式字节偏移量安全解析,适合快速查看二进制文件基本信息。
Stars: 0 | Forks: 0
# elfinfo
ELF 头和节表列出工具。
## 概述
仅支持小端序 ELF64 —— 这是现代 Linux(x86-64,AArch64)上绝对主流的情况。
它无意取代 `readelf`,而是一个快速的“这是什么二进制文件”工具:显示类型、架构、入口点,以及包含名称、类型、地址、偏移量和大小的节表。
字段是通过显式的字节偏移量进行解析的,而不是在原始缓冲区上直接覆盖 `Elf64_Ehdr*` —— 将 struct 指针强制转换到任意字节上,会根据缓冲区在内存中实际落脚的位置,带来未对齐读取(未定义行为)的风险。
## 安装
```
make
```
## 用法
```
./elfinfo
```
## 示例
```
$ ./elfinfo /bin/ls
Type: DYN
Machine: x86-64
Entry point: 0x54f0
Program headers: 14 (at offset 0x40)
Section headers: 28 (at offset 0x273a8)
Name Type Address Offset Size
.text PROGBITS 0x3040 0x3040 104547
...
```
在开发过程中,针对真实的系统二进制文件,已逐字段验证过与 `readelf -h` / `readelf -SW` 的输出是否一致。
## 注意事项
- 32 位 ELF 和大端序 ELF 会被明确拒绝并报错,而不会静默地解析错误。
- 不进行 symbol table 转储,不进行 relocation 解析,也不进行反汇编 —— 仅限 header 和节表。
## 许可证
MIT,参见 `LICENSE`。
标签:C++, ELF格式, SOC Prime, 二进制分析, 云安全运维, 开发工具, 数据擦除, 逆向工程辅助