适用于快速二进制分析的最小化 ELF 查看器,附带交互式 REPL
并非 readelf 或 objdump 的替代品。只是一个用于常见逆向工程问题的快速、专注的工具:
同时也是一个可读的 ELF 解析 C 语言示例。优雅地处理 stripped 和仅段(segment-only)的二进制文件。
(elfpeek:ls).dynsym 和 .symtab<elf.h>make
可选:安装 libreadline-dev 以获得 REPL 中的命令历史。
./elfpeek
./elfpeek /bin/ls # 显示头部、节区、符号
./elfpeek /bin/ls 0x6760 # 解析地址
节区:
.text、.plt).data、.bss).rodata)十六进制转储:
00)20-7E)01-1F)80-FF)tests/ 目录包含示例 ELF 文件:
relocs 命令 — 显示重定位got/plt 分析MIT
| 命令 | 别名 | 描述 |
|---|
open <path> | o | 打开 ELF 文件 |
close | 关闭当前文件 | |
info | i | 显示 ELF 头部 |
sections | s | 列出节区头部 |
phdr | p | 列出程序头部 |
entry | e | 显示入口点 |
symbols [dyn|sym] | sym | 转储符号表 |
resolve <addr> | r | 解析虚拟地址 |
dump <.sec|@off> [n] | d | 十六进制转储(节区或偏移量) |
help | ? | 显示帮助 |
quit | q | 退出 |
| 文件 | 描述 |
|---|
elf32_le.bin | 32 位小端(i386) |
elf32_be.bin | 32 位大端(PowerPC) |
elf64_be.bin | 64 位大端(PowerPC64) |
elf64_le_pie.bin | PIE 可执行文件 |
elf64_le_static.bin | 静态链接 |
elf64_le_dynsym_only.bin | 已剥离,仅 dynsym |
elf64_le_so.bin | 共享对象 |
elf64_le_segments_only.bin | 无节区头部 |