3

Does Ghidra 10.2.2 support loading the older a.out executable format? This format (sometimes rendered as "AOUT") was used on various UNIX-like systems such as SunOS and BSD, and was the simpler predecessor to COFF. I am attempting to import and disassemble a.out files that were built for Motorola 68K / VxWorks 5.5. The Linux 'file' utility identifies them as the following, which looks correct:

a.out SunOS mc68020 executable not stripped

Ghidra will only import them as "raw binary", but I'm not sure whether that is because the a.out format is not supported at all, or rather because the combination of target OS and architecture results in a header with magic numbers currently unknown to the loader. I looked in the 68000.opinion file and found this section, suggesting that the AOUT format is at least partially known to Ghidra:

<constraint loader="Assembler Output (AOUT)" compilerSpecID="default">
  <constraint primary="1"  processor="68000" endian="big" size="32" />
  <constraint primary="2"  processor="68000" endian="big" size="32" />
  <constraint primary="200"  processor="68000" endian="big" size="32" />
  <constraint primary="300"  processor="68000" endian="big" size="32" />
</constraint>

I'm hoping to be able to take advantage of existing Ghidra functionality for parsing the relocation tables in these binaries. Does support for this particular a.out format require a new loader class in Ghidra (or modifications to an existing class)? Or could it be done with appropriate changes to the .opinion file section shown above?

1 Answer 1

2

This executable format was not previously supported by Ghidra. I have written support for it and submitted a pull request:

https://github.com/NationalSecurityAgency/ghidra/pull/5004

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.