3,365 apps tracked 0 new today 17 updated today Synced 11m ago

vmlinux-to-elf

Convert raw Linux kernel blobs to ELF files

Marin M. - Fossplant.re ✓ Verified

re.fossplant.vmlinux-to-elf
View on Flathub ↗

vmlinux-to-elf is a tool to recover a fully analyzable .ELF from a raw kernel, through extracting the kernel symbol table (kallsyms)

Features:

- Take a raw binary blob or ELF kernel file as an input.

- Automatically detect and unpack the main compression formats used for the Linux kernel.

- Find and extract the embedded kernel symbols table (kallsyms) from the input file.

- Infer the instruction set architecture, endianness, bit size, relying upon other things on common function prologue signatures.

- Infer the entry point of the kernel from the symbols contained in the kallsyms table.

- Provide basic inference for the kernel base address.

- Unpack certain types of Android boot.img files, starting with an "ANDROID!" or "UNCOMPRESSED_IMG" magic.

- Produce an .ELF file fully analyzable with IDA Pro or Ghidra as an output.

Screenshots

vmlinux-to-elf: kernel selection screen
vmlinux-to-elf: kernel selection screen
vmlinux-to-elf: detected offsets preview screen
vmlinux-to-elf: detected offsets preview screen
vmlinux-to-elf: extraction successfull screen
vmlinux-to-elf: extraction successfull screen
vmlinux-to-elf's main window, on GNOME in dark mode
vmlinux-to-elf's main window, on GNOME in dark mode

Observed history

App ChangeVersionWhen ↓

No observed changes yet.

The initial import establishes a baseline. Future version changes will appear here.

Browse the app catalogue →

Upstream releases

Release notes supplied by the developer. These dates are not Flathub package publication times.

1.3.620 May 2026
  • ARM64: Fix guessing the relative base in certain kernels (issue #54)
  • ARM64: Correctly display relocated data into the hex preview in the UI
  • Add support for decompressing uImage LZMA kernels
  • Provisionally add support for reserializing section-stripped ELF kernels
1.3.520 May 2026
  • Correctly support back parsing uImage files with the UI (issue #3)
  • Correctly handle the presence of sh_type in SHT_REL and SHT_RELA, and lack thereof (issue #37)
  • Fix an issue in "find_kallsyms_markers_uncompressed" providing wrong offsets on OpenWRT images (issue #99)
1.3.414 May 2026

Correctly consider that ARM64 kernels have their base address aligned on 0x80000

1.3.314 May 2026

Fix regression over recursively unpacking data

Correctly indicate whenever the kernel base address was found using kallsyms_relative_base