diff --git a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/ObjcMessageAnalyzer.java b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/ObjcMessageAnalyzer.java index 3b18d0836b..f2f594b55a 100644 --- a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/ObjcMessageAnalyzer.java +++ b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/ObjcMessageAnalyzer.java @@ -89,7 +89,18 @@ public class ObjcMessageAnalyzer extends AbstractAnalyzer { @Override public boolean canAnalyze(Program program) { - return Objc2Constants.isObjectiveC2(program); + if (Objc2Constants.isObjectiveC2(program)) { + Memory mem = program.getMemory(); + if (mem.getBlock(Objc2Constants.OBJC2_STUBS) != null) { + return true; + } + for (Symbol s : program.getSymbolTable().getExternalSymbols()) { + if (s.getName().startsWith(Objc1Constants.OBJC_MSG_SEND)) { + return true; + } + } + } + return false; } @Override