
Minimale ispezionatore ELF scritto in C per una rapida ispezione del layout binario
Non un sostituto di readelf o objdump. Solamente uno strumento rapido e mirato per comuni domande di reverse engineering:
Serve anche come esempio leggibile di parsing ELF in C. Gestisce con garbo binari strip e solo segmenti.
(elfpeek:ls).dynsym che .symtab<elf.h>make
Opzionale: Installare libreadline-dev per la cronologia dei comandi nella REPL.
./elfpeek
./elfpeek /bin/ls # mostra header, sezioni, simboli
./elfpeek /bin/ls 0x6760 # risolve indirizzo
| Comando | Alias | Descrizione |
|---|---|---|
open <path> | o | Apre un file ELF |
close | Chiude il file corrente | |
info | i | Mostra l'header ELF |
sections | s | Elenca gli header di sezione |
phdr | p | Elenca gli header di programma |
entry | e | Mostra il punto di ingresso |
symbols [dyn|sym] | sym | Mostra le tabelle dei simboli |
resolve <addr> | r | Risolve un indirizzo virtuale |
dump <.sec|@off> [n] | d | Hex dump (sezione o offset) |
help | ? | Mostra l'aiuto |
quit | q | Esce |
Sezioni:
.text, .plt).data, .bss).rodata)Hexdump:
00)20-7E)01-1F)80-FF)tests/ contiene file ELF di esempio:
| File | Descrizione |
|---|---|
elf32_le.bin | 32-bit little-endian (i386) |
elf32_be.bin | 32-bit big-endian (PowerPC) |
elf64_be.bin | 64-bit big-endian (PowerPC64) |
elf64_le_pie.bin | Eseguibile PIE |
elf64_le_static.bin | Collegato staticamente |
elf64_le_dynsym_only.bin | Strip, solo dynsym |
elf64_le_so.bin | Oggetto condiviso |
elf64_le_segments_only.bin | Senza header di sezione |
relocs - mostra rilocazionigot/pltMIT