Developing a Ghidra loader
A loader is a Ghidra extension module that extends from the AbstractLibrarySupportLoader
class. This class has the following methods: getName
, findSupportedLoadSpecs
, load
, and, optionally, if supporting custom options, getDefaultOptions
and validateOptions
.
I'm assuming that you are familiar with loaders and these methods because they were superficially overviewed in Chapter 4, Using Ghidra Extensions.
The old-style DOS executable (MZ) parser
The existing Ghidra loader for MZ files must be able to parse the old-style DOS executable (MZ) file as we did by using HexIt v.1.57 in the Formatted binaries section of this chapter. To do that, Ghidra implements a parser for these kinds of binaries that is available here: https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/mz.
This link contains three files:
DOSHeader.java
: A file implementing the old-style DOS executable...