diff --git a/Ghidra/Features/FileFormats/certification.manifest b/Ghidra/Features/FileFormats/certification.manifest index d5a4619a40..ea2d4e851b 100644 --- a/Ghidra/Features/FileFormats/certification.manifest +++ b/Ghidra/Features/FileFormats/certification.manifest @@ -13,6 +13,9 @@ data/ExtensionPoint.manifest||GHIDRA||||END| data/android/eclipse-classpath||GHIDRA||reviewed||END| data/android/eclipse-project||GHIDRA||reviewed||END| data/crypto/README.txt||GHIDRA||||END| +data/languages/apport.opinion||GHIDRA||||END| data/languages/dumpfile.opinion||GHIDRA||||END| +data/languages/minidump.opinion||GHIDRA||||END| +data/languages/pagedump.opinion||GHIDRA||||END| src/main/help/help/TOC_Source.xml||GHIDRA||||END| src/main/help/help/topics/FileFormatsPlugin/FileFormats.html||GHIDRA||||END| diff --git a/Ghidra/Features/FileFormats/data/languages/apport.opinion b/Ghidra/Features/FileFormats/data/languages/apport.opinion new file mode 100644 index 0000000000..63f9aee02b --- /dev/null +++ b/Ghidra/Features/FileFormats/data/languages/apport.opinion @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Ghidra/Features/FileFormats/data/languages/minidump.opinion b/Ghidra/Features/FileFormats/data/languages/minidump.opinion new file mode 100644 index 0000000000..4b55b98f2c --- /dev/null +++ b/Ghidra/Features/FileFormats/data/languages/minidump.opinion @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Ghidra/Features/FileFormats/data/languages/dumpfile.opinion b/Ghidra/Features/FileFormats/data/languages/pagedump.opinion similarity index 62% rename from Ghidra/Features/FileFormats/data/languages/dumpfile.opinion rename to Ghidra/Features/FileFormats/data/languages/pagedump.opinion index 1ba7f1ed68..dcf71103df 100644 --- a/Ghidra/Features/FileFormats/data/languages/dumpfile.opinion +++ b/Ghidra/Features/FileFormats/data/languages/pagedump.opinion @@ -1,7 +1,6 @@ - @@ -21,28 +20,12 @@ - - - - - - - - - - - - - - - - diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpData.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpData.java index f997b06f4a..dddcdef22b 100644 --- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpData.java +++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpData.java @@ -15,6 +15,7 @@ */ package ghidra.file.formats.dump; +import ghidra.program.model.address.AddressSpace; import ghidra.program.model.data.DataType; public class DumpData { @@ -25,6 +26,7 @@ public class DumpData { private boolean generateSymbol; private boolean generateFragment; private long size; + private AddressSpace space; public DumpData(long offset, DataType dt) { this(offset, dt, dt.getDisplayName(), false, true); @@ -99,4 +101,12 @@ public class DumpData { public long getSize() { return size; } + + public AddressSpace getAddressSpace() { + return space; + } + + public void setAddressSpace(AddressSpace space) { + this.space = space; + } } diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpFile.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpFile.java index 8def17bd93..e8208bc048 100644 --- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpFile.java +++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/DumpFile.java @@ -23,7 +23,9 @@ import java.util.Map.Entry; import ghidra.app.plugin.core.analysis.AutoAnalysisManager; import ghidra.app.plugin.core.datamgr.util.DataTypeArchiveUtility; import ghidra.app.services.DataTypeManagerService; +import ghidra.app.util.MemoryBlockUtils; import ghidra.app.util.Option; +import ghidra.program.database.mem.FileBytes; import ghidra.program.model.address.Address; import ghidra.program.model.address.AddressFactory; import ghidra.program.model.data.*; @@ -31,10 +33,12 @@ import ghidra.program.model.lang.Language; import ghidra.program.model.lang.Register; import ghidra.program.model.listing.*; import ghidra.util.Msg; +import ghidra.util.exception.CancelledException; import ghidra.util.task.TaskMonitor; public class DumpFile { + // If data defined so must intAddressRanges which are used to create memory blocks protected List data = new ArrayList(); // Interior ranges are actual defined memory ranges. // Exterior ranges are aggregates of interior ranges, typically corresponding to a module @@ -62,6 +66,8 @@ public class DumpFile { protected Map managerList = new HashMap<>(); + private FileBytes fileBytes; + public DumpFile(DumpFileReader reader, ProgramBasedDataTypeManager dtm, List