From 2e09c209accaada4043510dddc4ddaa4c30963b9 Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Mon, 1 Apr 2024 12:41:59 -0400 Subject: [PATCH] GP-0: Mach-O PRELINK binaries were not getting their load command data marked up --- .../util/opinion/MachoPrelinkProgramBuilder.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoPrelinkProgramBuilder.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoPrelinkProgramBuilder.java index b0fcc8711b..4266c21ea6 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoPrelinkProgramBuilder.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoPrelinkProgramBuilder.java @@ -88,6 +88,7 @@ public class MachoPrelinkProgramBuilder extends MachoProgramBuilder { for (MachoInfo info : machoInfoList) { info.processMemoryBlocks(); info.markupHeaders(); + info.markupLoadCommandData(); info.addToProgramTree(); monitor.incrementProgress(1); } @@ -217,7 +218,7 @@ public class MachoPrelinkProgramBuilder extends MachoProgramBuilder { * Processes memory blocks for this Mach-O. * * @throws Exception If there was a problem processing memory blocks for this Mach-O. - * @see MachoPrelinkProgramBuilder#processMemoryBlocks(MachHeader, String, boolean, boolean) + * @see MachoProgramBuilder#processMemoryBlocks(MachHeader, String, boolean, boolean) */ public void processMemoryBlocks() throws Exception { MachoPrelinkProgramBuilder.this.processMemoryBlocks(header, name, true, false); @@ -227,7 +228,7 @@ public class MachoPrelinkProgramBuilder extends MachoProgramBuilder { * Marks up the Mach-O headers. * * @throws Exception If there was a problem marking up the Mach-O's headers. - * @see MachoPrelinkProgramBuilder#markupHeaders(MachHeader, Address) + * @see MachoProgramBuilder#markupHeaders(MachHeader, Address) */ public void markupHeaders() throws Exception { MachoPrelinkProgramBuilder.this.markupHeaders(header, headerAddr); @@ -237,6 +238,16 @@ public class MachoPrelinkProgramBuilder extends MachoProgramBuilder { } } + /** + * Marks up the Mach-O load command data. + * + * @throws Exception If there was a problem marking up the Mach-O's load command data. + * @see MachoProgramBuilder#markupLoadCommandData(MachHeader, String) + */ + public void markupLoadCommandData() throws Exception { + MachoPrelinkProgramBuilder.this.markupLoadCommandData(header, name); + } + /** * Adds an entry to the program tree for this Mach-O. *