Recently, I got my hands on a ELF executable intended for ARM-based microcontrollers. To my surprise, when I tried to inspect it by dumping everything with arm-none-eabi-objdump
it kept failing with error
File format not recognized
Upon asking the person who supplied the binary, I learned that it's been compiled (and linked) with a proprietary toolchain, which I shan't mention as to avoid giving them extra publicity. Subsequently, I was told that I need utilities from the said proprietary toolchain in order to disassemble the binary. Now this is what got me curious. How is it possible for GNU's objdump to not parse the ELF file? To my knowledge, ELF is a standard free file format. Surely even if the instruction set is not recognised then it should be possible to at least obtain section and symbol table, as well as binary disassembly of the symbols. Perhaps the information is encrypted?