From 0fa6a9aab2d835ace6f148e4f3df0f1a154ae9f6 Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Mon, 4 Oct 2021 17:57:47 -0400 Subject: [PATCH] GP-1366: The "COFF Header Annotation" analyzer should only be enabled when BinaryLoader was used --- .../ghidra/app/cmd/formats/CoffBinaryAnalysisCommand.java | 7 +++++++ .../ghidra/app/cmd/formats/ElfBinaryAnalysisCommand.java | 2 +- .../ghidra/app/cmd/formats/MachoBinaryAnalysisCommand.java | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/CoffBinaryAnalysisCommand.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/CoffBinaryAnalysisCommand.java index 745fc5e04c..61824951da 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/CoffBinaryAnalysisCommand.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/CoffBinaryAnalysisCommand.java @@ -23,7 +23,9 @@ import ghidra.app.util.bin.ByteProvider; import ghidra.app.util.bin.MemoryByteProvider; import ghidra.app.util.bin.format.coff.*; import ghidra.app.util.importer.MessageLog; +import ghidra.app.util.opinion.BinaryLoader; import ghidra.framework.cmd.BinaryAnalysisCommand; +import ghidra.framework.options.Options; import ghidra.program.flatapi.FlatProgramAPI; import ghidra.program.model.address.Address; import ghidra.program.model.data.*; @@ -45,6 +47,11 @@ public class CoffBinaryAnalysisCommand extends FlatProgramAPI @Override public boolean canApply(Program program) { try { + Options options = program.getOptions(Program.PROGRAM_INFO); + String format = options.getString("Executable Format", null); + if (!BinaryLoader.BINARY_NAME.equals(format)) { + return false; + } Memory memory = program.getMemory(); short magic = memory.getShort(program.getAddressFactory().getDefaultAddressSpace().getAddress(0)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/ElfBinaryAnalysisCommand.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/ElfBinaryAnalysisCommand.java index 7745191a11..26c947419e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/ElfBinaryAnalysisCommand.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/ElfBinaryAnalysisCommand.java @@ -52,7 +52,7 @@ public class ElfBinaryAnalysisCommand extends FlatProgramAPI @Override public boolean canApply(Program program) { try { - Options options = program.getOptions("Program Information"); + Options options = program.getOptions(Program.PROGRAM_INFO); String format = options.getString("Executable Format", null); if (!BinaryLoader.BINARY_NAME.equals(format)) { return false; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/MachoBinaryAnalysisCommand.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/MachoBinaryAnalysisCommand.java index 653efdca37..64dcb42cff 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/MachoBinaryAnalysisCommand.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/formats/MachoBinaryAnalysisCommand.java @@ -64,7 +64,7 @@ public class MachoBinaryAnalysisCommand extends FlatProgramAPI @Override public boolean canApply(Program program) { try { - Options options = program.getOptions("Program Information"); + Options options = program.getOptions(Program.PROGRAM_INFO); String format = options.getString("Executable Format", null); if (!BinaryLoader.BINARY_NAME.equals(format)) { return false;