Package ghidra.app.util.opinion
Class MapLoader
- java.lang.Object
-
- ghidra.app.util.opinion.AbstractProgramLoader
-
- ghidra.app.util.opinion.AbstractLibrarySupportLoader
-
- ghidra.app.util.opinion.MapLoader
-
- All Implemented Interfaces:
Loader
,ExtensionPoint
,java.lang.Comparable<Loader>
public class MapLoader extends AbstractLibrarySupportLoader
ALoader
for processing Microsoft MAP files.Sample .map file section we parse to extract symbol information:
... ... ... Address Publics by Value Rva+Base Lib:Object 0000:00000000 ___safe_se_handler_table 0000000000000000 <absolute> 0000:00000000 ___safe_se_handler_count 0000000000000000 <absolute> 0000:00000000 __ImageBase 0000000140000000 <linker-defined> 0001:00000040 foo 0000000140001040 f foo.obj 0001:000000c0 bar 00000001400010c0 f foo.obj ... ... ...
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPoint
ExtensionPoint.Exclude, ExtensionPoint.Util
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
MAP_NAME
static java.lang.String
NO_MAGIC
-
Fields inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader
LIB_OPTION_NAME, SYM_OPTION_NAME
-
Fields inherited from class ghidra.app.util.opinion.AbstractProgramLoader
ANCHOR_LABELS_OPTION_NAME, APPLY_LABELS_OPTION_NAME
-
Fields inherited from interface ghidra.app.util.opinion.Loader
COMMAND_LINE_ARG_PREFIX
-
-
Constructor Summary
Constructors Constructor Description MapLoader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Collection<LoadSpec>
findSupportedLoadSpecs(ByteProvider provider)
If thisLoader
supports loading the givenByteProvider
, this methods returns aCollection
of all supportedLoadSpec
s that contain discovered load specification information that thisLoader
will need to load.java.lang.String
getName()
void
load(ByteProvider provider, LoadSpec loadSpec, java.util.List<Option> options, Program prog, TaskMonitor monitor, MessageLog log)
Loads bytes in a particular format into the givenProgram
.boolean
supportsLoadIntoProgram()
-
Methods inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader
createExportsFile, findAlreadyImportedLibrary, getDefaultOptions, getLoadSpec, getTier, getTierPriority, importLibrary, importLibrary, isCaseInsensitiveLibraryFilenames, loadProgram, loadProgramInto, postLoadProgramFixups, validateOptions
-
Methods inherited from class ghidra.app.util.opinion.AbstractProgramLoader
createDefaultMemoryBlocks, createProgram, generateBlockName, getLanguageService, load, loadInto, release, shouldApplyProcessorLabelsByDefault
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ghidra.app.util.opinion.Loader
compareTo, getPreferredFileName
-
-
-
-
Field Detail
-
MAP_NAME
public static final java.lang.String MAP_NAME
- See Also:
- Constant Field Values
-
NO_MAGIC
public static final java.lang.String NO_MAGIC
- See Also:
- Constant Field Values
-
-
Method Detail
-
findSupportedLoadSpecs
public java.util.Collection<LoadSpec> findSupportedLoadSpecs(ByteProvider provider) throws java.io.IOException
Description copied from interface:Loader
If thisLoader
supports loading the givenByteProvider
, this methods returns aCollection
of all supportedLoadSpec
s that contain discovered load specification information that thisLoader
will need to load. If thisLoader
cannot support loading the givenByteProvider
, an emptyCollection
is returned.- Parameters:
provider
- The bytes being loaded.- Returns:
- A
Collection
ofLoadSpec
s that thisLoader
supports loading, or an emptyCollection
if thisLoader
doesn't support loading the givenByteProvider
. - Throws:
java.io.IOException
- if there was an IO-related issue finding theLoadSpec
s.
-
load
public void load(ByteProvider provider, LoadSpec loadSpec, java.util.List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) throws java.io.IOException
Description copied from class:AbstractLibrarySupportLoader
Loads bytes in a particular format into the givenProgram
.- Specified by:
load
in classAbstractLibrarySupportLoader
- Parameters:
provider
- The bytes to load.loadSpec
- TheLoadSpec
to use during load.options
- The load options.prog
- TheProgram
to load into.monitor
- A cancelable task monitor.log
- The message log.- Throws:
java.io.IOException
- if there was an IO-related problem loading.
-
getName
public java.lang.String getName()
Description copied from interface:Loader
Gets theLoader
's name, which is used both for display purposes, and to identify theLoader
in the opinion files.- Returns:
- The
Loader
's name.
-
supportsLoadIntoProgram
public boolean supportsLoadIntoProgram()
Description copied from interface:Loader
-
-