Package ghidra.app.util.opinion
Class MapLoader
java.lang.Object
ghidra.app.util.opinion.AbstractProgramLoader
ghidra.app.util.opinion.AbstractProgramWrapperLoader
ghidra.app.util.opinion.MapLoader
- All Implemented Interfaces:
Loader,ExtensionPoint,Comparable<Loader>
A
Loader 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
...
...
Static symbols
0000:00000020 blah 0000000140000010 foo.dll
0001:00000020 stuff 0000000140000020 bar.dll
...
...
...
-
Field Summary
FieldsFields inherited from class ghidra.app.util.opinion.AbstractProgramLoader
ANCHOR_LABELS_OPTION_NAME, APPLY_LABELS_OPTION_NAMEFields inherited from interface ghidra.app.util.opinion.Loader
COMMAND_LINE_ARG_PREFIX, loggingDisabled, OPTIONS_PROJECT_SAVE_STATE_KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfindSupportedLoadSpecs(ByteProvider provider) If thisLoadersupports loading the givenByteProvider, this methods returns aCollectionof all supportedLoadSpecs that contain discovered load specification information that thisLoaderwill need to load.getName()voidload(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) Loads bytes in a particular format into the givenProgram.booleanMethods inherited from class ghidra.app.util.opinion.AbstractProgramWrapperLoader
getTier, getTierPriority, loadProgram, loadProgramIntoMethods inherited from class ghidra.app.util.opinion.AbstractProgramLoader
createDefaultMemoryBlocks, createProgram, generateBlockName, getDefaultOptions, getLanguageService, joinPaths, load, loadInto, markAsFunction, postLoadCleanup, postLoadProgramFixups, release, setProgramProperties, shouldApplyProcessorLabelsByDefault, validateOptionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.app.util.opinion.Loader
compareTo, getPreferredFileName, loadsIntoNewFolder, supportsLoadIntoProgram
-
Field Details
-
MAP_NAME
- See Also:
-
NO_MAGIC
- See Also:
-
-
Constructor Details
-
MapLoader
public MapLoader()
-
-
Method Details
-
findSupportedLoadSpecs
Description copied from interface:LoaderIf thisLoadersupports loading the givenByteProvider, this methods returns aCollectionof all supportedLoadSpecs that contain discovered load specification information that thisLoaderwill need to load. If thisLoadercannot support loading the givenByteProvider, an emptyCollectionis returned.- Parameters:
provider- The bytes being loaded.- Returns:
- A
CollectionofLoadSpecs that thisLoadersupports loading, or an emptyCollectionif thisLoaderdoesn't support loading the givenByteProvider. - Throws:
IOException- if there was an IO-related issue finding theLoadSpecs.
-
load
public void load(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) throws IOException, CancelledException Description copied from class:AbstractProgramWrapperLoaderLoads bytes in a particular format into the givenProgram.- Specified by:
loadin classAbstractProgramWrapperLoader- Parameters:
provider- The bytes to load.loadSpec- TheLoadSpecto use during load.options- The load options.prog- TheProgramto load into.monitor- A cancelable task monitor.log- The message log.- Throws:
IOException- if there was an IO-related problem loading.CancelledException- if the user cancelled the load.
-
getName
Description copied from interface:LoaderGets theLoader's name, which is used both for display purposes, and to identify theLoaderin the opinion files.- Returns:
- The
Loader's name.
-
supportsLoadIntoProgram
public boolean supportsLoadIntoProgram()Description copied from interface:Loader
-