</> vmlinux.lab
KERNEL TOOLKIT Local processing

FROM BOOT IMAGE TO DEBUGGER

Make your kernel readable.

Unpack a kernel. Recover its symbols. Get back to debugging.
All in your browser, powered by WebAssembly.

vmlinuz→vmlinux→symbols

01 Kernel image

INPUT

Drop your kernel image here

vmlinuz, bzImage, vmlinux, Image, or a compressed kernel

Up to 256 MiB · Your file stays on this device
Just exploring?
Loading WASM core…
01 / UNPACK

Find the kernel inside.

Scan boot wrappers for gzip, XZ, LZMA, bzip2, LZ4, and Zstandard payloads. Already have a vmlinux ELF? Start there.

02 / RECOVER

Read what remains.

Decode embedded kallsyms tables into symbol names, types, and link-time addresses, even when .symtab is stripped.

03 / DEBUG

Bring symbols back.

Export an ELF for GDB and reverse engineering tools. Symbol recovery does not recreate DWARF or source-level debug data.

Compatibility and limitations

Supports standard token-compressed kallsyms layouts with absolute, base-relative, absolute per-CPU, and PC-relative addresses, in 32- or 64-bit and either byte order. Recovery validates names, markers, and address arrays. Some vendor layouts and uncompressed OpenWrt tables are unsupported. Zstandard uses a pure Rust decoder with checksum validation and a 128 MiB history-window limit. LZO is detected but its decoder is not included in this build. The output limit is 512 MiB; total memory use is higher and depends on the device.

Existing ELF load mappings are preserved. Raw ELF reconstruction requires an explicit architecture and load base; it creates one broad load segment and does not infer relocations, BSS, or the original section layout. Apply the target's KASLR slide separately. Recovered symbol sizes are left at zero because exact sizes are unavailable.

Open source licenses

This app uses open source software. Expand an entry to read its full license and attribution notices. Build tools and a Rust standard-library notice snapshot are included.

Download all notices ↓