About this tool
Drop an ELF here — an executable, a .so, a kernel module, a .o, a CTF binary, a firmware image — and you get what readelf -a would tell you, in two panes wired together. On the left the structure tree: the ELF header field by field, the program headers, the section table, .dynsym and .symtab kept separate, .dynamic, every relocation section, the notes and the version definitions and requirements. On the right the file's bytes. Click any row and exactly the bytes it was decoded from light up; click a byte and the innermost structure covering it is revealed and selected.
The summary card answers the questions people actually open a binary to settle, before any table is touched: is it ELF32 or ELF64, which architecture and endianness, EXEC or DYN or REL, where the entry point is, and — where the architecture has decoded e_flags, as RISC-V and MIPS both do — what those flags mean. Then the derived facts: statically or dynamically linked and which loader it asks for, stripped or not, PIE or not, the build ID from .note.gnu.build-id, and whether PT_GNU_STACK carries PF_X, which is a real security-relevant fact and is stated plainly rather than left for you to spot in a table.
Nothing is uploaded, and for this audience that is the point rather than a feature. A CTF binary is someone's unsolved challenge and a firmware image is often a customer's property; posting either to a stranger's server to read a section header is a bad trade. The file is read by the tab, handed to a Web Worker, and parsed in memory — there is no upload endpoint, and you can confirm it in DevTools: opening a binary produces no network request at all. Parsing runs in the worker so a 60 MB binary never freezes the tab, and files past 128 MiB are refused with the reason rather than accepted and hung on.
Every name this page prints — machine, type, section type, symbol type, bind and visibility, relocation type, dynamic tag — is GNU binutils readelf's own spelling, because the parser is tested against real readelf output rather than against its own expectations. A 1900-symbol binary is ordinary and a 400,000-symbol one exists, so symbol and relocation tables are filtered, sorted and paged where the data lives instead of being rendered row by row into the page.