{"repo":"marin-m/vmlinux-to-elf","free":true,"listed":false,"github":"https://github.com/marin-m/vmlinux-to-elf","clone":"git clone https://github.com/marin-m/vmlinux-to-elf.git","description":"A tool to recover a fully analyzable .ELF from a raw kernel, through extracting the kernel symbol table (kallsyms)","language":"Python","stars":1804,"topics":["reverse-engineering","linux-kernel","linux","vmlinux","elf","firmware-analysis"],"license":"GPL-3.0","category":"security-tools","readme_excerpt":"vmlinux-to-elf This tool allows to obtain a fully analyzable .ELF file from a vmlinux/vmlinuz/bzImage/zImage kernel image (either a raw binary blob or a preexisting but stripped .ELF file), with recovered function and variable symbols. For this, it scans your kernel for a kernel symbol table (kallsyms), a compressed symbol table that is present in almost every kernel, mostly unaltered. Because the concerned symbol table is originally compressed, it should recover strings that aren't visible in the original binary. It produces an .ELF file that you can analyze using IDA Pro and Ghidra. This tool is hence useful for embedded systems reverse engineering. &nbsp; Usage: Installation: Local development environment setup: Features Take a raw binary blob or ELF kernel file as an input [OK] Automatically detect and unpack the main compression formats used for the Linux kernel [OK] Find and extract the embedded kernel symbols table (kallsyms) from the input file [OK] Infer the instruction set architecture, endianness, bit size, relying upon other things on common function prologue signatures [OK] Infer the entry point of the kernel from the symbols contained in the kallsyms table [OK] Provide basic inference for the kernel base address [OK] (for now, consider that it is the first \"TEXT\" symbol address of the binary with the lower 0xfff bits clear - seems to work well enough) Unpack certain types of Android boot.img files, starting with an ANDROID! or UNCOMPRESSED IMG magic [OK] Produce","default_branch":null,"files":null,"tree":[],"storefront":"/r/marin-m","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/marin-m/vmlinux-to-elf/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}