From c5da826540a77aa730317994a9d692de8a17f144 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Tue, 21 Mar 2023 09:59:48 -0400 Subject: [PATCH] GP-2641: Add training course materials for the Debugger --- .../DebuggerEmulationServicePlugin.java | 2 +- .../service/model/DebuggerConnectDialog.java | 15 + .../DebuggerTraceManagerServicePlugin.java | 6 +- .../ghidra/debug/flatapi/FlatDebuggerAPI.java | 2 +- .../AbstractGhidraHeadedDebuggerGUITest.java | 2 +- .../TestDebuggerProgramLaunchOpinion.java | 9 +- .../java/ghidra/dbg/target/TargetMethod.java | 27 +- .../trace/model/time/schedule/Step.java | 2 +- .../AbstractTaintPcodeExecutorStatePiece.java | 5 +- .../AbstractScreenShotGenerator.java | 103 +- .../ghidra_scripts/EmuDeskCheckScript.java | 2 - .../java/generic/test/AbstractGuiTest.java | 9 +- Ghidra/Test/IntegrationTest/build.gradle | 1 + .../TutorialDebuggerMaintenance.java | 71 + .../TutorialDebuggerScreenShots.java | 837 ++++++++++++ .../Debugger/A1-GettingStarted.html | 478 +++++++ .../GhidraClass/Debugger/A1-GettingStarted.md | 245 ++++ .../GhidraClass/Debugger/A2-UITour.html | 325 +++++ GhidraDocs/GhidraClass/Debugger/A2-UITour.md | 193 +++ .../GhidraClass/Debugger/A3-Breakpoints.html | 490 +++++++ .../GhidraClass/Debugger/A3-Breakpoints.md | 251 ++++ .../GhidraClass/Debugger/A4-MachineState.html | 658 +++++++++ .../GhidraClass/Debugger/A4-MachineState.md | 400 ++++++ .../GhidraClass/Debugger/A5-Navigation.html | 376 ++++++ .../GhidraClass/Debugger/A5-Navigation.md | 220 +++ .../GhidraClass/Debugger/A6-MemoryMap.html | 334 +++++ .../GhidraClass/Debugger/A6-MemoryMap.md | 190 +++ .../Debugger/B1-RemoteTargets.html | 352 +++++ .../GhidraClass/Debugger/B1-RemoteTargets.md | 195 +++ .../GhidraClass/Debugger/B2-Emulation.html | 823 +++++++++++ .../GhidraClass/Debugger/B2-Emulation.md | 493 +++++++ .../GhidraClass/Debugger/B3-Scripting.html | 547 ++++++++ .../GhidraClass/Debugger/B3-Scripting.md | 363 +++++ .../GhidraClass/Debugger/B4-Modeling.html | 1202 +++++++++++++++++ .../GhidraClass/Debugger/B4-Modeling.md | 936 +++++++++++++ GhidraDocs/GhidraClass/Debugger/Makefile | 22 + GhidraDocs/GhidraClass/Debugger/README.md | 24 + .../GhidraClass/Debugger/gdb_syntax.xml | 43 + .../ghidra_scripts/CustomLibraryScript.java | 48 + .../ghidra_scripts/DumpBoardScript.java | 85 ++ .../InstallCustomLibraryScript.java | 49 + .../InstallExprEmulatorScript.java | 25 + .../ghidra_scripts/ModelingScript.java | 681 ++++++++++ .../ghidra_scripts/ZeroTimerScript.java | 138 ++ .../images/Breakpoints_EmptyAfterLaunch.png | Bin 0 -> 14910 bytes .../images/Breakpoints_MissingModuleNote.png | Bin 0 -> 17329 bytes .../images/Breakpoints_PopAfterSRandRand.png | Bin 0 -> 23788 bytes .../Breakpoints_SeedValueAfterBreakSRand.png | Bin 0 -> 48515 bytes .../Breakpoints_SyncedAfterImportLibC.png | Bin 0 -> 211701 bytes .../images/Emulation_LazyStaleListing.png | Bin 0 -> 33984 bytes .../images/Emulation_ListingAfterResume.png | Bin 0 -> 42533 bytes .../images/Emulation_ListingForCmdlineSet.png | Bin 0 -> 34723 bytes .../images/Emulation_PcodeStepper.png | Bin 0 -> 30344 bytes .../images/Emulation_WatchesForCmdline.png | Bin 0 -> 19821 bytes .../images/Emulation_WatchesForCmdlineSet.png | Bin 0 -> 22433 bytes .../GettingStarted_DisassemblyAfterLaunch.png | Bin 0 -> 194970 bytes .../images/GettingStarted_ToolWSpecimen.png | Bin 0 -> 131415 bytes .../images/MemoryMap_CopyNcursesInto.png | Bin 0 -> 44779 bytes .../images/MemoryMap_ModulesAfterLaunch.png | Bin 0 -> 60729 bytes .../images/MemoryMap_RegionsAfterLaunch.png | Bin 0 -> 24186 bytes .../MemoryMap_StaticMappingAfterLaunch.png | Bin 0 -> 14540 bytes .../images/Navigation_CompareTimes.png | Bin 0 -> 44671 bytes .../images/Navigation_DialogCompareTimes.png | Bin 0 -> 19997 bytes .../images/Navigation_StackInCallRand.png | Bin 0 -> 12747 bytes .../images/Navigation_ThreadsInCallRand.png | Bin 0 -> 14451 bytes .../Navigation_TimeAfterCallSRandCallRand.png | Bin 0 -> 22673 bytes .../Debugger/images/RemoteTargets_Gadp.png | Bin 0 -> 16764 bytes .../images/RemoteTargets_GdbOverSsh.png | Bin 0 -> 22612 bytes .../images/State_BytesStackAfterCallRand.png | Bin 0 -> 66658 bytes .../images/State_ListingAfterCallRand.png | Bin 0 -> 42751 bytes .../State_ListingStackAfterCallRand.png | Bin 0 -> 41483 bytes .../images/State_RegistersAfterCallRand.png | Bin 0 -> 48928 bytes .../images/State_WatchesInCallSRand.png | Bin 0 -> 14050 bytes .../GhidraClass/Debugger/images/add.png | Bin 0 -> 733 bytes .../GhidraClass/Debugger/images/autoread.png | Bin 0 -> 942 bytes .../Debugger/images/breakpoint-disable.png | Bin 0 -> 684 bytes .../images/breakpoint-enable-ineff.png | Bin 0 -> 513 bytes .../Debugger/images/breakpoint-enable.png | Bin 0 -> 561 bytes .../breakpoint-overlay-inconsistent.png | Bin 0 -> 305 bytes .../Debugger/images/camera-photo.png | Bin 0 -> 864 bytes .../GhidraClass/Debugger/images/connect.png | Bin 0 -> 740 bytes .../GhidraClass/Debugger/images/debugger.png | Bin 0 -> 730 bytes .../Debugger/images/disconnect.png | Bin 0 -> 556 bytes .../GhidraClass/Debugger/images/interrupt.png | Bin 0 -> 211 bytes .../GhidraClass/Debugger/images/kill.png | Bin 0 -> 210 bytes .../GhidraClass/Debugger/images/process.png | Bin 0 -> 649 bytes .../GhidraClass/Debugger/images/record.png | Bin 0 -> 483 bytes .../Debugger/images/register-marker.png | Bin 0 -> 315 bytes .../GhidraClass/Debugger/images/resume.png | Bin 0 -> 396 bytes .../Debugger/images/select-registers.png | Bin 0 -> 363 bytes .../GhidraClass/Debugger/images/skipover.png | Bin 0 -> 497 bytes .../GhidraClass/Debugger/images/stepback.png | Bin 0 -> 428 bytes .../GhidraClass/Debugger/images/stepinto.png | Bin 0 -> 404 bytes .../GhidraClass/Debugger/images/steplast.png | Bin 0 -> 410 bytes .../GhidraClass/Debugger/images/stepout.png | Bin 0 -> 413 bytes .../GhidraClass/Debugger/images/stepover.png | Bin 0 -> 428 bytes .../Debugger/images/table_relationship.png | Bin 0 -> 663 bytes .../Debugger/images/view-refresh.png | Bin 0 -> 1364 bytes .../GhidraClass/Debugger/links-to-html.lua | 6 + GhidraDocs/GhidraClass/Debugger/navhead.htm | 12 + .../GhidraClass/Debugger/sleigh_syntax.xml | 85 ++ GhidraDocs/GhidraClass/Debugger/style.css | 162 +++ .../ExerciseFiles/Debugger/Makefile | 14 + .../ExerciseFiles/Debugger/anyptracer.c | 37 + .../ExerciseFiles/Debugger/termmines.c | 570 ++++++++ GhidraDocs/build.gradle | 5 +- GhidraDocs/certification.manifest | 81 ++ 107 files changed, 12176 insertions(+), 75 deletions(-) create mode 100644 Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerMaintenance.java create mode 100644 Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java create mode 100644 GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.html create mode 100644 GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.md create mode 100644 GhidraDocs/GhidraClass/Debugger/A2-UITour.html create mode 100644 GhidraDocs/GhidraClass/Debugger/A2-UITour.md create mode 100644 GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html create mode 100644 GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.md create mode 100644 GhidraDocs/GhidraClass/Debugger/A4-MachineState.html create mode 100644 GhidraDocs/GhidraClass/Debugger/A4-MachineState.md create mode 100644 GhidraDocs/GhidraClass/Debugger/A5-Navigation.html create mode 100644 GhidraDocs/GhidraClass/Debugger/A5-Navigation.md create mode 100644 GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html create mode 100644 GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md create mode 100644 GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.html create mode 100644 GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.md create mode 100644 GhidraDocs/GhidraClass/Debugger/B2-Emulation.html create mode 100644 GhidraDocs/GhidraClass/Debugger/B2-Emulation.md create mode 100644 GhidraDocs/GhidraClass/Debugger/B3-Scripting.html create mode 100644 GhidraDocs/GhidraClass/Debugger/B3-Scripting.md create mode 100644 GhidraDocs/GhidraClass/Debugger/B4-Modeling.html create mode 100644 GhidraDocs/GhidraClass/Debugger/B4-Modeling.md create mode 100644 GhidraDocs/GhidraClass/Debugger/Makefile create mode 100644 GhidraDocs/GhidraClass/Debugger/README.md create mode 100644 GhidraDocs/GhidraClass/Debugger/gdb_syntax.xml create mode 100644 GhidraDocs/GhidraClass/Debugger/ghidra_scripts/CustomLibraryScript.java create mode 100644 GhidraDocs/GhidraClass/Debugger/ghidra_scripts/DumpBoardScript.java create mode 100644 GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallCustomLibraryScript.java create mode 100644 GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallExprEmulatorScript.java create mode 100644 GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ModelingScript.java create mode 100644 GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ZeroTimerScript.java create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Breakpoints_EmptyAfterLaunch.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Breakpoints_MissingModuleNote.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Breakpoints_PopAfterSRandRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Breakpoints_SeedValueAfterBreakSRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Breakpoints_SyncedAfterImportLibC.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Emulation_LazyStaleListing.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Emulation_ListingAfterResume.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Emulation_ListingForCmdlineSet.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Emulation_PcodeStepper.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Emulation_WatchesForCmdline.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Emulation_WatchesForCmdlineSet.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/GettingStarted_DisassemblyAfterLaunch.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/GettingStarted_ToolWSpecimen.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/MemoryMap_CopyNcursesInto.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/MemoryMap_ModulesAfterLaunch.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/MemoryMap_RegionsAfterLaunch.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/MemoryMap_StaticMappingAfterLaunch.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Navigation_CompareTimes.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Navigation_DialogCompareTimes.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Navigation_StackInCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Navigation_ThreadsInCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/Navigation_TimeAfterCallSRandCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/RemoteTargets_Gadp.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/RemoteTargets_GdbOverSsh.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/State_BytesStackAfterCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/State_ListingAfterCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/State_ListingStackAfterCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/State_RegistersAfterCallRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/State_WatchesInCallSRand.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/add.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/autoread.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/breakpoint-disable.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/breakpoint-enable-ineff.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/breakpoint-enable.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/breakpoint-overlay-inconsistent.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/camera-photo.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/connect.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/debugger.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/disconnect.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/interrupt.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/kill.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/process.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/record.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/register-marker.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/resume.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/select-registers.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/skipover.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/stepback.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/stepinto.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/steplast.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/stepout.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/stepover.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/table_relationship.png create mode 100644 GhidraDocs/GhidraClass/Debugger/images/view-refresh.png create mode 100644 GhidraDocs/GhidraClass/Debugger/links-to-html.lua create mode 100644 GhidraDocs/GhidraClass/Debugger/navhead.htm create mode 100644 GhidraDocs/GhidraClass/Debugger/sleigh_syntax.xml create mode 100644 GhidraDocs/GhidraClass/Debugger/style.css create mode 100644 GhidraDocs/GhidraClass/ExerciseFiles/Debugger/Makefile create mode 100644 GhidraDocs/GhidraClass/ExerciseFiles/Debugger/anyptracer.c create mode 100644 GhidraDocs/GhidraClass/ExerciseFiles/Debugger/termmines.c diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/DebuggerEmulationServicePlugin.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/DebuggerEmulationServicePlugin.java index 8a3088778d..9f0fcc0fc4 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/DebuggerEmulationServicePlugin.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/DebuggerEmulationServicePlugin.java @@ -89,7 +89,7 @@ import ghidra.util.task.TaskMonitor; public class DebuggerEmulationServicePlugin extends Plugin implements DebuggerEmulationService { protected static final int MAX_CACHE_SIZE = 5; - interface EmulateProgramAction { + public interface EmulateProgramAction { String NAME = "Emulate Program in new Trace"; String DESCRIPTION = "Emulate the current program in a new trace starting at the cursor"; Icon ICON = DebuggerResources.ICON_EMULATE; diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/model/DebuggerConnectDialog.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/model/DebuggerConnectDialog.java index 6ecaf399e1..cbdc0c2e1a 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/model/DebuggerConnectDialog.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/model/DebuggerConnectDialog.java @@ -305,6 +305,21 @@ public class DebuggerConnectDialog extends ReusableDialogComponentProvider super.cancelCallback(); } + /** + * For testing and documentation purposes only! + */ + public synchronized void setFactoryByBrief(String brief) { + synchronized (factories) { + for (FactoryEntry fe : factories.values()) { + if (Objects.equals(brief, fe.factory.getBrief())) { + dropdownModel.setSelectedItem(fe); + return; + } + } + throw new AssertionError(); + } + } + protected synchronized CompletableFuture reset( DebuggerModelFactory factory, Program program) { if (factory != null) { diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/tracemgr/DebuggerTraceManagerServicePlugin.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/tracemgr/DebuggerTraceManagerServicePlugin.java index 2c2c3738a6..3d227507a4 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/tracemgr/DebuggerTraceManagerServicePlugin.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/tracemgr/DebuggerTraceManagerServicePlugin.java @@ -21,6 +21,7 @@ import java.net.ConnectException; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; +import java.util.stream.Stream; import docking.ActionContext; import docking.action.DockingAction; @@ -491,9 +492,8 @@ public class DebuggerTraceManagerServicePlugin extends Plugin return false; } - List toOpen = Arrays.asList(data) - .stream() - .filter(f -> Trace.class.isAssignableFrom(f.getDomainObjectClass())) + List toOpen = Stream.of(data) + .filter(f -> f != null && Trace.class.isAssignableFrom(f.getDomainObjectClass())) .collect(Collectors.toList()); Collection openTraces = openTraces(toOpen); diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/debug/flatapi/FlatDebuggerAPI.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/debug/flatapi/FlatDebuggerAPI.java index 52e46cf30f..4ecc3296fe 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/debug/flatapi/FlatDebuggerAPI.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/debug/flatapi/FlatDebuggerAPI.java @@ -1140,7 +1140,7 @@ public interface FlatDebuggerAPI { Language language = platform.getLanguage(); RegisterValue value = readRegister(platform, requireThread(coordinates.getThread()), coordinates.getFrame(), coordinates.getSnap(), language.getProgramCounter()); - if (!value.hasValue()) { + if (value == null || !value.hasValue()) { return null; } return language.getDefaultSpace().getAddress(value.getUnsignedValue().longValue()); diff --git a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/AbstractGhidraHeadedDebuggerGUITest.java b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/AbstractGhidraHeadedDebuggerGUITest.java index 6511684383..1bcd8b883b 100644 --- a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/AbstractGhidraHeadedDebuggerGUITest.java +++ b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/AbstractGhidraHeadedDebuggerGUITest.java @@ -559,7 +559,7 @@ public abstract class AbstractGhidraHeadedDebuggerGUITest } } }; - protected ConsoleTaskMonitor monitor = new ConsoleTaskMonitor(); + protected final ConsoleTaskMonitor monitor = new ConsoleTaskMonitor(); protected void waitRecorder(TraceRecorder recorder) throws Throwable { if (recorder == null) { diff --git a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/TestDebuggerProgramLaunchOpinion.java b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/TestDebuggerProgramLaunchOpinion.java index 0f20ba8a8a..faace30e43 100644 --- a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/TestDebuggerProgramLaunchOpinion.java +++ b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/TestDebuggerProgramLaunchOpinion.java @@ -15,18 +15,13 @@ */ package ghidra.app.plugin.core.debug.service.model; -import static org.junit.Assert.*; - import java.util.Collection; import java.util.List; import java.util.concurrent.CompletableFuture; -import generic.Unique; import ghidra.app.plugin.core.debug.service.model.launch.DebuggerProgramLaunchOffer; import ghidra.app.plugin.core.debug.service.model.launch.DebuggerProgramLaunchOpinion; import ghidra.app.services.DebuggerModelService; -import ghidra.dbg.DebuggerModelFactory; -import ghidra.dbg.model.TestDebuggerModelFactory; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.listing.Program; import ghidra.util.task.TaskMonitor; @@ -60,8 +55,8 @@ public class TestDebuggerProgramLaunchOpinion implements DebuggerProgramLaunchOp @Override public Collection getOffers(Program program, PluginTool tool, DebuggerModelService service) { - DebuggerModelFactory factory = Unique.assertOne(service.getModelFactories()); - assertEquals(TestDebuggerModelFactory.class, factory.getClass()); + //DebuggerModelFactory factory = Unique.assertOne(service.getModelFactories()); + //assertEquals(TestDebuggerModelFactory.class, factory.getClass()); return List.of(new TestDebuggerProgramLaunchOffer()); } diff --git a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetMethod.java b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetMethod.java index e144efd828..94d4cbad62 100644 --- a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetMethod.java +++ b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetMethod.java @@ -17,8 +17,8 @@ package ghidra.dbg.target; import java.lang.annotation.*; import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodType; import java.lang.invoke.MethodHandles.Lookup; +import java.lang.invoke.MethodType; import java.lang.reflect.*; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -32,9 +32,6 @@ import ghidra.dbg.DebuggerTargetObjectIface; import ghidra.dbg.agent.AbstractDebuggerObjectModel; import ghidra.dbg.agent.DefaultTargetObject; import ghidra.dbg.error.DebuggerIllegalArgumentException; -import ghidra.dbg.target.TargetMethod.*; -import ghidra.dbg.target.TargetMethod.TargetParameterMap.EmptyTargetParameterMap; -import ghidra.dbg.target.TargetMethod.TargetParameterMap.ImmutableTargetParameterMap; import ghidra.dbg.target.schema.TargetAttributeType; import ghidra.dbg.util.CollectionUtils.AbstractEmptyMap; import ghidra.dbg.util.CollectionUtils.AbstractNMap; @@ -448,6 +445,28 @@ public interface TargetMethod extends TargetObject { return defaultValue; } + /** + * Set the argument for this parameter + * + * @param arguments the arguments to modify + * @param value the value to assign the parameter + */ + public void set(Map arguments, T value) { + arguments.put(name, value); + } + + /** + * Adjust the argument for this parameter + * + * @param arguments the arguments to modify + * @param adjuster a function of the old argument to the new argument. If the argument is + * not currently set, the function will receive null. + */ + @SuppressWarnings("unchecked") + public void adjust(Map arguments, Function adjuster) { + arguments.put(name, adjuster.apply((T) arguments.get(name))); + } + @Override public String toString() { return String.format( diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/time/schedule/Step.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/time/schedule/Step.java index 5d4c24fc21..af90d704cd 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/time/schedule/Step.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/time/schedule/Step.java @@ -65,7 +65,7 @@ public interface Step extends Comparable { * *

* The form of the spec must either be numeric, indicating some number of ticks, or - * brace-enclosed Sleigh code, e.g., {@code "{r0=0x1234;}"}. The latter allows patching machine + * brace-enclosed Sleigh code, e.g., {@code "{r0=0x1234}"}. The latter allows patching machine * state during execution. * * @param threadKey the thread to step, or -1 for the last thread or event thread diff --git a/Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/AbstractTaintPcodeExecutorStatePiece.java b/Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/AbstractTaintPcodeExecutorStatePiece.java index d7f5adb254..938bdad68b 100644 --- a/Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/AbstractTaintPcodeExecutorStatePiece.java +++ b/Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/AbstractTaintPcodeExecutorStatePiece.java @@ -121,10 +121,11 @@ public abstract class AbstractTaintPcodeExecutorStatePiece } @Override - protected Map getRegisterValuesFromSpace(S space, List registers) { + protected Map getRegisterValuesFromSpace(S space, + List registers) { return space.getRegisterValues(registers); } - + @Override public void clear() { for (S space : spaceMap.values()) { diff --git a/Ghidra/Features/Base/src/main/java/help/screenshot/AbstractScreenShotGenerator.java b/Ghidra/Features/Base/src/main/java/help/screenshot/AbstractScreenShotGenerator.java index a292077d7d..e53b9b562f 100644 --- a/Ghidra/Features/Base/src/main/java/help/screenshot/AbstractScreenShotGenerator.java +++ b/Ghidra/Features/Base/src/main/java/help/screenshot/AbstractScreenShotGenerator.java @@ -113,9 +113,13 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn setDockIcon(); } + protected TestEnv newTestEnv() throws Exception { + return new TestEnv(); + } + @Before public void setUp() throws Exception { - env = new TestEnv(); + env = newTestEnv(); prepareTool(); @@ -285,8 +289,8 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * The same as {@link GhidraScreenShotGenerator#captureIsolatedProvider(Class, int, int)} - * except this method will also capture the containing window. + * The same as {@link GhidraScreenShotGenerator#captureIsolatedProvider(Class, int, int)} except + * this method will also capture the containing window. * * @param clazz the provider class * @param width the width of the capture @@ -465,9 +469,9 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Captures the provider by using a screen shot and not by painting the provider directly - * (as does {@link #captureProvider(ComponentProvider)}). Use this method if you need to - * capture the provider along with any popup windows. + * Captures the provider by using a screen shot and not by painting the provider directly (as + * does {@link #captureProvider(ComponentProvider)}). Use this method if you need to capture the + * provider along with any popup windows. * * @param provider the provider */ @@ -488,13 +492,14 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Captures the window, including decorations. This will use a {@link Robot} to create a - * screen capture, which has the effect of getting all items within the window bounds. This - * method is needed if you wish to capture child windows, like popups/hovers. + * Captures the window, including decorations. This will use a {@link Robot} to create a screen + * capture, which has the effect of getting all items within the window bounds. This method is + * needed if you wish to capture child windows, like popups/hovers. * - *

Other capture methods will not use the screen capture mechanism, but rather will - * directly render the given component. In this case, subordinate windows will not be - * captured. For example, see {@link #captureProvider(Class)}. + *

+ * Other capture methods will not use the screen capture mechanism, but rather will directly + * render the given component. In this case, subordinate windows will not be captured. For + * example, see {@link #captureProvider(Class)}. * * @param name the provider's name */ @@ -505,13 +510,14 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Captures the window, including decorations. This will use a {@link Robot} to create a - * screen capture, which has the effect of getting all items within the window bounds. This - * method is needed if you wish to capture child windows, like popups/hovers. + * Captures the window, including decorations. This will use a {@link Robot} to create a screen + * capture, which has the effect of getting all items within the window bounds. This method is + * needed if you wish to capture child windows, like popups/hovers. * - *

Other capture methods will not use the screen capture mechanism, but rather will - * directly render the given component. In this case, subordinate windows will not be - * captured. For example, see {@link #captureProvider(Class)}. + *

+ * Other capture methods will not use the screen capture mechanism, but rather will directly + * render the given component. In this case, subordinate windows will not be captured. For + * example, see {@link #captureProvider(Class)}. * * @param clazz the provider's class */ @@ -521,13 +527,14 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Captures the window, including decorations. This will use a {@link Robot} to create a - * screen capture, which has the effect of getting all items within the window bounds. This - * method is needed if you wish to capture child windows, like popups/hovers. + * Captures the window, including decorations. This will use a {@link Robot} to create a screen + * capture, which has the effect of getting all items within the window bounds. This method is + * needed if you wish to capture child windows, like popups/hovers. * - *

Other capture methods will not use the screen capture mechanism, but rather will - * directly render the given component. In this case, subordinate windows will not be - * captured. For example, see {@link #captureProvider(Class)}. + *

+ * Other capture methods will not use the screen capture mechanism, but rather will directly + * render the given component. In this case, subordinate windows will not be captured. For + * example, see {@link #captureProvider(Class)}. * * @param provider the provider */ @@ -537,13 +544,14 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Captures the window, including decorations. This will use a {@link Robot} to create a - * screen capture, which has the effect of getting all items within the window bounds. This - * method is needed if you wish to capture child windows, like popups/hovers. + * Captures the window, including decorations. This will use a {@link Robot} to create a screen + * capture, which has the effect of getting all items within the window bounds. This method is + * needed if you wish to capture child windows, like popups/hovers. * - *

Other capture methods will not use the screen capture mechanism, but rather will - * directly render the given component. In this case, subordinate windows will not be - * captured. For example, see {@link #captureProvider(Class)}. + *

+ * Other capture methods will not use the screen capture mechanism, but rather will directly + * render the given component. In this case, subordinate windows will not be captured. For + * example, see {@link #captureProvider(Class)}. * * @param name the provider's name * @param width the desired width @@ -558,13 +566,14 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Captures the window, including decorations. This will use a {@link Robot} to create a - * screen capture, which has the effect of getting all items within the window bounds. This - * method is needed if you wish to capture child windows, like popups/hovers. + * Captures the window, including decorations. This will use a {@link Robot} to create a screen + * capture, which has the effect of getting all items within the window bounds. This method is + * needed if you wish to capture child windows, like popups/hovers. * - *

Other capture methods will not use the screen capture mechanism, but rather will - * directly render the given component. In this case, subordinate windows will not be - * captured. For example, see {@link #captureProvider(Class)}. + *

+ * Other capture methods will not use the screen capture mechanism, but rather will directly + * render the given component. In this case, subordinate windows will not be captured. For + * example, see {@link #captureProvider(Class)}. * * @param provider the provider's name * @param width the desired width @@ -1387,19 +1396,19 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Draws a rectangle around the given component. The root parameter is used to calculate - * screen coordinates. This allows you to capture a sub-component of a UI, drawing - * rectangles around children of said sub-component. + * Draws a rectangle around the given component. The root parameter is used to calculate screen + * coordinates. This allows you to capture a sub-component of a UI, drawing rectangles around + * children of said sub-component. * - *

If you are unsure of what to pass for root, the call + *

+ * If you are unsure of what to pass for root, the call * {@link #drawRectangleAround(JComponent, Color, int)} instead. * * @param component the component to be en-rectangled - * @param root the outermost container widget being displayed; null implies a - * top-level parent + * @param root the outermost container widget being displayed; null implies a top-level parent * @param color the rectangle color - * @param padding the space between the rectangle and the component; more space makes - * the component more visible + * @param padding the space between the rectangle and the component; more space makes the + * component more visible * @return the bounds of the drawn rectangle */ public Rectangle drawRectangleAround(JComponent component, JComponent root, Color color, @@ -1586,9 +1595,9 @@ public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIn } /** - * Crops a part of the current image, keeping what is inside the given bounds. This method - * creates a shape such that the top and bottom of the cropped image have a jagged line, - * looking somewhat like a sideways lightening bolt. + * Crops a part of the current image, keeping what is inside the given bounds. This method + * creates a shape such that the top and bottom of the cropped image have a jagged line, looking + * somewhat like a sideways lightening bolt. * * @param bounds the bounds to keep * @return the snippet diff --git a/Ghidra/Features/SystemEmulation/ghidra_scripts/EmuDeskCheckScript.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/EmuDeskCheckScript.java index 811eed3ef3..b590a5bd78 100644 --- a/Ghidra/Features/SystemEmulation/ghidra_scripts/EmuDeskCheckScript.java +++ b/Ghidra/Features/SystemEmulation/ghidra_scripts/EmuDeskCheckScript.java @@ -77,8 +77,6 @@ public class EmuDeskCheckScript extends GhidraScript implements FlatDebuggerAPI * the syscall stuff does, then we need to allow injection of the already-compiled Sleigh * program. For now, we'll have to declare the parameter-holding register as a language * variable. - * - * @param s */ @StructuredUserop public void strlen(/*@Param(name = "RDI", type = "char *") Var s*/) { diff --git a/Ghidra/Framework/Gui/src/main/java/generic/test/AbstractGuiTest.java b/Ghidra/Framework/Gui/src/main/java/generic/test/AbstractGuiTest.java index a03f97ce87..aec2c11bba 100644 --- a/Ghidra/Framework/Gui/src/main/java/generic/test/AbstractGuiTest.java +++ b/Ghidra/Framework/Gui/src/main/java/generic/test/AbstractGuiTest.java @@ -15,7 +15,8 @@ */ package generic.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; import java.awt.*; import java.awt.event.*; @@ -37,7 +38,6 @@ import org.junit.Assert; import ghidra.util.*; import ghidra.util.datastruct.WeakSet; import ghidra.util.exception.AssertException; -import ghidra.util.exception.CancelledException; import ghidra.util.task.AbstractSwingUpdateManager; import ghidra.util.task.SwingUpdateManager; import junit.framework.AssertionFailedError; @@ -91,10 +91,10 @@ public class AbstractGuiTest extends AbstractGenericTest { * for tasks */ public static void waitForTasks() { - doWaitForTasks(PRIVATE_LONG_WAIT_TIMEOUT); + waitForTasks(PRIVATE_LONG_WAIT_TIMEOUT); } - private static void doWaitForTasks(long timeout) { + public static void waitForTasks(long timeout) { waitForSwing(); long time = 0; @@ -110,7 +110,6 @@ public class AbstractGuiTest extends AbstractGenericTest { waitForSwing(); } - /** * @deprecated Use {@link #waitForSwing()} instead */ diff --git a/Ghidra/Test/IntegrationTest/build.gradle b/Ghidra/Test/IntegrationTest/build.gradle index 49b52cce81..ffb3221c45 100644 --- a/Ghidra/Test/IntegrationTest/build.gradle +++ b/Ghidra/Test/IntegrationTest/build.gradle @@ -48,6 +48,7 @@ dependencies { if (projectPath.startsWith(ghidraPath) && ( projectPath.contains("/Framework/") || projectPath.contains("/Features/") || + projectPath.contains("/Debug/") || projectPath.contains("/Processors/"))) { api p diff --git a/Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerMaintenance.java b/Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerMaintenance.java new file mode 100644 index 0000000000..ffc3d07564 --- /dev/null +++ b/Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerMaintenance.java @@ -0,0 +1,71 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidraclass.debugger.screenshot; + +import java.io.File; + +import org.junit.*; + +import db.Transaction; +import ghidra.app.util.importer.AutoImporter; +import ghidra.app.util.importer.MessageLog; +import ghidra.app.util.opinion.LoadResults; +import ghidra.base.project.GhidraProject; +import ghidra.framework.Application; +import ghidra.framework.plugintool.PluginTool; +import ghidra.program.model.listing.Program; +import ghidra.test.AbstractGhidraHeadedIntegrationTest; +import ghidra.test.TestEnv; +import ghidra.util.task.ConsoleTaskMonitor; +import ghidra.util.task.TaskMonitor; + +public class TutorialDebuggerMaintenance extends AbstractGhidraHeadedIntegrationTest { + public static final TaskMonitor CONSOLE = new ConsoleTaskMonitor(); + + public PluginTool tool; + public TestEnv env; + public Program program; + + @Before + public void setUp() throws Throwable { + env = new TestEnv(); + + tool = env.launchDefaultTool(); + } + + @After + public void tearDown() throws Throwable { + if (program != null) { + program.release(this); + program = null; + } + } + + @Test + public void testRecreateTermminesGzf() throws Throwable { + File termmines = Application.getModuleDataFile("TestResources", "termmines").getFile(false); + LoadResults results = AutoImporter.importByUsingBestGuess(termmines, + env.getProject(), "/", this, new MessageLog(), CONSOLE); + program = results.getPrimaryDomainObject(); + try (Transaction tx = program.openTransaction("Analyze")) { + program.setExecutablePath("/tmp/termmines"); + GhidraProject.analyze(program); + } + File dest = new File(termmines.getParentFile(), "termmines.gzf"); + dest.delete(); + program.saveToPackedFile(dest, CONSOLE); + } +} diff --git a/Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java b/Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java new file mode 100644 index 0000000000..781940d350 --- /dev/null +++ b/Ghidra/Test/IntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java @@ -0,0 +1,837 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidraclass.debugger.screenshot; + +import static org.junit.Assert.assertTrue; + +import java.awt.Rectangle; +import java.awt.event.MouseEvent; +import java.io.*; +import java.nio.file.FileAlreadyExistsException; +import java.nio.file.Files; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import org.junit.Before; +import org.junit.Test; + +import db.Transaction; +import docking.action.DockingActionIf; +import docking.widgets.fieldpanel.FieldPanel; +import generic.Unique; +import generic.jar.ResourceFile; +import ghidra.app.cmd.disassemble.DisassembleCommand; +import ghidra.app.context.ProgramLocationActionContext; +import ghidra.app.decompiler.component.DecompilerPanel; +import ghidra.app.nav.Navigatable; +import ghidra.app.plugin.core.analysis.AutoAnalysisPlugin; +import ghidra.app.plugin.core.codebrowser.CodeViewerProvider; +import ghidra.app.plugin.core.debug.gui.action.*; +import ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider; +import ghidra.app.plugin.core.debug.gui.console.DebuggerConsoleProvider; +import ghidra.app.plugin.core.debug.gui.copying.DebuggerCopyActionsPlugin; +import ghidra.app.plugin.core.debug.gui.copying.DebuggerCopyIntoProgramDialog; +import ghidra.app.plugin.core.debug.gui.diff.DebuggerTraceViewDiffPlugin; +import ghidra.app.plugin.core.debug.gui.listing.DebuggerListingProvider; +import ghidra.app.plugin.core.debug.gui.memory.DebuggerMemoryBytesProvider; +import ghidra.app.plugin.core.debug.gui.memory.DebuggerRegionsProvider; +import ghidra.app.plugin.core.debug.gui.modules.DebuggerModulesProvider; +import ghidra.app.plugin.core.debug.gui.modules.DebuggerStaticMappingProvider; +import ghidra.app.plugin.core.debug.gui.pcode.DebuggerPcodeStepperPlugin; +import ghidra.app.plugin.core.debug.gui.pcode.DebuggerPcodeStepperProvider; +import ghidra.app.plugin.core.debug.gui.register.DebuggerRegistersProvider; +import ghidra.app.plugin.core.debug.gui.stack.DebuggerStackProvider; +import ghidra.app.plugin.core.debug.gui.stack.vars.VariableValueHoverPlugin; +import ghidra.app.plugin.core.debug.gui.target.DebuggerTargetsPlugin; +import ghidra.app.plugin.core.debug.gui.thread.DebuggerThreadsProvider; +import ghidra.app.plugin.core.debug.gui.time.DebuggerTimeProvider; +import ghidra.app.plugin.core.debug.gui.time.DebuggerTimeSelectionDialog; +import ghidra.app.plugin.core.debug.gui.watch.DebuggerWatchesProvider; +import ghidra.app.plugin.core.debug.gui.watch.WatchRow; +import ghidra.app.plugin.core.debug.service.emulation.DebuggerEmulationServicePlugin; +import ghidra.app.plugin.core.debug.service.emulation.DebuggerEmulationServicePlugin.EmulateProgramAction; +import ghidra.app.plugin.core.debug.service.model.DebuggerConnectDialog; +import ghidra.app.plugin.core.debug.service.model.launch.DebuggerProgramLaunchOffer; +import ghidra.app.plugin.core.debug.service.model.launch.DebuggerProgramLaunchOffer.*; +import ghidra.app.plugin.core.debug.stack.StackUnwinderTest; +import ghidra.app.plugin.core.debug.stack.StackUnwinderTest.HoverLocation; +import ghidra.app.plugin.core.debug.stack.UnwindStackCommand; +import ghidra.app.plugin.core.debug.workflow.*; +import ghidra.app.plugin.core.decompile.DecompilerProvider; +import ghidra.app.script.GhidraState; +import ghidra.app.services.*; +import ghidra.app.services.DebuggerEmulationService.EmulationResult; +import ghidra.app.util.importer.AutoImporter; +import ghidra.app.util.importer.MessageLog; +import ghidra.app.util.opinion.LoadResults; +import ghidra.async.AsyncTestUtils; +import ghidra.dbg.DebuggerModelFactory; +import ghidra.dbg.target.TargetLauncher; +import ghidra.dbg.target.TargetLauncher.TargetCmdLineLauncher; +import ghidra.dbg.testutil.DummyProc; +import ghidra.dbg.util.ConfigurableFactory.Property; +import ghidra.debug.flatapi.FlatDebuggerAPI; +import ghidra.framework.Application; +import ghidra.framework.TestApplicationUtils; +import ghidra.framework.model.DomainFolder; +import ghidra.framework.model.DomainObject; +import ghidra.framework.plugintool.util.PluginUtils; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressSet; +import ghidra.program.model.data.*; +import ghidra.program.model.listing.*; +import ghidra.program.model.symbol.Reference; +import ghidra.program.model.symbol.Symbol; +import ghidra.program.util.GhidraProgramUtilities; +import ghidra.program.util.ProgramSelection; +import ghidra.test.TestEnv; +import ghidra.trace.model.breakpoint.TraceBreakpoint; +import ghidra.trace.model.guest.TracePlatform; +import ghidra.trace.model.modules.TraceModule; +import ghidra.trace.model.modules.TraceSection; +import ghidra.trace.model.program.TraceProgramView; +import ghidra.trace.model.time.schedule.*; +import ghidra.util.InvalidNameException; +import ghidra.util.Msg; +import ghidra.util.exception.CancelledException; +import ghidra.util.task.ConsoleTaskMonitor; +import help.screenshot.GhidraScreenShotGenerator; + +public class TutorialDebuggerScreenShots extends GhidraScreenShotGenerator + implements AsyncTestUtils { + protected static final String TUTORIAL_PATH = + TestApplicationUtils.getInstallationDirectory() + "/GhidraDocs/GhidraClass/Debugger/"; + protected static final File TUTORIAL_DIR = new File(TUTORIAL_PATH); + + protected static final String TERMMINES_PATH = "/tmp/termmines"; + + protected final ConsoleTaskMonitor monitor = new ConsoleTaskMonitor(); + + protected ProgramManager programManager; + protected CodeViewerService staticListingService; + protected DebuggerWorkflowService workflowService; + protected DebuggerModelService modelService; + + protected DebuggerModelFactory gdbFactory; + + protected final FlatDebuggerAPI flatDbg = new FlatDebuggerAPI() { + @Override + public GhidraState getState() { + Navigatable nav = staticListingService.getNavigatable(); + return new GhidraState(tool, env.getProject(), + nav.getProgram(), nav.getLocation(), nav.getSelection(), nav.getHighlight()); + } + }; + + @Override + protected TestEnv newTestEnv() throws Exception { + return new TestEnv("DebuggerCourse"); + } + + // TODO: Propose this replace waitForProgram + public static void waitForDomainObject(DomainObject object) { + object.flushEvents(); + waitForSwing(); + } + + protected void intoProject(DomainObject obj) { + waitForDomainObject(obj); + DomainFolder rootFolder = tool.getProject() + .getProjectData() + .getRootFolder(); + waitForCondition(() -> { + try { + rootFolder.createFile(obj.getName(), obj, monitor); + return true; + } + catch (InvalidNameException | CancelledException e) { + throw new AssertionError(e); + } + catch (IOException e) { + // Usually "object is busy". Try again. + return false; + } + }); + } + + @Override + public void prepareTool() { + tool = env.launchTool("Debugger"); + } + + @Override + public void loadProgram() throws Exception { + loadProgram("termmines"); + try (Transaction tx = program.openTransaction("Set exe path")) { + program.setExecutablePath(TERMMINES_PATH); + } + intoProject(program); + } + + @Override + public void saveOrDisplayImage(String name) { + if (TUTORIAL_DIR.exists()) { + TUTORIAL_DIR.mkdirs(); + } + name = name.substring("test".length()); + finished(TUTORIAL_DIR, name + ".png"); + } + + protected void enableBot(Class botCls) { + Set bots = workflowService.getAllBots() + .stream() + .filter(b -> botCls.isInstance(b)) + .map(b -> botCls.cast(b)) + .collect(Collectors.toSet()); + workflowService.enableBots(bots); + } + + protected CodeViewerService getStaticListingService() { + for (CodeViewerService viewer : tool.getServices(CodeViewerService.class)) { + if (viewer instanceof DebuggerListingService) { + continue; + } + return viewer; + } + return null; + } + + @Before + public void setUpDebugger() throws Throwable { + ResourceFile termminesRsrc = Application.getModuleDataFile("TestResources", "termmines"); + File termmines = new File(TERMMINES_PATH); + try { + Files.copy(termminesRsrc.getFile(false).toPath(), termmines.toPath()); + } + catch (FileNotFoundException e) { + Msg.warn(this, "Could not update " + TERMMINES_PATH); + } + catch (FileAlreadyExistsException e) { + Files.delete(termmines.toPath()); + Files.copy(termminesRsrc.getFile(false).toPath(), termmines.toPath()); + } + termmines.setExecutable(true); + + programManager = tool.getService(ProgramManager.class); + staticListingService = getStaticListingService(); + + // This is a front-end plugin. We have to configure it. + workflowService = tool.getService(DebuggerWorkflowService.class); + enableBot(MapModulesDebuggerBot.class); + enableBot(DisassembleAtPcDebuggerBot.class); + enableBot(ShowInterpreterDebuggerBot.class); + + modelService = tool.getService(DebuggerModelService.class); + gdbFactory = modelService.getModelFactories() + .stream() + .filter(f -> "gdb".equals(f.getBrief())) + .findAny() + .get(); + + @SuppressWarnings("unchecked") + Property gdbPathProp = + (Property) gdbFactory.getOptions().get("GDB launch command"); + gdbPathProp.setValue(DummyProc.which("gdb")); + } + + @Test + public void testGettingStarted_ToolWSpecimen() { + captureToolWindow(1920, 1080); + } + + protected void launchProgramInGdb(String extraArgs) throws Throwable { + DebuggerProgramLaunchOffer offer = modelService.getProgramLaunchOffers(program) + .filter(o -> "IN-VM GDB".equals(o.getConfigName())) + .findFirst() + .get(); + LaunchConfigurator config = new LaunchConfigurator() { + @Override + public Map configureLauncher(TargetLauncher launcher, + Map arguments, RelPrompt relPrompt) { + if (extraArgs.length() == 0) { + return arguments; + } + Map adjusted = new HashMap<>(arguments); + TargetCmdLineLauncher.PARAMETER_CMDLINE_ARGS.adjust(adjusted, + c -> c + " " + extraArgs); + return adjusted; + } + }; + LaunchResult result = waitOn(offer.launchProgram(monitor, PromptMode.NEVER, config)); + if (result.exception() != null) { + throw result.exception(); + } + } + + protected void launchProgramInGdb() throws Throwable { + launchProgramInGdb(""); + } + + @Test + public void testGettingStarted_DisassemblyAfterLaunch() throws Throwable { + launchProgramInGdb(); + + captureToolWindow(1920, 1080); + } + + @Test + public void testBreakpoints_EmptyAfterLaunch() throws Throwable { + launchProgramInGdb(); + + tool.setSize(1920, 1080); + captureProvider(DebuggerBreakpointsProvider.class); + } + + protected void placeBreakpointsSRandRand() throws Throwable { + assertTrue(flatDbg.execute("break srand")); + assertTrue(flatDbg.execute("break rand")); + waitForCondition(() -> flatDbg.getAllBreakpoints().size() == 2); + } + + protected void placeBreakpointsRand() throws Throwable { + assertTrue(flatDbg.execute("break rand")); + waitForCondition(() -> flatDbg.getAllBreakpoints().size() == 1); + } + + @Test + public void testBreakpoints_PopAfterSRandRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsSRandRand(); + + tool.setSize(1920, 1080); + captureProvider(DebuggerBreakpointsProvider.class); + } + + protected Address navigateToBreakpoint(String comment) { + TraceBreakpoint bp = flatDbg.getAllBreakpoints() + .stream() + .flatMap(l -> l.getTraceBreakpoints().stream()) + .filter(l -> comment.equals(l.getComment())) + .findAny() + .get(); + Address dynAddr = bp.getMinAddress(); + flatDbg.goToDynamic(dynAddr); + return dynAddr; + } + + @Test + public void testBreakpoints_MissingModuleNote() throws Throwable { + launchProgramInGdb(); + placeBreakpointsSRandRand(); + navigateToBreakpoint("srand"); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerConsoleProvider.class); + } + + protected Program importModule(TraceModule module) throws Throwable { + Program prog = null; + try { + MessageLog log = new MessageLog(); + LoadResults result = AutoImporter.importByUsingBestGuess( + new File(module.getName()), env.getProject(), "/", this, log, monitor); + result.save(env.getProject(), this, log, monitor); + prog = result.getPrimaryDomainObject(); + GhidraProgramUtilities.markProgramNotToAskToAnalyze(prog); + programManager.openProgram(prog); + } + finally { + if (prog != null) { + prog.release(this); + } + } + return prog; + } + + protected void analyze(Program prog) { + DockingActionIf actAutoAnalyze = Unique.assertOne(getActionsByOwnerAndName(tool, + PluginUtils.getPluginNameFromClass(AutoAnalysisPlugin.class), "Auto Analyze")); + performAction(actAutoAnalyze); + } + + protected TraceModule getModuleContaining(Address dynAddr) { + return Unique.assertOne(flatDbg.getCurrentTrace() + .getModuleManager() + .getModulesAt(flatDbg.getCurrentSnap(), dynAddr)); + } + + protected void disassembleSymbol(Program prog, String name) { + for (Symbol sym : prog.getSymbolTable().getLabelOrFunctionSymbols(name, null)) { + tool.executeBackgroundCommand(new DisassembleCommand(sym.getAddress(), null, true), + prog); + } + waitForTasks(600 * 1000); + } + + @Test + public void testBreakpoints_SyncedAfterImportLibC() throws Throwable { + launchProgramInGdb(); + placeBreakpointsSRandRand(); + showProvider(DebuggerBreakpointsProvider.class); + Address dynAddr = navigateToBreakpoint("srand"); + TraceModule modLibC = getModuleContaining(dynAddr); + Program progLibC = importModule(modLibC); + waitForCondition(() -> flatDbg.translateDynamicToStatic(dynAddr) != null); + disassembleSymbol(progLibC, "srand"); + // Just to be sure. + goTo(tool, progLibC, flatDbg.translateDynamicToStatic(dynAddr)); + + captureToolWindow(1920, 1080); + } + + @Test + public void testBreakpoints_SeedValueAfterBreakSRand() throws Throwable { + addPlugin(tool, VariableValueHoverPlugin.class); + + launchProgramInGdb(); + placeBreakpointsSRandRand(); + showProvider(DecompilerProvider.class); + Address dynAddr = navigateToBreakpoint("srand"); + TraceModule modLibC = getModuleContaining(dynAddr); + Program progLibC = importModule(modLibC); + waitForCondition(() -> flatDbg.translateDynamicToStatic(dynAddr) != null); + disassembleSymbol(progLibC, "srand"); + Address stAddr = flatDbg.translateDynamicToStatic(dynAddr); + // Just to be sure. + goTo(tool, progLibC, stAddr); + flatDbg.resume(); + + Function funSRand = progLibC.getFunctionManager().getFunctionAt(stAddr); + + runSwing(() -> tool.setSize(1920, 1080)); + + DecompilerProvider dProvider = waitForComponentProvider(DecompilerProvider.class); + DecompilerPanel dPanel = dProvider.getDecompilerPanel(); + HoverLocation loc = StackUnwinderTest.findTokenLocation(dPanel, funSRand, "param_1", + "void srand(ulong param_1)"); + runSwing(() -> dPanel.goToToken(loc.token())); + FieldPanel fieldPanel = dPanel.getFieldPanel(); + Rectangle rect = fieldPanel.getCursorBounds(); + MouseEvent event = + new MouseEvent(fieldPanel, 0, System.currentTimeMillis(), 0, rect.x, rect.y, 0, false); + fieldPanel.getHoverHandler().mouseHovered(event); + waitForSwing(); + sleep(500); // Give time for GDB to respond async + + captureProviderWithScreenShot(dProvider); + } + + @Test + public void testState_ListingAfterCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsRand(); + flatDbg.resume(); + flatDbg.stepOut(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerListingProvider.class); + } + + @Test + public void testState_ListingStackAfterCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsRand(); + flatDbg.resume(); + flatDbg.stepOut(); + + DebuggerListingService listingService = tool.getService(DebuggerListingService.class); + listingService.setTrackingSpec(SPLocationTrackingSpec.INSTANCE); + + sleep(1000); + + tool.execute(new UnwindStackCommand(tool, flatDbg.getCurrentDebuggerCoordinates()), + flatDbg.getCurrentTrace()); + waitForTasks(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerListingProvider.class); + } + + @Test + public void testState_BytesStackAfterCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsRand(); + flatDbg.resume(); + flatDbg.stepOut(); + + DebuggerMemoryBytesProvider bytesProvider = showProvider(DebuggerMemoryBytesProvider.class); + bytesProvider.setTrackingSpec(SPLocationTrackingSpec.INSTANCE); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerMemoryBytesProvider.class); + } + + @Test + public void testState_RegistersAfterCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsRand(); + flatDbg.resume(); + flatDbg.stepOut(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerRegistersProvider.class); + } + + @Test + public void testState_WatchesInCallSRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsSRandRand(); + flatDbg.resume(); + + DebuggerWatchesService watchesService = tool.getService(DebuggerWatchesService.class); + watchesService.addWatch("RDI"); + WatchRow watchRetPtr = watchesService.addWatch("*:8 RSP"); + watchRetPtr.setDataType( + new PointerTypedefBuilder(VoidDataType.dataType, 8, null).addressSpace("ram").build()); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerWatchesProvider.class); + } + + @Test + public void testNavigation_ThreadsInCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsRand(); + flatDbg.resume(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerThreadsProvider.class); + } + + @Test + public void testNavigation_StackInCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsRand(); + Address dynAddr = navigateToBreakpoint("rand"); + TraceModule modLibC = getModuleContaining(dynAddr); + importModule(modLibC); + waitForCondition(() -> flatDbg.translateDynamicToStatic(dynAddr) != null); + flatDbg.resume(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerStackProvider.class); + } + + @Test + public void testNavigation_TimeAfterCallSRandCallRand() throws Throwable { + launchProgramInGdb(); + placeBreakpointsSRandRand(); + flatDbg.resume(); // srand + flatDbg.resume(); // rand.1 + flatDbg.stepOut(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerTimeProvider.class); + } + + @Test + public void testNavigation_DialogCompareTimes() throws Throwable { + launchProgramInGdb(); // main + placeBreakpointsRand(); + Address pc = flatDbg.getProgramCounter(); + long snapA = flatDbg.getCurrentSnap(); + TraceModule modTermmines = Unique.assertOne(flatDbg.getCurrentTrace() + .getModuleManager() + .getModulesAt(snapA, pc)); + TraceSection secTermminesData = modTermmines.getSectionByName(".data"); + flatDbg.readMemory(secTermminesData.getStart(), + (int) secTermminesData.getRange().getLength(), monitor); + + flatDbg.resume(); // rand.1 + flatDbg.readMemory(secTermminesData.getStart(), + (int) secTermminesData.getRange().getLength(), monitor); + + performAction("Compare", + PluginUtils.getPluginNameFromClass(DebuggerTraceViewDiffPlugin.class), false); + DebuggerTimeSelectionDialog timeDialog = + waitForDialogComponent(DebuggerTimeSelectionDialog.class); + timeDialog.setScheduleText(TraceSchedule.snap(snapA).toString()); + captureDialog(timeDialog); + } + + @Test + public void testNavigation_CompareTimes() throws Throwable { + launchProgramInGdb("-M 15"); // main + placeBreakpointsRand(); + Address pc = flatDbg.getProgramCounter(); + long snapA = flatDbg.getCurrentSnap(); + TraceModule modTermmines = Unique.assertOne(flatDbg.getCurrentTrace() + .getModuleManager() + .getModulesAt(snapA, pc)); + TraceSection secTermminesData = modTermmines.getSectionByName(".data"); + flatDbg.readMemory(secTermminesData.getStart(), + (int) secTermminesData.getRange().getLength(), monitor); + + flatDbg.resume(); // rand.1 + flatDbg.waitForBreak(1000, TimeUnit.MILLISECONDS); + flatDbg.readMemory(secTermminesData.getStart(), + (int) secTermminesData.getRange().getLength(), monitor); + + performAction("Compare", + PluginUtils.getPluginNameFromClass(DebuggerTraceViewDiffPlugin.class), false); + DebuggerTimeSelectionDialog timeDialog = + waitForDialogComponent(DebuggerTimeSelectionDialog.class); + runSwing(() -> timeDialog.setScheduleText(TraceSchedule.snap(snapA).toString())); + runSwing(() -> timeDialog.okCallback()); + + DockingActionIf actionNextDiff = waitForValue(() -> { + try { + return Unique.assertOne(getActionsByOwnerAndName(tool, + PluginUtils.getPluginNameFromClass(DebuggerTraceViewDiffPlugin.class), + "Next Difference")); + } + catch (Throwable e) { + return null; + } + }); + waitForCondition(() -> actionNextDiff.isEnabled()); + flatDbg.goToDynamic(secTermminesData.getStart()); + performAction(actionNextDiff); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerListingProvider.class); + } + + @Test + public void testMemoryMap_RegionsAfterLaunch() throws Throwable { + launchProgramInGdb(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerRegionsProvider.class); + } + + @Test + public void testMemoryMap_ModulesAfterLaunch() throws Throwable { + launchProgramInGdb(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerModulesProvider.class); + } + + @Test + public void testMemoryMap_StaticMappingAfterLaunch() throws Throwable { + launchProgramInGdb(); + placeBreakpointsSRandRand(); + showProvider(DebuggerStaticMappingProvider.class); + Address dynAddr = navigateToBreakpoint("srand"); + TraceModule modLibC = getModuleContaining(dynAddr); + importModule(modLibC); + waitForCondition(() -> flatDbg.translateDynamicToStatic(dynAddr) != null); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerStaticMappingProvider.class); + } + + @Test + public void testMemoryMap_CopyNcursesInto() throws Throwable { + launchProgramInGdb(); + TraceModule modNcurses = flatDbg.getCurrentTrace() + .getModuleManager() + .getAllModules() + .stream() + .filter(m -> m.getName().contains("ncurses")) + .findAny() + .get(); + DebuggerListingService listings = tool.getService(DebuggerListingService.class); + runSwing(() -> listings + .setCurrentSelection(new ProgramSelection(new AddressSet(modNcurses.getRange())))); + performAction("Copy Into New Program", + PluginUtils.getPluginNameFromClass(DebuggerCopyActionsPlugin.class), false); + captureDialog(DebuggerCopyIntoProgramDialog.class); + } + + @Test + public void testRemoteTargets_GdbOverSsh() throws Throwable { + performAction("Connect", PluginUtils.getPluginNameFromClass(DebuggerTargetsPlugin.class), + false); + DebuggerConnectDialog dialog = waitForDialogComponent(DebuggerConnectDialog.class); + runSwing(() -> dialog.setFactoryByBrief("gdb via SSH")); + + captureDialog(dialog); + } + + @Test + public void testRemoteTargets_Gadp() throws Throwable { + performAction("Connect", PluginUtils.getPluginNameFromClass(DebuggerTargetsPlugin.class), + false); + DebuggerConnectDialog dialog = waitForDialogComponent(DebuggerConnectDialog.class); + runSwing(() -> dialog.setFactoryByBrief("Ghidra debug agent (GADP)")); + + captureDialog(dialog); + } + + protected Function findCommandLineParser() throws Throwable { + for (Data data : program.getListing().getDefinedData(true)) { + Object value = data.getValue(); + if (!(value instanceof String str) || !str.startsWith("Usage: ")) { + continue; + } + for (Reference refToUsage : data.getReferenceIteratorTo()) { + Address from = refToUsage.getFromAddress(); + Function function = program.getFunctionManager().getFunctionContaining(from); + if (function != null) { + return function; + } + } + } + throw new AssertionError("Cannot find command-line parsing function"); + } + + protected CodeViewerProvider getCodeViewerProvider() { + return (CodeViewerProvider) staticListingService.getNavigatable(); // HACK + } + + protected void goToStaticUntilContext(Address address) { + CodeViewerProvider provider = getCodeViewerProvider(); + waitForCondition(() -> { + goTo(tool, program, address); + runSwing(() -> provider.contextChanged()); + return provider.getActionContext(null) instanceof ProgramLocationActionContext; + }); + } + + protected void emulateCommandLineParser() throws Throwable { + Function function = findCommandLineParser(); + goToStaticUntilContext(function.getEntryPoint()); + performAction(EmulateProgramAction.NAME, + PluginUtils.getPluginNameFromClass(DebuggerEmulationServicePlugin.class), + getCodeViewerProvider(), true); + + } + + @Test + public void testEmulation_LazyStaleListing() throws Throwable { + emulateCommandLineParser(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerListingProvider.class); + } + + @Test + public void testEmulation_ListingAfterResume() throws Throwable { + emulateCommandLineParser(); + + DebuggerListingProvider listing = getProvider(DebuggerListingProvider.class); + listing.setAutoReadMemorySpec( + AutoReadMemorySpec.fromConfigName(LoadEmulatorAutoReadMemorySpec.CONFIG_NAME)); + EmulationResult result = flatDbg.getEmulationService() + .run(flatDbg.getCurrentPlatform(), flatDbg.getCurrentEmulationSchedule(), monitor, + Scheduler.oneThread(flatDbg.getCurrentThread())); + flatDbg.getTraceManager().activateTime(result.schedule()); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerListingProvider.class); + } + + protected void addWatchesForCmdline() throws Throwable { + DebuggerWatchesService watchesService = tool.getService(DebuggerWatchesService.class); + watchesService.addWatch("RSP"); + watchesService.addWatch("RDI"); + watchesService.addWatch("RSI"); + + watchesService.addWatch("*:8 (RSI + 0)"); + watchesService.addWatch("*:8 (RSI + 8)"); + watchesService.addWatch("*:8 (RSI + 16)"); + + watchesService.addWatch("*:30 (*:8 (RSI + 0))") + .setDataType(TerminatedStringDataType.dataType); + watchesService.addWatch("*:30 (*:8 (RSI + 8))") + .setDataType(TerminatedStringDataType.dataType); + watchesService.addWatch("*:30 (*:8 (RSI + 16))") + .setDataType(TerminatedStringDataType.dataType); + } + + @Test + public void testEmulation_WatchesForCmdline() throws Throwable { + emulateCommandLineParser(); + addWatchesForCmdline(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerWatchesProvider.class); + } + + protected void activateCmdlinePatchedSchedule() throws Throwable { + TracePlatform platform = flatDbg.getCurrentPlatform(); + Address forArgv0 = platform.getAddressFactory().getAddress("00001018"); + Address forArgv1 = forArgv0.add("termmines\0".length()); + Address forArgv2 = forArgv1.add("-s\0".length()); + List sleigh = new ArrayList<>(); + sleigh.add("RDI=3"); + sleigh.add("RSI=0x1000"); + sleigh.addAll(PatchStep.generateSleigh(platform.getLanguage(), + forArgv0, "termmines\0".getBytes())); + sleigh.addAll(PatchStep.generateSleigh(platform.getLanguage(), + forArgv1, "-s\0".getBytes())); + sleigh.addAll(PatchStep.generateSleigh(platform.getLanguage(), + forArgv2, "Advanced\0".getBytes())); + sleigh.add("*:8 (RSI + 0) = 0x" + forArgv0); + sleigh.add("*:8 (RSI + 8) = 0x" + forArgv1); + sleigh.add("*:8 (RSI + 16) = 0x" + forArgv2); + TraceSchedule schedule = flatDbg.getCurrentEmulationSchedule(); + schedule = schedule.patched(flatDbg.getCurrentThread(), platform.getLanguage(), sleigh); + + flatDbg.getTraceManager().activateTime(schedule); + getProvider(DebuggerWatchesProvider.class).waitEvaluate(1000); + } + + @Test + public void testEmulation_WatchesForCmdlineSet() throws Throwable { + emulateCommandLineParser(); + addWatchesForCmdline(); + activateCmdlinePatchedSchedule(); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerWatchesProvider.class); + } + + @Test + public void testEmulation_ListingForCmdlineSet() throws Throwable { + emulateCommandLineParser(); + activateCmdlinePatchedSchedule(); + + Address addrArgv = flatDbg.getCurrentPlatform().getAddressFactory().getAddress("00001000"); + + TraceProgramView view = flatDbg.getCurrentView(); + waitForCondition(() -> view.getSnap() != 0); + try (Transaction tx = view.openTransaction("Place units")) { + Listing listing = view.getListing(); + Data datArgv = + listing.createData(addrArgv, new ArrayDataType(PointerDataType.dataType, 3, 8)); + Address forArgv0 = (Address) datArgv.getComponent(0).getValue(); + Address forArgv1 = (Address) datArgv.getComponent(1).getValue(); + Address forArgv2 = (Address) datArgv.getComponent(2).getValue(); + + listing.createData(forArgv0, TerminatedStringDataType.dataType); + listing.createData(forArgv1, TerminatedStringDataType.dataType); + listing.createData(forArgv2, TerminatedStringDataType.dataType); + } + flatDbg.goToDynamic("00001010"); + + runSwing(() -> tool.setSize(1920, 1080)); + captureProvider(DebuggerListingProvider.class); + } + + @Test + public void testEmulation_PcodeStepper() throws Throwable { + runSwing(() -> tool.setSize(1920, 1080)); + addPlugin(tool, DebuggerPcodeStepperPlugin.class); + emulateCommandLineParser(); + flatDbg.stepEmuPcodeOp(1, monitor); + + captureProvider(DebuggerPcodeStepperProvider.class); + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.html b/GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.html new file mode 100644 index 0000000000..19ddc8a8cd --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.html @@ -0,0 +1,478 @@ + + + + + + + Ghidra Debugger + + + + + +

+
+

Ghidra Debugger

+
+ +
+

Getting Started

+

This course assumes you are already familiar with the basics of using +Ghidra, including its static analysis features. To some degree, static +analysis is an integral part of debugging with Ghidra.

+
+

The specimen

+

Throughout this course, we will examine the provided “Terminal +Minesweeper” specimen, named termmines. If the compiled +artifact has not been provided for you, you may build it from source +using the provided Makefile, but you will +need ncurses.h first:

+
cd GhidraClass/ExerciseFiles/Debugger
+make
+

The specimen is designed for Linux, but should be trivially portable +to other Unix systems. You will need ncurses and its +development headers and libraries available on your system. Though +source code for the specimen is available, we strongly encourage you to +work on the course exercises without referring to it. Symbols and debug +information are removed from the binary. With some effort, +termmines may even port to Windows; however, we have not +tested this course on Windows.

+

It is a good idea to get acquainted with the specimen. In general, +you should take precautions before running code you do not understand or +trust. For termmines, the risk is negligible. Run it:

+
./termmines
+

You should see a 9x9 grid and a cursor you can move with the arrow +keys. Hit Ctrl-C to exit. Probe it for help. Most Linux +programs accept a -h argument for help:

+
./termmines -h
+

You should now have all the information you need to understand how +the game works. If you have never played Minesweeper before, read up +online, and perhaps try playing a couple of games. Don’t get distracted, +though.

+
+
+

Launching on Linux

+

On Linux, we will use GDB to debug the specimen. There are many ways +to do this, but for the sake of simplicity, import and launch as +follows:

+
    +
  1. Import termmines into a new Ghidra project.

  2. +
  3. If you have a CodeBrowser open, close it and return to the main +Ghidra project window.

  4. +
  5. Drag termmines onto the Debugger debugger icon in the Tool +Chest.

  6. +
  7. This will bring up the specimen in the Debugger tool. (If you are +prompted to analyze, choose Yes.)

    +
    + + +
  8. +
  9. In the Debugger tool, click the dropdown ▾ for the debug debug button icon in the global tool +bar, and select “Debug termmines in GDB locally IN-VM.”

  10. +
  11. Wait a bit then verify the Dynamic Listing window (top) is +displaying disassembly code.

    +
    + + +
  12. +
+
+
+

Launching on Windows

+

On Windows, we will use dbgeng to debug the specimen. This is the +engine that backs WinDbg. You may choose an alternative Minesweeper, +since terminal applications are less representative of Windows +executables. Follow the same process as for Linux, except import +termmines.exe and select “Debug termmines.exe in dbgeng +locally IN-VM.”

+
+
+

Launching on macOS

+

Unfortunately, things are not so simple on macOS. See the +instructions for Building +LLDB-Java Bindings. Once built, follow the same process as for +Linux, except select “Debug termmines in LLDB locally IN-VM.”

+
+
+

Troubleshooting

+
+

I’m having trouble importing termmines

+

Check that termmines exists. You may need to build it +yourself using make. If it exists and you are still having +trouble, please refer to the Beginner course.

+
+
+

There is no Debugger icon in my Tool Chest

+

Double-check that you are looking at the main Ghidra Project window, +not a CodeBrowser. The tool chest is the box of big icons above the list +of imported programs. If it is not there, you can try importing it from +the default tools:

+
    +
  1. In the menus, select Tools → Import Default +Tools
  2. +
  3. Select “defaultTools/Debugger.tool”
  4. +
  5. Click Import
  6. +
+
+
+

There is no Debug / Launch icon in the global toolbar

+

Double-check that you are in the Debugger tool, not the CodeBrowser +tool. If it is still not there, then you may need to re-import the +default Debugger tool as under the previous heading. If it is still not +there, your installation may be corrupt.

+
+
+

There is no “Debug termmines in GDB locally IN-VM” option in the +launch drop-down

+

You may need to install GDB and/or configure Ghidra with its +location. If you have a copy or custom build of GDB in a non-system +path, note its full path. If you intend to use the system’s copy of GDB, +then in a terminal:

+
which gdb
+

Note the path given. (If you get an error, then you need to install +GDB.) In a terminal, type the full path of GDB to ensure it executes +properly. Type q to quit GDB.

+
    +
  1. From the Debugger Targets window, click the Connect connect button button.
  2. +
  3. In the Connect dialog, select “gdb” from the dropdown at the +top.
  4. +
  5. Enter the full path, e.g., /usr/bin/gdb, in the “GDB +launch command” field.
  6. +
  7. Click “Connect”
  8. +
  9. If you get an Interpreter window, then things have gone well.
  10. +
  11. Type echo test into it to verify it’s responsive, then +type q to disconnect.
  12. +
  13. Close the Debugger tool, then retry.
  14. +
+
+
+

The launch hangs for several seconds and then prompt for a +“recorder”

+

You probably have a stale GDB connection, so when you launched you +now have multiple connections. For the prompt, select the option with +the highest score. Examine the Targets window to confirm you have +multiple GDB connections. If you know which is the stale connection, you +can right-click it and choose Disconnect. Otherwise, +use Disconnect All from the drop-down menu and +re-launch.

+
+
+

The Dynamic Listing is empty

+

Check for an actual connection. You should see an entry in the +Debugger Targets window, a populated Object window, and there should be +an Interpreter window. If not, then your GDB connector may not be +configured properly. Try the steps under the previous heading.

+

If you have an Interpreter window, there are several +possibilities:

+
+

Ghidra or GDB failed to launch the target:

+

Check that the original termmines exists and is +executable. It must be at the path from where it was originally +imported. If you imported from a share, consider copying it locally, +setting its permissions, then re-importing.

+
+
+

The target was launched, but immediately terminated:

+

Check that the specimen has a main symbol. NOTE: It is +not sufficient to place a main label in Ghidra. The +original file must have a main symbol.

+

Alternatively, in the menus try Debugger → Debug termmines → +in GDB locally IN-VM, and select “Use starti.” This will break +at the system entry point. If you have labeled main in +Ghidra, then you can place a breakpoint there and continue — these +features are covered later in the course.

+

Alternatively, try debugging the target in GDB from a separate +terminal completely outside of Ghidra to see if things work as +expected.

+
+
+

The target was launched, but has not stopped, yet

+

Try pressing the Interrupt button. If that doesn’t work or is +unsatisfactory, try the remedies under the previous heading — for an +immediately terminating target.

+
+
+

You hit an uncommon bug where the memory map is not applied +properly

+

This is the case if the Dynamic Listing is completely blank but the +Regions window is replete. The Dynamic Listing just needs to be kicked a +little. The easiest way is to step once, using the step into Step Into button in the +main toolbar. If this is not desirable, then you can toggle +Force Full View back and forth. In the Regions window, +use the drop-down menu to toggle it on, then toggle it off. The Dynamic +Listing should now be populated. To go to the program counter, +double-click the “pc = …” label in the top right.

+
+
+

Something else has gone wrong

+

Try typing info inferiors and similar GDB diagnostic +commands into the Interpreter.

+
+
+
+

The listings are in sync, but the Dynamic Listing is grey 00s

+

Check the Auto-Read drop-down near the top right of the Dynamic +Listing. It should be set to Read Visible Memory, RO +Once.

+
+
+
+

Exercise: Launch termmines

+

If you were following along with an instructor, delete your import of +termmines and/or start a new Ghidra Project. Starting from +the beginning, import termmines and launch it in the Ghidra +Debugger with GDB. When your tool looks like the screenshot with a +populated Dynamic Listing, you have completed the exercise. Disconnect +before proceeding to the next exercise.

+
+
+

Customized Launching

+

For this specimen, you may occasionally need to provide custom +command-line parameters. By default, Ghidra attempts to launch the +target without any parameters. In the menus, use Debugger → +Debug termmmines → in GDB locally IN-VM to launch with +customizations. Ghidra will remember these customizations the next time +you launch using the drop-down button from the toolbar. The first dialog +allows you to customize the connection to the back-end debugger. Unless +you have a special copy of GDB, you should probably just click Connect. +The second dialog allows you to customize how the back-end debugger +launches the target. This is where you tweak the command line. You can +also change the actual image, in case it has moved or you want to +experiment with a patched version.

+
+
+

Exercise: Launch with Command-line Help

+

Launch the specimen so that it prints its usage. When successful, you +will see the usage info in the Debugger’s Interpreter window. +NOTE: The process will terminate after printing its +usage, and as a result, the rest of the UI will be mostly empty.

+
+
+

Attaching

+

Attaching is slightly more advanced, but because the target will need +to read from stdin, and Ghidra does not properly attach the Interpreter +to stdin, we will need to launch the target in a terminal and attach to +it instead. Note this technique is only possible because the target +waits for input. Depending on the task for future exercises, you may +still need to launch from the Debugger instead of attaching.

+
    +
  1. Run termmines in a proper terminal with the desired +command-line parameters.
  2. +
  3. In the Ghidra Debugger, find the Targets window, and click the connect Connect button.
  4. +
  5. Select “gdb” from the drop-down box.
  6. +
  7. This dialog should look familiar from the Customized Launching +section. Just click the Connect button.
  8. +
  9. In the Objects window (below the Targets window), expand the node +labeled “Available.”
  10. +
  11. In the filter box, type termmines.
  12. +
  13. Right-click on the termmines process and select Attach. If this +fails, select Available again, and click the +refresh Refresh +button.
  14. +
+
+
+

Exercise: Attach

+

Try attaching on your own, if you have not already. Check your work +by typing bt into the Interpreter. If you are in +read you have completed this exercise. Disconnect before +proceeding to the next module: A Tour of the +UI

+
+
+

Troubleshooting

+

If you get Operation not permitted or similar when +trying to attach, it is likely your Linux system is configured with +Yama’s ptrace_scope=1. We have provided a stub utility +called anyptracer. The utility permits its own process to +be traced by any other process and then executes a shell command. Using +exec as that shell command enables you to execute the +specimen in the permissive process, and thus you can attach to it as if +ptrace_scope=0, but without reducing the security of the +rest of the system. For example:

+
./anyptracer 'exec ./termmines'
+

Alternatively, if you have root access, you can rectify the issue +using the relevant documentation available online. +Beware! You should not modify this setting on your +daily driver, as this substantially reduces the security of your system. +Any compromised process would be allowed to attach to and steal data, +e.g., credentials, from any other process owned by the same user.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.md b/GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.md new file mode 100644 index 0000000000..cf9bc1bbfa --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A1-GettingStarted.md @@ -0,0 +1,245 @@ + +# Getting Started + +This course assumes you are already familiar with the basics of using Ghidra, including its static analysis features. +To some degree, static analysis is an integral part of debugging with Ghidra. + +## The specimen + +Throughout this course, we will examine the provided "Terminal Minesweeper" specimen, named `termmines`. +If the compiled artifact has not been provided for you, you may build it from source using the provided [Makefile](../ExerciseFiles/Debugger/Makefile), but you will need `ncurses.h` first: + +```bash +cd GhidraClass/ExerciseFiles/Debugger +make +``` + +The specimen is designed for Linux, but should be trivially portable to other Unix systems. +You will need `ncurses` and its development headers and libraries available on your system. +Though source code for the specimen is available, we strongly encourage you to work on the course exercises without referring to it. +Symbols and debug information are removed from the binary. +With some effort, `termmines` may even port to Windows; however, we have not tested this course on Windows. + +It is a good idea to get acquainted with the specimen. +In general, you should take precautions before running code you do not understand or trust. +For `termmines`, the risk is negligible. +Run it: + +```bash +./termmines +``` + +You should see a 9x9 grid and a cursor you can move with the arrow keys. +Hit **Ctrl-C** to exit. +Probe it for help. +Most Linux programs accept a `-h` argument for help: + +```bash +./termmines -h +``` + +You should now have all the information you need to understand how the game works. +If you have never played Minesweeper before, read up online, and perhaps try playing a couple of games. +Don't get distracted, though. + +## Launching on Linux + +On Linux, we will use GDB to debug the specimen. +There are many ways to do this, but for the sake of simplicity, import and launch as follows: + +1. Import `termmines` into a new Ghidra project. +1. If you have a CodeBrowser open, close it and return to the main Ghidra project window. +1. Drag `termmines` onto the Debugger ![debugger icon](images/debugger.png) in the Tool Chest. +1. This will bring up the specimen in the Debugger tool. + (If you are prompted to analyze, choose Yes.) + + ![Debugger tool with termmines open](images/GettingStarted_ToolWSpecimen.png) + +1. In the Debugger tool, click the dropdown ▾ for the debug ![debug button](images/debugger.png) icon in the global tool bar, and select "Debug termmines in GDB locally IN-VM." +1. Wait a bit then verify the Dynamic Listing window (top) is displaying disassembly code. + + ![Debugger tool after launching termmines](images/GettingStarted_DisassemblyAfterLaunch.png) + +## Launching on Windows + +On Windows, we will use dbgeng to debug the specimen. +This is the engine that backs WinDbg. +You may choose an alternative Minesweeper, since terminal applications are less representative of Windows executables. +Follow the same process as for Linux, except import `termmines.exe` and select "Debug termmines.exe in dbgeng locally IN-VM." + +## Launching on macOS + +Unfortunately, things are not so simple on macOS. +See the instructions for [Building LLDB-Java Bindings](../../../Ghidra/Debug/Debugger-swig-lldb/InstructionsForBuildingLLDBInterface.txt). +Once built, follow the same process as for Linux, except select "Debug termmines in LLDB locally IN-VM." + +## Troubleshooting + +### I'm having trouble importing `termmines` + +Check that `termmines` exists. +You may need to build it yourself using `make`. +If it exists and you are still having trouble, please refer to the Beginner course. + +### There is no Debugger icon in my Tool Chest + +Double-check that you are looking at the main Ghidra Project window, not a CodeBrowser. +The tool chest is the box of big icons above the list of imported programs. +If it is not there, you can try importing it from the default tools: + +1. In the menus, select **Tools → Import Default Tools** +1. Select "defaultTools/Debugger.tool" +1. Click Import + +### There is no Debug / Launch icon in the global toolbar + +Double-check that you are in the Debugger tool, not the CodeBrowser tool. +If it is still not there, then you may need to re-import the default Debugger tool as under the previous heading. +If it is still not there, your installation may be corrupt. + +### There is no "Debug termmines in GDB locally IN-VM" option in the launch drop-down + +You may need to install GDB and/or configure Ghidra with its location. +If you have a copy or custom build of GDB in a non-system path, note its full path. +If you intend to use the system's copy of GDB, then in a terminal: + +```bash +which gdb +``` + +Note the path given. +(If you get an error, then you need to install GDB.) +In a terminal, type the full path of GDB to ensure it executes properly. +Type `q` to quit GDB. + +1. From the Debugger Targets window, click the Connect ![connect button](images/connect.png) button. +1. In the Connect dialog, select "gdb" from the dropdown at the top. +1. Enter the full path, e.g., `/usr/bin/gdb`, in the "GDB launch command" field. +1. Click "Connect" +1. If you get an Interpreter window, then things have gone well. +1. Type `echo test` into it to verify it's responsive, then type `q` to disconnect. +1. Close the Debugger tool, then retry. + +### The launch hangs for several seconds and then prompt for a "recorder" + +You probably have a stale GDB connection, so when you launched you now have multiple connections. +For the prompt, select the option with the highest score. +Examine the Targets window to confirm you have multiple GDB connections. +If you know which is the stale connection, you can right-click it and choose **Disconnect**. +Otherwise, use **Disconnect All** from the drop-down menu and re-launch. + +### The Dynamic Listing is empty + +Check for an actual connection. +You should see an entry in the Debugger Targets window, a populated Object window, and there should be an Interpreter window. +If not, then your GDB connector may not be configured properly. +Try the steps under the previous heading. + +If you have an Interpreter window, there are several possibilities: + +#### Ghidra or GDB failed to launch the target: + +Check that the original `termmines` exists and is executable. +It must be at the path from where it was originally imported. +If you imported from a share, consider copying it locally, setting its permissions, then re-importing. + +#### The target was launched, but immediately terminated: + +Check that the specimen has a `main` symbol. +NOTE: It is not sufficient to place a `main` label in Ghidra. +The original file must have a `main` symbol. + +Alternatively, in the menus try **Debugger → Debug termmines → in GDB locally IN-VM**, and select "Use starti." +This will break at the system entry point. +If you have labeled `main` in Ghidra, then you can place a breakpoint there and continue — these features are covered later in the course. + +Alternatively, try debugging the target in GDB from a separate terminal completely outside of Ghidra to see if things work as expected. + +#### The target was launched, but has not stopped, yet + +Try pressing the Interrupt ![interrupt button](images/interrupt.png) button. +If that doesn't work or is unsatisfactory, try the remedies under the previous heading — for an immediately terminating target. + +#### You hit an uncommon bug where the memory map is not applied properly + +This is the case if the Dynamic Listing is completely blank but the Regions window is replete. +The Dynamic Listing just needs to be kicked a little. +The easiest way is to step once, using the ![step into](images/stepinto.png) Step Into button in the main toolbar. +If this is not desirable, then you can toggle **Force Full View** back and forth. +In the Regions window, use the drop-down menu to toggle it on, then toggle it off. +The Dynamic Listing should now be populated. +To go to the program counter, double-click the "pc = ..." label in the top right. + +#### Something else has gone wrong + +Try typing `info inferiors` and similar GDB diagnostic commands into the Interpreter. + +### The listings are in sync, but the Dynamic Listing is grey 00s + +Check the Auto-Read drop-down near the top right of the Dynamic Listing. +It should be set to **Read Visible Memory, RO Once**. + +## Exercise: Launch `termmines` + +If you were following along with an instructor, delete your import of `termmines` and/or start a new Ghidra Project. +Starting from the beginning, import `termmines` and launch it in the Ghidra Debugger with GDB. +When your tool looks like the screenshot with a populated Dynamic Listing, you have completed the exercise. +Disconnect before proceeding to the next exercise. + +## Customized Launching + +For this specimen, you may occasionally need to provide custom command-line parameters. +By default, Ghidra attempts to launch the target without any parameters. +In the menus, use **Debugger → Debug termmmines → in GDB locally IN-VM** to launch with customizations. +Ghidra will remember these customizations the next time you launch using the drop-down button from the toolbar. +The first dialog allows you to customize the connection to the back-end debugger. +Unless you have a special copy of GDB, you should probably just click Connect. +The second dialog allows you to customize how the back-end debugger launches the target. +This is where you tweak the command line. +You can also change the actual image, in case it has moved or you want to experiment with a patched version. + +## Exercise: Launch with Command-line Help + +Launch the specimen so that it prints its usage. +When successful, you will see the usage info in the Debugger's Interpreter window. +**NOTE**: The process will terminate after printing its usage, and as a result, the rest of the UI will be mostly empty. + +## Attaching + +Attaching is slightly more advanced, but because the target will need to read from stdin, and Ghidra does not properly attach the Interpreter to stdin, we will need to launch the target in a terminal and attach to it instead. +Note this technique is only possible because the target waits for input. +Depending on the task for future exercises, you may still need to launch from the Debugger instead of attaching. + +1. Run `termmines` in a proper terminal with the desired command-line parameters. +1. In the Ghidra Debugger, find the Targets window, and click the ![connect](images/connect.png) Connect button. +1. Select "gdb" from the drop-down box. +1. This dialog should look familiar from the Customized Launching section. + Just click the Connect button. +1. In the Objects window (below the Targets window), expand the node labeled "Available." +1. In the filter box, type `termmines`. +1. Right-click on the termmines process and select Attach. + If this fails, select Available again, and click the refresh Refresh button. + + +## Exercise: Attach + +Try attaching on your own, if you have not already. +Check your work by typing `bt` into the Interpreter. +If you are in `read` you have completed this exercise. +Disconnect before proceeding to the next module: [A Tour of the UI](A2-UITour.md) + +## Troubleshooting + +If you get `Operation not permitted` or similar when trying to attach, it is likely your Linux system is configured with Yama's `ptrace_scope=1`. +We have provided a stub utility called `anyptracer`. +The utility permits its own process to be traced by any other process and then executes a shell command. +Using `exec` as that shell command enables you to execute the specimen in the permissive process, and thus you can attach to it as if `ptrace_scope=0`, but without reducing the security of the rest of the system. +For example: + +```bash +./anyptracer 'exec ./termmines' +``` + +Alternatively, if you have root access, you can rectify the issue using the relevant documentation available online. +**Beware!** You should not modify this setting on your daily driver, as this substantially reduces the security of your system. +Any compromised process would be allowed to attach to and steal data, e.g., credentials, from any other process owned by the same user. diff --git a/GhidraDocs/GhidraClass/Debugger/A2-UITour.html b/GhidraDocs/GhidraClass/Debugger/A2-UITour.html new file mode 100644 index 0000000000..fe67e44143 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A2-UITour.html @@ -0,0 +1,325 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

A Tour of the Debugger

+

This module assumes you have completed the Getting Started module. If not, please +go back.

+

This module will briefly introduce each window in the Ghidra +Debugger. We assume some familiarity with trap-and-trace debugging. If +you have not used GDB or a similar debugger before, you may find the +Ghidra Debugger difficult to grasp.

+

If you would like your tool to look more or less like the one +presented in the screenshots here, launch termmines from +the Debugger using GDB.

+
+

The Debugger Tool

+

Like the CodeBrowser tool, the Debugger tool is a preconfigured +collection of plugins and panels that present Ghidra’s dynamic analysis +features. You may re-configure, save, export, import, etc. the tool to +fit your preferences. For reference, here is a screenshot of the default +configuration after launching termmines:

+
+ + +
+
+

Toolbar

+

Many of the buttons in the global toolbar are the same as in the +CodeBrowser. Coincidentally, in the screenshot, the debugger-specific +buttons start just above the Dynamic Listing in the global toolbar. They +are:

+
    +
  • emulate button +Emulate: To be covered in a later module. This will +load the current program (from the Static Listing) into the +emulator.
  • +
  • debug button +Debug: This launches the current program (from the +Static Listing) using a suitable back-end debugger. The drop-down menu +provides a selection of suitable back-end connectors. Clicking the +button will use the last successful connector or the default.
  • +
  • mode button Control +Mode: This drop-down menu sets the mode of the controls and +machine state edits. By default, all actions are directed to the +back-end debugger.
  • +
  • resume button +Resume: Resume execution. This is equivalent to +continue in GDB.
  • +
  • interrupt button +Interrupt: Interrupt, suspend, pause, break, etc. This +is equivalent to Ctrl-C or interrupt in +GDB.
  • +
  • kill button +Kill: Kill, terminate, etc. This is equivalent to +kill in GDB.
  • +
  • disconnect button +Disconnect: Disconnect from the back-end debugger. +Typically, this will also end the session. It is equivalent to +quit in GDB.
  • +
  • step into button +Step Into, Step Over, step out button Step +Out, step last button +Step Last: These buttons step in various ways. In +order, the equivalent commands in GDB are stepi, +nexti, and finish. Step Last has no equivalent +in GDB; it is meant to repeat the last custom/extended step.
  • +
+
+
+

Windows

+

Starting at the top left and working clockwise, the windows are:

+
    +
  • The Debugger Targets window: This lists active +sessions or connections. From here, you can establish new sessions or +terminate existing sessions.
  • +
  • The Dynamic Listing window: This is the primary +means of examining the instructions being executed. By default, it +follows the program counter and disassembles from there until the next +control transfer instruction. It supports many of the same operations as +the Static Listing, including patching. The nearest equivalent in GDB is +something like x/10i $pc.
  • +
  • The Interpreter window: This is essentially a +terminal emulator providing a command-line interface to the back-end +debugger. It is useful for diagnostics or for issuing commands that do +not have a button in the GUI. Some may also prefer to command the +debugger from here rather than the GUI.
  • +
  • The Breakpoints window: This is stacked below the +Interpreter. It lists and manages the breakpoints among all open images +and running targets. The nearest equivalent in GDB is +info break.
  • +
  • The Registers window: This is stacked below the +Breakpoints window. It displays and edits the register values for the +current thread. The nearest equivalent in GDB is +info registers
  • +
  • The Modules window: This is stacked below the +Registers window. It displays the images (and sections, if applicable) +loaded by the target. The equivalent in GDB is +maintenance info sections. Note that this differs from the +Regions window.
  • +
  • The Threads window: This lists the threads in the +current target. The tabs at the top list the active targets. The nearest +equivalents in GDB are info threads and +info inferiors.
  • +
  • The Time window: This is stacked below the Threads +window. This lists the events and snapshots taken of the current +target.
  • +
  • The Stack window: This lists the stack frames for +the current thread. The equivalent in GDB is +backtrace.
  • +
  • The Watches window: This is stacked below the Stack +window — pun not intended. It manages current watches. These are +not watchpoints, but rather expressions or variables whose +values to display. To manage watchpoints, use the Breakpoints window or +the Interpreter. The nearest equivalent in GDB is +display.
  • +
  • The Regions window: This is stacked below the +Watches window. It lists memory regions for the current target. It +differs from the Modules window, since this includes not only +image-backed regions but other memory regions, e.g., stacks and heaps. +The equivalent in GDB is info proc mappings.
  • +
  • The Debug Console window: (Not to be confused with +the Console window from the CodeBrowser.) This displays logging messages +and problems encountered during a session. Some problems are presented +with remedial actions, which may expedite your workflow or aid in +troubleshooting.
  • +
  • The Objects window: This models the back-end +debugger as a tree of objects and provides generic actions on those +objects. It is generally more capable, though less integrated, than the +GUI, but not quite as capable as the Interpreter. It is useful for +troubleshooting and for advanced use cases.
  • +
+
+
+
+

Controlling the Target

+

The control buttons are all located on the global toolbar. Start by +pressing the step into Step Into +button. Notice that the Dynamic Listing moves forward a single +instruction each time you press it. Also notice that the Static Listing +moves with the Dynamic Listing. You may navigate in either listing, and +so long as there is a corresponding location in the other, the two will +stay synchronized. You may also open the Decompiler just as you would in +the CodeBrowser, and it will stay in sync, too.

+

When you have clicked Step Into a sufficient number of times, you should +end up in a subroutine. You can click Step Out to leave the subroutine. Note that the target +is allowed to execute until it returns from the subroutine; it does not +skip out of it. Now, click Step Over until you reach another CALL +instruction. Notice that when you click Step Over again, it will not descend into the +subroutine. Instead, the target is allowed to execute the entire +subroutine before stopping again — after the CALL +instruction.

+

If you prefer, you may use the GDB commands from the Interpreter +instead of the buttons. Try si and/or ni. You +can also pass arguments which is not possible with the buttons, +e.g. si 10 to step 10 instructions in one command.

+

If you need to terminate the target you should use the disconnect Disconnect button rather +than the Kill button, in general. Otherwise, each launch will create a +new connection, and you will end up with several stale connections. +Additionally, if your target exits or otherwise terminates on its own, +you will get a stale connection. Use the Targets window to clean such +connections up. The re-use of connections and/or the use of multiple +concurrent connections is not covered in this course.

+
+
+

Troubleshooting

+
+

The listings are not in sync, i.e., they do not move together.

+

First, check that synchronization is enabled. This is the default +behavior, but, still, check it first. In the top-right of the Dynamic +Listing is its local drop-down menu. Click it and check that +Auto-Sync Cursor with Static Listing is selected.

+

If that does not work, check the top-left label of the Dynamic +Listing to see what module you are in. Also check the Debug Console +window. If you are in a system library, e.g., ld-linux, +then this is the expected behavior. You may optionally import it, as +suggested by the Debug Console, but this is covered later.

+

If you are not in a system library, then check the Modules window to +see if termmines is listed. If so, it seems the module +mapper failed to realize that module is the current program. Right-click +the module and select “Map to termmines.” Confirm the dialog. If +termmines is not listed, then your version of GDB may not +be supported. If you file a bug report, please include your GDB version, +Linux distribution, and/or other platform details.

+
+
+

The listings seem to move together, but their contents differ.

+

There is probably a discrepancy between the version you imported and +the version you launched. This should not happen with +termmines, but perhaps you re-ran make between +importing and launching? For other system libraries, this could happen +if you or an administrator applied system updates since you imported. +You probably need to re-import the affected module image(s). If this +happens to you in practice, and you have substantial investment in the +old import, consider using the Version Tracker to port your knowledge to +the new import.

+
+
+

There is no step button.

+

This can happen if the Control Mode is set to the Trace. Perhaps you +played with the Time window? Change the Control Mode back to “Control +Target.”

+
+
+

I can step, but I don’t see the effects in the Interpreter +window.

+

This can happen if the Control Mode is set to the Emulator. Change +the Control Mode back to “Control Target.”

+
+
+

The Step buttons are grayed out.

+

The target has likely terminated, or you have not selected a thread. +Check the Threads window. If it is empty, re-launch, and perhaps look at +the Troubleshooting section in Getting +Started

+
+
+
+

Exercise: Step Around

+

If you were not already following along with an instructor, then try +some of the stepping buttons. One of the first subroutines called in +termmines parses command-line arguments. Try stepping until +you have entered that subroutine. TIP: Use the +Decompiler to help you recognize when you have entered the command-line +parsing subroutine. Alternatively, use the Static Listing and Decompiler +to identify the parsing subroutine (as you would in the CodeBrowser), +and then use the Step buttons to drive the target into it.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/A2-UITour.md b/GhidraDocs/GhidraClass/Debugger/A2-UITour.md new file mode 100644 index 0000000000..576d6916a4 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A2-UITour.md @@ -0,0 +1,193 @@ + +# A Tour of the Debugger + +This module assumes you have completed the [Getting Started](A1-GettingStarted.md) module. +If not, please go back. + +This module will briefly introduce each window in the Ghidra Debugger. +We assume some familiarity with trap-and-trace debugging. +If you have not used GDB or a similar debugger before, you may find the Ghidra Debugger difficult to grasp. + +If you would like your tool to look more or less like the one presented in the screenshots here, +launch `termmines` from the Debugger using GDB. + +## The Debugger Tool + +Like the CodeBrowser tool, the Debugger tool is a preconfigured collection of plugins and panels that present Ghidra's dynamic analysis features. +You may re-configure, save, export, import, etc. the tool to fit your preferences. +For reference, here is a screenshot of the default configuration after launching `termmines`: + +![Debugger tool after launching termmines](images/GettingStarted_DisassemblyAfterLaunch.png) + +### Toolbar + +Many of the buttons in the global toolbar are the same as in the CodeBrowser. +Coincidentally, in the screenshot, the debugger-specific buttons start just above the Dynamic Listing in the global toolbar. +They are: + +* ![emulate button](images/process.png) **Emulate**: + To be covered in a later module. + This will load the current program (from the Static Listing) into the emulator. +* ![debug button](images/debugger.png) **Debug**: + This launches the current program (from the Static Listing) using a suitable back-end debugger. + The drop-down menu provides a selection of suitable back-end connectors. + Clicking the button will use the last successful connector or the default. +* ![mode button](images/record.png) **Control Mode**: + This drop-down menu sets the mode of the controls and machine state edits. + By default, all actions are directed to the back-end debugger. +* ![resume button](images/resume.png) **Resume**: + Resume execution. + This is equivalent to `continue` in GDB. +* ![interrupt button](images/interrupt.png) **Interrupt**: + Interrupt, suspend, pause, break, etc. + This is equivalent to **Ctrl-C** or `interrupt` in GDB. +* ![kill button](images/kill.png) **Kill**: + Kill, terminate, etc. + This is equivalent to `kill` in GDB. +* ![disconnect button](images/disconnect.png) **Disconnect**: + Disconnect from the back-end debugger. + Typically, this will also end the session. + It is equivalent to `quit` in GDB. +* ![step into button](images/stepinto.png) **Step Into**, ![step over button](images/stepover.png) **Step Over**, ![step out button](images/stepout.png) **Step Out**, ![step last button](images/steplast.png) **Step Last**: + These buttons step in various ways. + In order, the equivalent commands in GDB are `stepi`, `nexti`, and `finish`. + Step Last has no equivalent in GDB; it is meant to repeat the last custom/extended step. + +### Windows + +Starting at the top left and working clockwise, the windows are: + +* The **Debugger Targets** window: + This lists active sessions or connections. + From here, you can establish new sessions or terminate existing sessions. +* The **Dynamic Listing** window: + This is the primary means of examining the instructions being executed. + By default, it follows the program counter and disassembles from there until the next control transfer instruction. + It supports many of the same operations as the Static Listing, including patching. + The nearest equivalent in GDB is something like `x/10i $pc`. +* The **Interpreter** window: + This is essentially a terminal emulator providing a command-line interface to the back-end debugger. + It is useful for diagnostics or for issuing commands that do not have a button in the GUI. + Some may also prefer to command the debugger from here rather than the GUI. +* The **Breakpoints** window: + This is stacked below the Interpreter. + It lists and manages the breakpoints among all open images and running targets. + The nearest equivalent in GDB is `info break`. +* The **Registers** window: + This is stacked below the Breakpoints window. + It displays and edits the register values for the current thread. + The nearest equivalent in GDB is `info registers` +* The **Modules** window: + This is stacked below the Registers window. + It displays the images (and sections, if applicable) loaded by the target. + The equivalent in GDB is `maintenance info sections`. + Note that this differs from the Regions window. +* The **Threads** window: + This lists the threads in the current target. + The tabs at the top list the active targets. + The nearest equivalents in GDB are `info threads` and `info inferiors`. +* The **Time** window: + This is stacked below the Threads window. + This lists the events and snapshots taken of the current target. +* The **Stack** window: + This lists the stack frames for the current thread. + The equivalent in GDB is `backtrace`. +* The **Watches** window: + This is stacked below the Stack window — pun not intended. + It manages current watches. + These are *not* watchpoints, but rather expressions or variables whose values to display. + To manage watchpoints, use the Breakpoints window or the Interpreter. + The nearest equivalent in GDB is `display`. +* The **Regions** window: + This is stacked below the Watches window. + It lists memory regions for the current target. + It differs from the Modules window, since this includes not only image-backed regions but other memory regions, e.g., stacks and heaps. + The equivalent in GDB is `info proc mappings`. +* The **Debug Console** window: + (Not to be confused with the Console window from the CodeBrowser.) + This displays logging messages and problems encountered during a session. + Some problems are presented with remedial actions, which may expedite your workflow or aid in troubleshooting. +* The **Objects** window: + This models the back-end debugger as a tree of objects and provides generic actions on those objects. + It is generally more capable, though less integrated, than the GUI, but not quite as capable as the Interpreter. + It is useful for troubleshooting and for advanced use cases. + +## Controlling the Target + +The control buttons are all located on the global toolbar. +Start by pressing the ![step into](images/stepinto.png) Step Into button. +Notice that the Dynamic Listing moves forward a single instruction each time you press it. +Also notice that the Static Listing moves with the Dynamic Listing. +You may navigate in either listing, and so long as there is a corresponding location in the other, the two will stay synchronized. +You may also open the Decompiler just as you would in the CodeBrowser, and it will stay in sync, too. + +When you have clicked ![step into](images/stepinto.png) Step Into a sufficient number of times, you should end up in a subroutine. +You can click ![step out](images/stepout.png) Step Out to leave the subroutine. +Note that the target is allowed to execute until it returns from the subroutine; it does not skip out of it. +Now, click ![step over](images/stepover.png) Step Over until you reach another `CALL` instruction. +Notice that when you click ![step over](images/stepover.png) Step Over again, it will not descend into the subroutine. +Instead, the target is allowed to execute the entire subroutine before stopping again — after the `CALL` instruction. + +If you prefer, you may use the GDB commands from the Interpreter instead of the buttons. +Try `si` and/or `ni`. +You can also pass arguments which is not possible with the buttons, e.g. `si 10` to step 10 instructions in one command. + +If you need to terminate the target you should use the ![disconnect](images/disconnect.png) Disconnect button rather than the Kill button, in general. +Otherwise, each launch will create a new connection, and you will end up with several stale connections. +Additionally, if your target exits or otherwise terminates on its own, you will get a stale connection. +Use the Targets window to clean such connections up. +The re-use of connections and/or the use of multiple concurrent connections is *not* covered in this course. + +## Troubleshooting + +### The listings are not in sync, i.e., they do not move together. + +First, check that synchronization is enabled. +This is the default behavior, but, still, check it first. +In the top-right of the Dynamic Listing is its local drop-down menu. +Click it and check that **Auto-Sync Cursor with Static Listing** is selected. + +If that does not work, check the top-left label of the Dynamic Listing to see what module you are in. +Also check the Debug Console window. +If you are in a system library, e.g., `ld-linux`, then this is the expected behavior. +You may optionally import it, as suggested by the Debug Console, but this is covered later. + +If you are not in a system library, then check the Modules window to see if `termmines` is listed. +If so, it seems the module mapper failed to realize that module is the current program. +Right-click the module and select "Map to termmines." +Confirm the dialog. +If `termmines` is not listed, then your version of GDB may not be supported. +If you file a bug report, please include your GDB version, Linux distribution, and/or other platform details. + +### The listings seem to move together, but their contents differ. + +There is probably a discrepancy between the version you imported and the version you launched. +This should not happen with `termmines`, but perhaps you re-ran `make` between importing and launching? +For other system libraries, this could happen if you or an administrator applied system updates since you imported. +You probably need to re-import the affected module image(s). +If this happens to you in practice, and you have substantial investment in the old import, consider using the Version Tracker to port your knowledge to the new import. + +### There is no step button. + +This can happen if the Control Mode is set to the Trace. +Perhaps you played with the Time window? +Change the Control Mode back to "Control Target." + +### I can step, but I don't see the effects in the Interpreter window. + +This can happen if the Control Mode is set to the Emulator. +Change the Control Mode back to "Control Target." + +### The Step buttons are grayed out. + +The target has likely terminated, or you have not selected a thread. +Check the Threads window. +If it is empty, re-launch, and perhaps look at the Troubleshooting section in [Getting Started](A1-GettingStarted.md) + +## Exercise: Step Around + +If you were not already following along with an instructor, then try some of the stepping buttons. +One of the first subroutines called in `termmines` parses command-line arguments. +Try stepping until you have entered that subroutine. +**TIP**: Use the Decompiler to help you recognize when you have entered the command-line parsing subroutine. +Alternatively, use the Static Listing and Decompiler to identify the parsing subroutine (as you would in the CodeBrowser), and then use the Step buttons to drive the target into it. diff --git a/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html b/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html new file mode 100644 index 0000000000..5488fc8f06 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html @@ -0,0 +1,490 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

Using Breakpoints

+

This module assumes you know how to launch termmines in +Ghidra using GDB and know where to find the basic Debugger GUI +components. If not, please refer to the previous modules.

+

This module will address the Breakpoints window in more depth. While +the breakpoint manager is able to deal with a system of targets, we will +only deal with a single target at a time.

+
+

Breakpoints

+

Most likely, this window is empty if you have been following the +lesson.

+
+ + +
+

From here, you can toggle and delete existing breakpoints. There are +several ways to set a new breakpoint:

+
    +
  1. From any static or dynamic listing window, including Disassembly, +Memory/Hex, and the Decompiler, right-click and select set breakpoint Set +Breakpoint, press K on the keyboard, or double-click +the margin.
  2. +
  3. From the Objects window click the add breakpoint Add +Breakpoint button or press F3 on the keyboard.
  4. +
  5. From the Interpreter window, use the GDB command, e.g., +break main.
  6. +
+

The advantage of using the listings is that you can quickly set a +breakpoint at any address. The advantage of using the Objects or +Interpreter window is that you can specify something other than an +address. Often, those specifications still resolve to addresses, and +Ghidra will display them. Ghidra will memorize breakpoints by recording +them as special bookmarks in the imported program. There is some +iconography to communicate the various states of a breakpoint. When all +is well and normal, you should only see enabled enabled breakpoint and +disabled breakpoints. If the target is terminated +(or not launched yet), you may also see ineffective ineffective breakpoint +breakpoints.

+
+
+

Examining Minesweeper Board Setup

+

Suppose we want to cheat at termmines. We might like to +understand how the mines are placed. Knowing that the mines are placed +randomly, we might hypothesize that it is using the srand +and rand functions from the C standard library. While we +can test that hypothesis by examining the imports statically, we might +also like to record some actual values, so we will approach this +dynamically. (This is the Debugger course, after all.) The breakpoint on +srand will allow us to capture the random seed. The +breakpoint on rand will help us find the algorithm that +places the mines.

+
+

Set the Breakpoints

+

In the Interpreter, type the GDB commands to set breakpoints on +srand and rand:

+
break srand
+break rand
+

The breakpoint window should now be updated:

+
+ + +
+

For a single target, the lower panel of the Breakpoints window does +not add much information, but it does have some. We will start with the +top panel. This lists the “logical” breakpoints, preferring static +addresses.

+
    +
  • The left-most column Enabled indicates the +breakpoint’s state. Here, we see the inconsistent inconsistent +overlay, because Ghidra cannot save the breakpoint without a module +image. That is because srand and rand are in a +different module, and we have not yet imported it into Ghidra.
  • +
  • The next column Name is the name of the breakpoint. +This is for informational purposes only. You can rename a breakpoint +however you like, and it will have no effect on the target nor back-end +debugger.
  • +
  • The next column Address gives the address of the +breakpoint. Notice that the addresses were resolved, even though the +breakpoints were specified by symbol. Typically, this is the +static address of the breakpoint; however, if the module image +is not imported, yet, this will be the dynamic address, subject +to relocation or ASLR.
  • +
  • The next column Image gives the name of the +imported image containing the breakpoint. Again, because the module has +not been imported yet, this column is blank.
  • +
  • The next column Length gives the length of the +breakpoint. In GDB, this generally applies to watchpoints only.
  • +
  • The next column Kinds gives the kinds of +breakpoint. Most breakpoints are software execution breakpoints, +indicated by “SW_EXECUTE.” That is, they are implemented by patching the +target’s memory with a special instruction (INT3 on x86) +that traps execution. There are also hardware execution breakpoints +indicated by “HW_EXECUTE,” and access breakpoints indicated by “HW_READ” +and/or “HW_WRITE”. NOTE: GDB would call these +“watchpoints.” An advantage to software breakpoints is that you can have +a practically unlimited number of them. Some disadvantages are they can +be detected easily, and they are limited to execution breakpoints.
  • +
  • The next column Locations counts the number of +locations for the breakpoint. For a single-target session, this should +always be 1.
  • +
  • The final column Sleigh is only applicable to the +emulator. It indicates that the breakpoint’s behavior has been +customized with Sleigh code. This is covered in Emulation.
  • +
+

Now, we move to the bottom panel. This lists the breakpoint +locations, as reported by the back-end debugger(s). The Enabled, +Address, and Sleigh columns are the same as the top, but for the +individual dynamic addresses.

+
    +
  • The Name column is the name as designated by the +back-end.
  • +
  • The Trace column indicates which target contains +the location. The text here should match one of the tabs from the +Threads panel.
  • +
  • The Comment column is a user-defined comment. Its +default value is the specification that generated it, e.g., +srand.
  • +
  • The Threads column indicates if the breakpoint is +scoped to a limited set of threads. Its use is atypical.
  • +
+
+
+

Toggling the Breakpoints

+

While there is no need to toggle the breakpoints right now, it is a +good time to demonstrate the feature. There are several ways to toggle a +breakpoint:

+
    +
  1. In any listing, as in setting a breakpoint, right-click and select a +toggle action, press K on the keyboard, or double-click +its icon in the margin.
  2. +
  3. From the Objects window, expand the Breakpoints node, right-click a +breakpoint and select Toggle or press T on the +keyboard.
  4. +
  5. From the Breakpoints window, single-click the breakpoint’s status +icon, right-click an entry and select a toggle action, or create a +selection and use a toggling action from the local toolbar. Either panel +works, but the top panel is preferred to keep the breakpoints +consistent. The local toolbar also has actions for toggling all +breakpoints in the session.
  6. +
  7. From the Interpreter window, use the GDB commands, e.g., +disable 2.
  8. +
+

Practice toggling them. Notice that no matter how you toggle the +breakpoints, the display updates. You might also type +info break into the Interpreter to confirm the effect of +toggling breakpoints in the GUI. When you are finished, ensure both +breakpoints are enabled.

+
+
+

Importing libc

+

While the Debugger can operate without importing external modules, it +generally works better when you have. The symbols srand and +rand are in libc. If you would like to save +the breakpoints we placed on them, you must import the module. You could +do this in the usual manner, but the Debugger offers a convenient way to +import missing modules.

+
    +
  1. Navigate to a dynamic address that would be mapped to the missing +module. For our scenario, the easiest way to do that is to double-click +an address in the Breakpoints window. Either one points somewhere in +libc.

  2. +
  3. Check the Debug Console window for a note about the missing +module:

    +
    + + +
  4. +
  5. Click the import button — leftmost of the remedial actions. It +will display a file browser pointed at the library file.

  6. +
  7. Proceed with the import and initial analysis as you would in the +CodeBrowser.

  8. +
+

Once imported, the Breakpoints window should update to reflect the +static addresses, the breakpoints should become consistent, and the +Static Listing should now be synchronized when navigating within +libc.

+
+ + +
+
+
+

Capturing the Random Seed

+

We can now allow termmines to execute, expecting it to +hit the srand breakpoint first. Click resume Resume. If all goes well, the +target should break at srand. If you have never written +code that uses srand before, you should briefly read its +manual page. It takes a single parameter, the desired seed. That +parameter contains the seed this very moment! We can then examine the +value of the seed by hovering over param_1 in the +decompiler.

+
+ + +
+

We will cover other ways to examine memory and registers in the Machine State module. We have contrived +termmines so that its random seed will always start with +0x5eed____. If you see that in the value displayed, then +you have successfully recovered the seed. This seed will be used in an +optional exercise at the end of this module. You might write it down; +however, if you re-launch termmines between now and then, +you will have a different seed.

+
+
+

Locating the Mine Placement Algorithm

+

Press resume Resume again. This +time, the target should break at rand. We are not +interested in the rand function itself, but rather how the +placement algorithm is using it. Press Step Out to allow the target to return from +rand. If you still have the Decompiler up, you should be in +a code block resembling:

+
while (iVar2 = DAT_00604164, iVar1 = DAT_00604160, iVar10 < _DAT_00604168) {
+  iVar3 = rand();
+  iVar2 = DAT_00604164;
+  iVar11 = rand();
+  lVar7 = (long)(iVar11 % iVar2 + 1) * 0x20 + (long)(iVar3 % iVar1 + 1);
+  bVar14 = *(byte *)((long)&DAT_00604160 + lVar7 + 0x1c);
+  if (-1 < (char)bVar14) {
+    iVar10 = iVar10 + 1;
+    *(byte *)((long)&DAT_00604160 + lVar7 + 0x1c) = bVar14 | 0x80;
+  }
+}
+

If you are thinking, “I could have just found rand in +the symbol table and followed its XRefs,” you are correct. However, it +is useful to use a dynamic debugging session to drive your analysis +chronologically through execution of the target, even if much of that +analysis is still static. The advantages of a dynamic session along side +static analysis should become more apparent as you progress through this +course.

+
+
+

Exercise: Diagram the Mines

+

You goal is to capture the location of all the mines. So that you can +check your work later, you should run termmines in a +terminal and attach to it from Ghidra. You will probably want to disable +the breakpoints on rand and srand for now. +Devise a strategy using breakpoints and the control buttons (Step, +Resume, etc.) so that you can observe the location of each mine. Use pen +and paper to draw a diagram of the board, and mark the location of each +mine as you observe the algorithm placing it. There should only be 10 +mines in Beginner mode. Once the mines are placed, press resume Resume. Check you work by +winning the game. Alternatively, you can intentionally lose to have the +game reveal the mines.

+
+
+

Optional Exercise: Replicate the Boards (Forward Engineering)

+

You will need a C development environment for this exercise. Because, +as we have now confirmed, termmines is importing its random +number generator from the system, we can write a program that uses that +same generator. Further, because we can capture the seed, and we know +the placement algorithm, we can perfectly replicate the sequence of game +boards for any termmines session.

+

Write a program that takes a seed from the user and prints a diagram +of the first game board with the mines indicated. Optionally, have it +print each subsequent game board when the user presses ENTER. Check your +work by re-launching termmines (see note about attaching +below), capturing its seed, inputting it into your program, and then +winning the game. Optionally, win 2 more games in the same session.

+

NOTE: We will need a more advanced attaching +technique to check your work, because you will need both to break on +srand (which happens early in the process’ execution, +ruling out our usual attach technique) and to interact with it in the +terminal (which rules out launching in Ghidra). There are a few ways +around this, including using gdbserver or using +set inferior-tty. If you are already familiar with those, +you can try one. The technique we recommend here is using a stub that +will suspend itself and then execute termmines. We can then +run the stub in a terminal outside of Ghidra, attach to that stub, and +then allow it to proceed into termmines. In this way, we +can attach to the process in the terminal before it reaches +srand. The stub is fairly easy to write in Bash and should +be similar in other shells.

+
    +
  1. In a terminal running Bash (see note if you’re using +anyptracer):

    +
    (echo $BASHPID; kill -SIGSTOP $BASHPID; exec ./termmines)
    +

    The parentheses will start bash in a new subprocess. The +first two commands cause it to print its own process ID and then suspend +itself. Your terminal should display the PID and report the stopped +process.

    +

    NOTE: If you need to use the anyptracer +stub, then the invocation is more complicated:

    +
    ./anyptracer 'exec bash -c "echo $BASHPID; kill -SIGSTOP $BASHPID; exec ./termmines"'
    +

    In principle, it works the same except wrapped in the +anyptracer stub. The parentheses are no longer needed, nor +allowed, since anyptracer is already a subprocess of your +shell. If you include parentheses, you will get a second sub-subprocess +to which you cannot attach.

  2. +
  3. In Ghidra, follow the usual steps to attach, but use the PID +printed in your terminal. NOTE: The process is still +technically running bash when you attach to it.

  4. +
  5. In the Interpreter panel:

    +
    break main
    +

    NOTE: At this point main technically +refers to the symbol in bash, but GDB will adjust its +location once the target loads termmines.

  6. +
  7. Back in your terminal running Bash:

    +
    fg
    +

    This will cause Bash to return the stub to the foreground of the +terminal. Without this step, the system will repeatedly suspend the +process whenever it attempts any I/O on that terminal.

  8. +
  9. In Ghidra, press Resume (or use continue in the +Interpreter) until you hit the breakpoint at main. This +permits the stub to complete its third command +exec ./termmines. The exec command is +different than normal command execution. Instead of creating a +subprocess, it replaces the image of the stub process, so the +process is now running termmines.

  10. +
  11. Refresh the Modules node in the Objects window. You may need to +clear your filter text. Expand the Modules node and verify it lists +termmines instead of bash. Without this step, +your listings may go out of sync.

  12. +
+

At this point, you are attached to your target running in the +terminal, and you have trapped it at main. Because you were +attached to it when it was still bash, you will likely see +a lot of extraneous history. For example, the Modules panel will report +many of the modules that had been loaded by bash. Please +note their lifespans, however. They should correctly indicate those +modules are no longer loaded. In any case, you now have the tools needed +to check your work for this exercise.

+
+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.md b/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.md new file mode 100644 index 0000000000..e2ffdda53a --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.md @@ -0,0 +1,251 @@ + +# Using Breakpoints + +This module assumes you know how to launch `termmines` in Ghidra using GDB and know where to find the basic Debugger GUI components. +If not, please refer to the previous modules. + +This module will address the Breakpoints window in more depth. +While the breakpoint manager is able to deal with a system of targets, we will only deal with a single target at a time. + +## Breakpoints + +Most likely, this window is empty if you have been following the lesson. + +![The breakpoints window](images/Breakpoints_EmptyAfterLaunch.png) + +From here, you can toggle and delete existing breakpoints. +There are several ways to set a new breakpoint: + +1. From any static or dynamic listing window, including Disassembly, Memory/Hex, and the Decompiler, right-click and select ![set breakpoint](images/breakpoint-enable.png) Set Breakpoint, press **K** on the keyboard, or double-click the margin. +1. From the Objects window click the ![add breakpoint](images/breakpoint-enable.png) Add Breakpoint button or press **F3** on the keyboard. +1. From the Interpreter window, use the GDB command, e.g., `break main`. + +The advantage of using the listings is that you can quickly set a breakpoint at any address. +The advantage of using the Objects or Interpreter window is that you can specify something other than an address. +Often, those specifications still resolve to addresses, and Ghidra will display them. +Ghidra will memorize breakpoints by recording them as special bookmarks in the imported program. +There is some iconography to communicate the various states of a breakpoint. +When all is well and normal, you should only see enabled ![enabled breakpoint](images/breakpoint-enable.png) and disabled ![disabled breakpoint](images/breakpoint-disable.png) breakpoints. +If the target is terminated (or not launched yet), you may also see ineffective ![ineffective breakpoint](images/breakpoint-enable-ineff.png) breakpoints. + +## Examining Minesweeper Board Setup + +Suppose we want to cheat at `termmines`. +We might like to understand how the mines are placed. +Knowing that the mines are placed randomly, we might hypothesize that it is using the `srand` and `rand` functions from the C standard library. +While we can test that hypothesis by examining the imports statically, we might also like to record some actual values, so we will approach this dynamically. +(This is the Debugger course, after all.) +The breakpoint on `srand` will allow us to capture the random seed. +The breakpoint on `rand` will help us find the algorithm that places the mines. + +### Set the Breakpoints + +In the Interpreter, type the GDB commands to set breakpoints on `srand` and `rand`: + +```gdb +break srand +break rand +``` + +The breakpoint window should now be updated: + +![Populated breakpoints window](images/Breakpoints_PopAfterSRandRand.png) + +For a single target, the lower panel of the Breakpoints window does not add much information, but it does have some. +We will start with the top panel. +This lists the "logical" breakpoints, preferring static addresses. + +* The left-most column **Enabled** indicates the breakpoint's state. + Here, we see the inconsistent ![inconsistent](images/breakpoint-overlay-inconsistent.png) overlay, because Ghidra cannot save the breakpoint without a module image. + That is because `srand` and `rand` are in a different module, and we have not yet imported it into Ghidra. +* The next column **Name** is the name of the breakpoint. + This is for informational purposes only. + You can rename a breakpoint however you like, and it will have no effect on the target nor back-end debugger. +* The next column **Address** gives the address of the breakpoint. + Notice that the addresses were resolved, even though the breakpoints were specified by symbol. + Typically, this is the *static* address of the breakpoint; however, if the module image is not imported, yet, this will be the *dynamic* address, subject to relocation or ASLR. +* The next column **Image** gives the name of the imported image containing the breakpoint. + Again, because the module has not been imported yet, this column is blank. +* The next column **Length** gives the length of the breakpoint. + In GDB, this generally applies to watchpoints only. +* The next column **Kinds** gives the kinds of breakpoint. + Most breakpoints are software execution breakpoints, indicated by "SW_EXECUTE." + That is, they are implemented by patching the target's memory with a special instruction (`INT3` on x86) that traps execution. + There are also hardware execution breakpoints indicated by "HW_EXECUTE," and access breakpoints indicated by "HW_READ" and/or "HW_WRITE". + **NOTE**: GDB would call these "watchpoints." + An advantage to software breakpoints is that you can have a practically unlimited number of them. Some disadvantages are they can be detected easily, and they are limited to execution breakpoints. +* The next column **Locations** counts the number of locations for the breakpoint. + For a single-target session, this should always be 1. +* The final column **Sleigh** is only applicable to the emulator. + It indicates that the breakpoint's behavior has been customized with Sleigh code. + This is covered in [Emulation](B2-Emulation.md). + +Now, we move to the bottom panel. +This lists the breakpoint locations, as reported by the back-end debugger(s). +The Enabled, Address, and Sleigh columns are the same as the top, but for the individual *dynamic* addresses. + +* The **Name** column is the name as designated by the back-end. +* The **Trace** column indicates which target contains the location. + The text here should match one of the tabs from the Threads panel. +* The **Comment** column is a user-defined comment. + Its default value is the specification that generated it, e.g., `srand`. +* The **Threads** column indicates if the breakpoint is scoped to a limited set of threads. + Its use is atypical. + +### Toggling the Breakpoints + +While there is no need to toggle the breakpoints right now, it is a good time to demonstrate the feature. +There are several ways to toggle a breakpoint: + +1. In any listing, as in setting a breakpoint, right-click and select a toggle action, press **K** on the keyboard, or double-click its icon in the margin. +1. From the Objects window, expand the Breakpoints node, right-click a breakpoint and select Toggle or press **T** on the keyboard. +1. From the Breakpoints window, single-click the breakpoint's status icon, right-click an entry and select a toggle action, or create a selection and use a toggling action from the local toolbar. + Either panel works, but the top panel is preferred to keep the breakpoints consistent. + The local toolbar also has actions for toggling all breakpoints in the session. +1. From the Interpreter window, use the GDB commands, e.g., `disable 2`. + +Practice toggling them. +Notice that no matter how you toggle the breakpoints, the display updates. +You might also type `info break` into the Interpreter to confirm the effect of toggling breakpoints in the GUI. +When you are finished, ensure both breakpoints are enabled. + +### Importing `libc` + +While the Debugger can operate without importing external modules, it generally works better when you have. +The symbols `srand` and `rand` are in `libc`. +If you would like to save the breakpoints we placed on them, you must import the module. +You could do this in the usual manner, but the Debugger offers a convenient way to import missing modules. + +1. Navigate to a dynamic address that would be mapped to the missing module. + For our scenario, the easiest way to do that is to double-click an address in the Breakpoints window. + Either one points somewhere in `libc`. +1. Check the Debug Console window for a note about the missing module: + + ![Missing module note in the debug console](images/Breakpoints_MissingModuleNote.png) + +1. Click the import button — leftmost of the remedial actions. + It will display a file browser pointed at the library file. +1. Proceed with the import and initial analysis as you would in the CodeBrowser. + +Once imported, the Breakpoints window should update to reflect the static addresses, the breakpoints should become consistent, and the Static Listing should now be synchronized when navigating within `libc`. + +![The debugger tool with breakpoints synchronized after importing libc](images/Breakpoints_SyncedAfterImportLibC.png) + +### Capturing the Random Seed + +We can now allow `termmines` to execute, expecting it to hit the `srand` breakpoint first. +Click ![resume](images/resume.png) Resume. +If all goes well, the target should break at `srand`. +If you have never written code that uses `srand` before, you should briefly read its manual page. +It takes a single parameter, the desired seed. +That parameter contains the seed this very moment! +We can then examine the value of the seed by hovering over `param_1` in the decompiler. + +![Seed value in decompiler hover](images/Breakpoints_SeedValueAfterBreakSRand.png) + +We will cover other ways to examine memory and registers in the [Machine State](A4-MachineState.md) module. +We have contrived `termmines` so that its random seed will always start with `0x5eed____`. +If you see that in the value displayed, then you have successfully recovered the seed. +This seed will be used in an optional exercise at the end of this module. +You might write it down; however, if you re-launch `termmines` between now and then, you will have a different seed. + +### Locating the Mine Placement Algorithm + +Press ![resume](images/resume.png) Resume again. +This time, the target should break at `rand`. +We are not interested in the `rand` function itself, but rather how the placement algorithm is using it. +Press ![step out](images/stepout.png) Step Out to allow the target to return from `rand`. +If you still have the Decompiler up, you should be in a code block resembling: + +```c {.numberLines} +while (iVar2 = DAT_00604164, iVar1 = DAT_00604160, iVar10 < _DAT_00604168) { + iVar3 = rand(); + iVar2 = DAT_00604164; + iVar11 = rand(); + lVar7 = (long)(iVar11 % iVar2 + 1) * 0x20 + (long)(iVar3 % iVar1 + 1); + bVar14 = *(byte *)((long)&DAT_00604160 + lVar7 + 0x1c); + if (-1 < (char)bVar14) { + iVar10 = iVar10 + 1; + *(byte *)((long)&DAT_00604160 + lVar7 + 0x1c) = bVar14 | 0x80; + } +} +``` + +If you are thinking, "I could have just found `rand` in the symbol table and followed its XRefs," you are correct. +However, it is useful to use a dynamic debugging session to drive your analysis chronologically through execution of the target, even if much of that analysis is still static. +The advantages of a dynamic session along side static analysis should become more apparent as you progress through this course. + +### Exercise: Diagram the Mines + +You goal is to capture the location of all the mines. +So that you can check your work later, you should run `termmines` in a terminal and attach to it from Ghidra. +You will probably want to disable the breakpoints on `rand` and `srand` for now. +Devise a strategy using breakpoints and the control buttons (Step, Resume, etc.) so that you can observe the location of each mine. +Use pen and paper to draw a diagram of the board, and mark the location of each mine as you observe the algorithm placing it. +There should only be 10 mines in Beginner mode. +Once the mines are placed, press ![resume](images/resume.png) Resume. +Check you work by winning the game. +Alternatively, you can intentionally lose to have the game reveal the mines. + +### Optional Exercise: Replicate the Boards (Forward Engineering) + +You will need a C development environment for this exercise. +Because, as we have now confirmed, `termmines` is importing its random number generator from the system, we can write a program that uses that same generator. +Further, because we can capture the seed, and we know the placement algorithm, we can perfectly replicate the sequence of game boards for any `termmines` session. + +Write a program that takes a seed from the user and prints a diagram of the first game board with the mines indicated. +Optionally, have it print each subsequent game board when the user presses ENTER. +Check your work by re-launching `termmines` (see note about attaching below), capturing its seed, inputting it into your program, and then winning the game. +Optionally, win 2 more games in the same session. + +**NOTE**: We will need a more advanced attaching technique to check your work, because you will need both to break on `srand` (which happens early in the process' execution, ruling out our usual attach technique) and to interact with it in the terminal (which rules out launching in Ghidra). +There are a few ways around this, including using `gdbserver` or using `set inferior-tty`. +If you are already familiar with those, you can try one. +The technique we recommend here is using a stub that will suspend itself and then execute `termmines`. +We can then run the stub in a terminal outside of Ghidra, attach to that stub, and then allow it to proceed into `termmines`. +In this way, we can attach to the process in the terminal before it reaches `srand`. +The stub is fairly easy to write in Bash and should be similar in other shells. + +1. In a terminal running Bash (see note if you're using `anyptracer`): + ```bash + (echo $BASHPID; kill -SIGSTOP $BASHPID; exec ./termmines) + ``` + The parentheses will start `bash` in a new subprocess. + The first two commands cause it to print its own process ID and then suspend itself. + Your terminal should display the PID and report the stopped process. + + **NOTE**: If you need to use the `anyptracer` stub, then the invocation is more complicated: + ```bash + ./anyptracer 'exec bash -c "echo $BASHPID; kill -SIGSTOP $BASHPID; exec ./termmines"' + ``` + In principle, it works the same except wrapped in the `anyptracer` stub. + The parentheses are no longer needed, nor allowed, since `anyptracer` is already a subprocess of your shell. + If you include parentheses, you will get a second sub-subprocess to which you cannot attach. +1. In Ghidra, follow the usual steps to attach, but use the PID printed in your terminal. + **NOTE**: The process is still technically running `bash` when you attach to it. +1. In the Interpreter panel: + ```gdb + break main + ``` + **NOTE**: At this point `main` technically refers to the symbol in `bash`, but GDB will adjust its location once the target loads `termmines`. +1. Back in your terminal running Bash: + ```bash + fg + ``` + This will cause Bash to return the stub to the foreground of the terminal. + Without this step, the system will repeatedly suspend the process whenever it attempts any I/O on that terminal. +1. In Ghidra, press Resume (or use `continue` in the Interpreter) until you hit the breakpoint at `main`. + This permits the stub to complete its third command `exec ./termmines`. + The `exec` command is different than normal command execution. + Instead of creating a subprocess, it *replaces* the image of the stub process, so the process is now running `termmines`. +1. Refresh the Modules node in the Objects window. + You may need to clear your filter text. + Expand the Modules node and verify it lists `termmines` instead of `bash`. + Without this step, your listings may go out of sync. + +At this point, you are attached to your target running in the terminal, and you have trapped it at `main`. +Because you were attached to it when it was still `bash`, you will likely see a lot of extraneous history. +For example, the Modules panel will report many of the modules that had been loaded by `bash`. +Please note their lifespans, however. +They should correctly indicate those modules are no longer loaded. +In any case, you now have the tools needed to check your work for this exercise. diff --git a/GhidraDocs/GhidraClass/Debugger/A4-MachineState.html b/GhidraDocs/GhidraClass/Debugger/A4-MachineState.html new file mode 100644 index 0000000000..7847a07fa4 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A4-MachineState.html @@ -0,0 +1,658 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

Examining Machine State: Memory, Registers, and Variables

+

This module assumes you know how to launch termmines in +Ghidra using GDB, and know where to find the basic Debugger GUI +components. It also assumes you know the basic control commands, e.g., +Resume, Step, and Interrupt; as well as some basics for breakpoints. If +not, please refer to the previous modules.

+

This module will address the following features in more depth:

+
    +
  • Dynamic Listing window
  • +
  • Dynamic Bytes window
  • +
  • Registers window
  • +
  • Watches window
  • +
  • Sleigh expressions
  • +
  • Variable value hovers
  • +
+
+

Machine State

+

There are at least two ways to define machine state. One way based on +a high-level understanding of a program is the collective values of all +variables. Another based on a low-level understanding of a program is +the collective values of all memory and all registers of all threads. +Because Ghidra is primarily concerned with examining software at the low +level, albeit to obtain a high-level understanding, we will generally +stick with the low-level definition. One could argue that machine state +also includes the underlying system and hardware, including peripherals. +When debugging user-space applications, Ghidra cannot generally inspect +the underlying system, except for a few things granted by the back-end +debugger, e.g., the virtual memory map. Thus, as far as we are +concerned, the machine state does not include the underlying system, but +it is still something you must be aware of while debugging.

+

Note that we also treat registers as something separate from +memory. While technically, one could argue registers are the +closest and smallest memory to the CPU, we think of memory as an +addressable array, e.g., DIMMs and flash ROMs. If applicable, +memory-mapped registers are considered part of memory by +Ghidra.

+

The Ghidra Debugger provides mechanisms for viewing and modifying +machine state at both the low and high levels. The Dynamic Listing and +Memory viewer provide access to memory, the Registers window provides +access to registers, and the Watches window provides access to memory +and registers via expressions. The only means of accessing high-level +variables is through value hovers, which are available in all listings +and the Decompiler.

+
+

Patching

+

Many of the features allow you to edit the values, i.e., +patch the live target. The windows that are adaptations of +their static counterparts work more or less as expected. Edits in any +dynamic window will attempt to patch the live target. Edits in +any static window will not patch the live +target; they modify the program database as usual. Some dynamic windows +may present tables with editable cells. These will often include a +write-lock toggle, like the static Byte viewer, to avoid +accidental patching. Furthermore, you must use the control mode Control Mode toggle in the +global toolbar (next to the control actions) to enable patching +throughout the Debugger tool. For now, please only use the “Control +Target” and “Control Target w/ Edits Disabled” options. The write toggle +is included here so that actions like copy-paste do not lead to +accidental patching.

+
+
+
+

The Dynamic Listing

+

Up to this point, we have only used the Dynamic Listing to display +the instructions at the program counter. It can actually view and mark +up any part of the machine state in memory, e.g., mapped images, heap +pages, stack pages. Where the memory is mapped to images, Ghidra +attempts to synchronize the Static Listing and, by extension, the other +static analysis windows. The Dynamic Listing has most of the same +features as the Static Listing.

+

Re-launch termmines and then navigate to +rand. You may notice that the Static Listing has +disassembly, but the Dynamic Listing does not. This is because Ghidra +has not observed the program counter at rand yet, so it has +not automatically disassembled it. To manually disassemble in the +Dynamic Listing, place your cursor where you expect an instruction and +press D, just like you would in the Static Listing.

+
+ + +
+

This action differs in that it does not follow flow. It proceeds +linearly, stopping at any control transfer instruction.

+

Now, we will examine the stack segment. Click the location tracking Track +Location drop-down and select Track Stack Pointer. The +window should seek to (and highlight in pale green) the address in the +stack pointer. Since the target has just entered main, we +should expect a return address at the top of the stack. With your cursor +at the stack pointer, press P to place a pointer there, +just like you would in the Static Listing. You can now navigate to that +address by double-clicking it. To return to the stack pointer, you can +use the back arrow in the global toolbar, you can click the track location Track Location +button, or you can double-click the sp = [Address] label in +the top right of the Dynamic Listing.

+

To examine a more complicated stack segment, we will break at +rand. Ensure your breakpoint at rand is +enabled and press resume Resume. +Your Dynamic Listing should follow the stack pointer. In the menus, +select Debugger → Analysis → Unwind Stack or press +U.

+
+ + +
+

NOTE: We will cover the Stack window later in the +course, which is probably a more suitable way to navigate stack frames. +It is populated by the back-end debugger, which can usually unwind the +stack more reliably than Ghidra. The Unwind Stack action is useful when +you want an in-depth understanding of the actual contents of the stack, +or when you are emulating.

+

Now, switch back to Track Program Counter. If you +would like to track both the Program Counter and the Stack Pointer, +click the clone Clone button +in the local toolbar. Like the Static Listing, this clones an instance +of the Dynamic Listing, which you can configure differently than the +primary Dynamic Listing. Only the primary Dynamic Listing will +synchronize, and it does so only with the primary Static Listing. +NOTE: For the sake of disambiguation, we will use the +term clone, not snapshot when referring to multiple +instances of a Ghidra window. While this is inconsistent with the Ghidra +Beginner course materials, it is necessary to avoid confusion with +snapshots of the machine state, discussed later in this module.

+

The dynamic listing offers several additional features:

+
+

Cache Status Indication

+

The listing’s contents are read from a live target, which may become +unresponsive or otherwise temperamental. The Debugger uses a database, +which acts as a cache separating the GUI from the live target. The UI +requests memory pages from the target, the target asynchronously +retrieves those pages and stores them into the database, then the +database updates the UI. This sequence does not always go as expected; +thus, pages with stale data are displayed with a grey background. This +may also happen if auto-read is disabled. Typically, user-space targets +are not so temperamental, but others may be, or memory reads could be +expensive, in which case disabling automatic memory reads may be +advantageous. If the back-end debugger reports an error while reading +memory, the first address of the page will have a red background. To +refresh the visible or selected page(s), click the +refresh Refresh +button. Examine the Debug Console window for errors / warnings before +spamming this button. To toggle auto read, use the +auto-read Auto-Read +drop-down button from the local toolbar.

+
+
+

Address Tracking

+

We have already demonstrated this, but there are some finer details. +Some of the tracking options depend on the Watches window, discussed +later in this module. On occasion, the location cannot be displayed in +the listing, typically because it falls outside of the memory map. If +this happens, the address label at the top right of the listing will +have red text.

+
+
+

Module / Region Indicator

+

In the top left a label will display the name of the section +containing the cursor. If there is no containing section, it will fall +back to the containing module and then to the containing region. Rarely, +this label will be empty. This can happen when the cursor is outside any +known region, which only happens if you configure Ghidra to ignore the +memory map.

+
+
+

Go To

+

The Go To action in the Dynamic Listing differs from the one in the +Static Listing. Like the static one, it accepts an address in +hexadecimal, possibly prefixed with the address space and a colon. +However, it also accepts Sleigh expressions, allowing you to treat +RAX as a pointer and go to that address, for example. We +cover Sleigh expressions later in this module.

+
+
+

Compare

+

The Compare action in the Dynamic Listing also differs from the one +in the Static Listing. It allows the comparison of two machine state +snapshots, covered in the Navigation +module.

+
+
+

Exercise: Reverse Engineer the Board

+

All of the features in the default CodeBrowser tool are also in the +default Debugger tool, providing you Ghidra’s full suite of static +analysis tools during your dynamic sessions, albeit they are not as +immediately accessible. Your task is to reverse engineer the game +board’s layout in memory. Because you are in a dynamic session, you have +an example board to work with. As you navigate the .data +section of termmines in the Static Listing, the Dynamic +Listing will follow along showing you the live values in memory. You can +also experiment by placing code units in the Dynamic Listing before +committing to them in the Static Listing.

+
+

Questions:

+
    +
  1. How are the cells allocated?
  2. +
  3. How are the cells indexed? Row major, color major? 0-up, 1-up?
  4. +
  5. What is happening around the “border” of the board? Why might the +programmer have chosen this design?
  6. +
+
+
+
+
+

The Memory Viewer

+
+ + +
+

Just as the Dynamic Listing is the analog of the Static Listing, the +Memory viewer is the analog of the Byte viewer. It is not visible by +default. To open it, use Windows → Byte Viewer → Memory +… in the menus. Its default configuration should be Auto PC, +the same as the Dynamic Listing’s default. It has all the same +additional Debugger features as the Dynamic Listing. Furthermore, bytes +that have changed are displayed in red text.

+
+

Exercise: Display the Board in Hex

+

This is a bit quick and dirty, but it works and can be useful. Your +task is to configure the Memory viewer so that (within the memory +allocated to the board) the rows and columns of the Memory viewer +correspond to the rows and columns of the game board. +TIP: Use the Alignment Address and Bytes +Per Line settings.

+
+
+
+

Registers

+
+ + +
+

The Registers window gives a view of all the registers on the target +and their current values. The register set can be very large, so there +are a few ways to sift and sort. As in most Ghidra tables, you can +filter using the box below the registers table. Additionally, you can +use the column headers to sort. The columns are:

+
    +
  • The Favorite column indicates which registers are +your favorite. By default, this includes the instruction pointer and the +stack pointer. You can quickly choose your favorite(s) by toggling the +check boxes in this column. Because this column is sorted by default, +your favorites are positioned at the top.
  • +
  • The Number column gives the number assigned to the +register by Ghidra’s processor specification. This is mostly just to +make the default sorting deterministic.
  • +
  • The Name column gives Ghidra’s name for the +register. This usually matches the name given by the back-end debugger, +but may not. For example, on x86-64, what Ghidra calls +rflags GDB calls eflags.
  • +
  • The Value column gives the register’s current value +in hexadecimal. Values in gray are stale. Values in red have changed. +Right-clicking this column will present options to Go To the address, as +if the register were a pointer.
  • +
  • The Type column allows you to assign a type to, +i.e., create a data unit on, the register. This has more utility for +float types than integers, but it may still help you record what you +know about how a register is being used.
  • +
  • The Representation column displays the register’s +value according to its assigned type, if applicable. If the type is a +pointer, then double-clicking this value will go to the address in the +Dynamic Listing.
  • +
+

If you would like to adjust the list of registers in the table, use +the select registers +Select Registers button in the local toolbar. This will present all the +registers in Ghidra’s processor specification, including those which are +just artifacts of Sleigh. Typically, this is not necessary, since the +table will include all registers recognized by both Ghidra and the +back-end debugger. Nevertheless, if you believe a register is missing, +it is wise to check this selection.

+
+

Exercise: Reduce the Mines

+

If you have not already reverse engineered the mine placement +algorithm, do that now. Think up a strategy you might employ, by +patching a register, to reduce the number of mines placed on the board. +The strategy need not result in a permanent change. It should only +affect the round being set up. For this exercise, you cannot patch +memory, but you may place a breakpoint. Verify your work by playing the +round.

+
+
+
+

Watches

+
+ + +
+

The Watches window gives the values of several user-specified Sleigh +expressions. This can provide an alternative to the Registers window +when you are really only interested in a couple of registers. It can +also watch values in memory. Furthermore, when a watch has a memory +address, the expression will appear as an option in the Location +Tracking menus of the Listing and Memory viewers. Selecting that option +will cause the window to follow that watch as its address changes.

+

To add a watch, click the add Add +button. A new entry will appear. Double-click the left-most cell of the +row to set or edit the Sleigh expression. For starters, try something +like RDI. (Conventionally, this is the location for the +first parameter on Linux x86-64 systems.) The context menus for the +Listing and Registers windows include a “Watch” action, which adds the +current selection to the Watches window.

+

The columns are:

+
    +
  • The Expression column is the user-defined Sleigh +expression.
  • +
  • The Address column is the address of the resulting +value, if applicable. This may be in register space. +Double-clicking this cell will go to the address in the Dynamic +Listing.
  • +
  • The Symbol column gives the symbol in a mapped +static image closest to or containing the address, if applicable.
  • +
  • The Value column gives the “raw” value of the +expression. If the result is in memory, it displays a byte array; +otherwise, it displays an integer.
  • +
  • The Type and Representation +columns work the same as in the Registers window, except they do +not save the data unit to the database. This has more uses than +the Registers window. For example, try *:30 RDI and set +this to TerminatedCString. Whenever RDI is a +string pointer, this will display the string up to 30 characters.
  • +
  • The Error column reports any errors in compiling or +evaluating the expression.
  • +
+
+
+

Sleigh Expressions

+

Watches and Go-To commands are expressed using Ghidra’s Sleigh +language. More precisely, expressions are the sub-language of Sleigh for +the right-hand side of assignment statements in semantic sections. If +you already know this language, then there is little more to learn. Of +note, you may use labels from mapped program images in your expression. +For example, to see how far a return address is into main, +you could use *:8 RSP - main.

+

For the complete specification, see the Semantic Section in the Sleigh +documentation.

+

Sleigh is a bit unconventional in that its operators are typed rather +than its variables. All variables are fix-length bit vectors. Their +sizes are specified in bytes, but they have no other type +information.

+
+

Variables and Constants

+

Here are some examples of things you can reference by name:

+
    +
  • Register: RAX
  • +
  • Label: main
  • +
  • Constant: 1234:8 or +0x42d:8 — the value 1234 encoded as an 8-byte integer
  • +
+

Registers vary by processor, but any register known to Ghidra’s +specification is allowed. (Due to limitations in Sleigh, you cannot +refer to the contextreg or any of its sub-registers.) A +label may come from any Ghidra program database that is mapped to the +current target. Due to limitations in Sleigh, you cannot specify a +label’s namespace. The compiler will search only by name and select +arbitrarily from multiple matches.

+
+
+

Operators

+

Here we will demonstrate each operator by example:

+
    +
  • Integer Addition: RAX + RCX
  • +
  • Integer Subtraction: RAX - RCX
  • +
  • Integer Negation: -RAX
  • +
  • Integer Multiplication: RAX * RCX
  • +
  • Unsigned Integer Division: +RAX / RCX
  • +
  • Unsigned Integer Remainder: +RAX % RCX
  • +
  • Signed Integer Division: +RAX s/ RCX
  • +
  • Signed Integer Remainder: +RAX s% RCX
  • +
  • Left Shift: RAX << RCX
  • +
  • Unsigned Right Shift: +RAX >> RCX
  • +
  • Signed Right Shift +RAX s>> RCX
  • +
  • Integer Comparison: RAX == RCX or +RAX != RCX
  • +
  • Unsigned Integer Comparison: +RAX < RCX or RAX > RCX or +RAX <= RCX or RAX >= RCX
  • +
  • Signed Integer Comparison: +RAX s< RCX etc.
  • +
  • Float Addition: MM0 f+ MM1
  • +
  • Float Subtraction: MM0 f- MM1
  • +
  • Float Negation: f-MM0
  • +
  • Float Multiplication: MM0 f* MM1
  • +
  • Float Division: MM0 f/ MM1
  • +
  • Float Absolute Value: abs(MM0)
  • +
  • Float Square Root: sqrt(MM0)
  • +
  • Float Comparison: RAX f== RCX or +RAX f< RCX etc.
  • +
  • Bitwise And: RAX & RCX
  • +
  • Bitwise Or: RAX | RCX
  • +
  • Bitwise Xor: RAX ^ RCX
  • +
  • Bitwise Not: ~RAX
  • +
  • Boolean And: RAX && RCX
  • +
  • Boolean Or: RAX || RCX
  • +
  • Boolean Xor: RAX ^^ RCX
  • +
  • Boolean Not: !RAX
  • +
+

NOTE: If the result of your expression is in +floating point, you will need to set the type of the watch accordingly. +The “raw” display will render the bit vector as an integer or byte +array. To read memory:

+
    +
  • Dereference: *:8 RSP or +*[ram]:8 RSP
  • +
+

NOTE The [ram] part is optional. On +x86, you will rarely if ever specify the space, since there is only one +physical RAM space. The :8 part specifies the number of +bytes to read from memory. It is also optional, but only if the size can +be inferred from the rest of the expression. To manipulate variable +size:

+
    +
  • Zero Extension: RAX + zext(EBX)
  • +
  • Sign Extension: RAX + sext(EBX)
  • +
  • Truncation: RAX:4 — Equivalent to +EAX
  • +
  • Truncation: AL + RBX(4) — AL added to +the the 5th byte of RBX
  • +
  • Bit Extraction: RAX[7,8] — Equivalent +to AL
  • +
+

NOTE: The second form of truncation drops the +least-significant 4 bytes of RBX and takes as many of the remaining +bytes (1 in this case) as necessary to match size with AL.

+

NOTE: Need for these next miscellaneous operators in +Watch expressions is rare:

+
    +
  • Unsigned Carry: carry(RAX,RBX)
  • +
  • Signed Carry: scarry(RAX,RBX)
  • +
  • Signed Borrow: sborrow(RAX,RBX)
  • +
  • Float NaN: nan(MM0)
  • +
  • Convert Integer to Float: +MM0 + int2float(RAX) — Context required to infer the float +size
  • +
  • Convert Float to Integer: +RAX + trunc(MM0) — Context required to infer the integer +size
  • +
  • Convert Float Size: +MM0 + float2float(MM0_Da) — Context required to infer the +new float size
  • +
  • Float Round Ceiling: ceil(MM0)
  • +
  • Float Round Floor: floor(MM0)
  • +
  • Float Round Nearest: round(MM0)
  • +
+
+
+

Exercise: Find and Modify the Board Dimensions

+

Your task is to set up watches on the width and height of the game +board, and then use those watches to change the size of the board. This +may involve some trial and error, and it may not work perfectly due to +the way ncurses refreshes the screen. For this exercise, +patching memory is expected, and the change should last until the target +is terminated.

+

TIP: If the termmines image is subject +to ASLR, and you want your watch expression to generalize over +re-launches, try using main as an anchor for the image +base.

+
+
+

Exercise: Watch the Cell to be Mined

+

Your task is to watch the byte value of the cell that is about to +have a mine placed in it. You will probably want to set a breakpoint +somewhere in the mine placement algorithm. It is okay if the watch does +not always display the correct byte. However, it must be +correct whenever the program counter is at your breakpoint. Register +allocations are fairly volatile, and as a result, watch expressions that +refer to registers are only valid in a limited scope. The rest of the +time, even though the watch may evaluate successfully, its value may +have no real meaning. Check your work by observing the mine bit being +ORed in as you step the target.

+

TIP: Try creating watches for the row and column +indices, first. Then, perhaps referring to the Decompiler, formulate the +expression that dereferences that cell in the board.

+
+
+
+

Variable Hovers

+

You may have already used these if you completed the exercises in the +Breakpoints module. If you hover over +a variable in any listing or the Decompiler, the Debugger will attempt +to evaluate it and display information about it. In some cases, +evaluation may involve unwinding the stack. Unwinding proceeds until the +Debugger finds an invocation of the function containing or defining the +variable. If unwinding fails, the Debugger may disregard the stack. In +dynamic windows, the Debugger generally disregards the stack. In static +windows, the Debugger still uses dynamic information to unwind the stack +and evaluate the variable. A variable may be any of the following:

+
    +
  • A register in the listing. In this case, the hover will report the +register’s value in the function’s frame.
  • +
  • A local or parameter in the listing. If the variable is allocated in +a register, this behaves the same as hovering that register, except with +additional information presented. If the variable is allocated in stack +space, this only succeeds if unwinding succeeds.
  • +
  • A global variable in the listing. Unwinding is unnecessary for +these.
  • +
  • A local or parameter in the Decompiler. This behaves similarly to +hovering a variable in the Static Listing.
  • +
  • A global in the Decompiler. This behaves similarly to hovering a +global variable in the Static Listing.
  • +
  • A field reference in the Decompiler. A field reference is +essentially a C expression in terms of other variables. This will +evaluate those variables and then evaluate the expression.
  • +
+

Depending on the particular variable and other circumstances, the +hover will contain some combination of these rows:

+
    +
  • Name: The name of the variable
  • +
  • Type: The type of the variable
  • +
  • Location: The static location of the variable, +e.g., Stack[0x4]
  • +
  • Status: A progress indicator
  • +
  • Frame: If evaluation required unwinding, a +description of the frame used for context
  • +
  • Storage: The dynamic, physical location of the +variable, e.g., 7fffffffe618
  • +
  • Bytes: The raw bytes currently stored in the memory +allocated to the variable
  • +
  • Integer: The “raw” integer value of the variable, +rendered with varyied signedness and radix
  • +
  • Value: The value of the variable, according to its +type
  • +
  • Instruction: If the variable points to code, the +target instruction
  • +
  • Warnings: Warnings emitted during evaluation
  • +
  • Error: If the value could not be evaluated, an +explanation or the exception
  • +
+

The Name, Type, and Location entries are informational. They tell you +about the variable and its static definition. The Status, Frame, and +Storage entries are also informational, but tell you about the +variable’s dynamic evaluation. The Bytes, Integer, Value, and +Instruction entries tell you the dynamic value of the variable. Finally, +the Warnings and Error entries provide diagnostics. If there are many +warnings, then the value may not be accurate.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/A4-MachineState.md b/GhidraDocs/GhidraClass/Debugger/A4-MachineState.md new file mode 100644 index 0000000000..27ec1696b9 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A4-MachineState.md @@ -0,0 +1,400 @@ + +# Examining Machine State: Memory, Registers, and Variables + +This module assumes you know how to launch `termmines` in Ghidra using GDB, and know where to find the basic Debugger GUI components. +It also assumes you know the basic control commands, e.g., Resume, Step, and Interrupt; as well as some basics for breakpoints. +If not, please refer to the previous modules. + +This module will address the following features in more depth: + +* Dynamic Listing window +* Dynamic Bytes window +* Registers window +* Watches window +* Sleigh expressions +* Variable value hovers + +## Machine State + +There are at least two ways to define machine state. +One way based on a high-level understanding of a program is the collective values of all variables. +Another based on a low-level understanding of a program is the collective values of all memory and all registers of all threads. +Because Ghidra is primarily concerned with examining software at the low level, albeit to obtain a high-level understanding, we will generally stick with the low-level definition. +One could argue that machine state also includes the underlying system and hardware, including peripherals. +When debugging user-space applications, Ghidra cannot generally inspect the underlying system, except for a few things granted by the back-end debugger, e.g., the virtual memory map. +Thus, as far as we are concerned, the machine state does not include the underlying system, but it is still something you must be aware of while debugging. + +Note that we also treat *registers* as something separate from *memory*. +While technically, one could argue registers are the closest and smallest memory to the CPU, we think of memory as an addressable array, e.g., DIMMs and flash ROMs. +If applicable, *memory-mapped* registers are considered part of memory by Ghidra. + +The Ghidra Debugger provides mechanisms for viewing and modifying machine state at both the low and high levels. +The Dynamic Listing and Memory viewer provide access to memory, the Registers window provides access to registers, and the Watches window provides access to memory and registers via expressions. +The only means of accessing high-level variables is through value hovers, which are available in all listings and the Decompiler. + +### Patching + +Many of the features allow you to edit the values, i.e., *patch* the live target. +The windows that are adaptations of their static counterparts work more or less as expected. +Edits in any *dynamic* window will attempt to patch the live target. +Edits in any *static* window will **not** patch the live target; they modify the program database as usual. +Some dynamic windows may present tables with editable cells. +These will often include a *write-lock* toggle, like the static Byte viewer, to avoid accidental patching. +Furthermore, you must use the ![control mode](images/record.png) Control Mode toggle in the global toolbar (next to the control actions) to enable patching throughout the Debugger tool. +For now, please only use the "Control Target" and "Control Target w/ Edits Disabled" options. +The write toggle is included here so that actions like copy-paste do not lead to accidental patching. + +## The Dynamic Listing + +Up to this point, we have only used the Dynamic Listing to display the instructions at the program counter. +It can actually view and mark up any part of the machine state in memory, e.g., mapped images, heap pages, stack pages. +Where the memory is mapped to images, Ghidra attempts to synchronize the Static Listing and, by extension, the other static analysis windows. +The Dynamic Listing has most of the same features as the Static Listing. + +Re-launch `termmines` and then navigate to `rand`. +You may notice that the Static Listing has disassembly, but the Dynamic Listing does not. +This is because Ghidra has not observed the program counter at `rand` yet, so it has not automatically disassembled it. +To manually disassemble in the Dynamic Listing, place your cursor where you expect an instruction and press **D**, just like you would in the Static Listing. + +![The dynamic listing after a call to rand](images/State_ListingAfterCallRand.png) + +This action differs in that it does not follow flow. +It proceeds linearly, stopping at any control transfer instruction. + +Now, we will examine the stack segment. +Click the ![location tracking](images/register-marker.png) Track Location drop-down and select **Track Stack Pointer**. +The window should seek to (and highlight in pale green) the address in the stack pointer. +Since the target has just entered `main`, we should expect a return address at the top of the stack. +With your cursor at the stack pointer, press **P** to place a pointer there, just like +you would in the Static Listing. +You can now navigate to that address by double-clicking it. +To return to the stack pointer, you can use the back arrow in the global toolbar, you can click the ![track location](images/register-marker.png) Track Location button, or you can double-click the `sp = [Address]` label in the top right of the Dynamic Listing. + +To examine a more complicated stack segment, we will break at `rand`. +Ensure your breakpoint at `rand` is enabled and press ![resume](images/resume.png) Resume. +Your Dynamic Listing should follow the stack pointer. +In the menus, select **Debugger → Analysis → Unwind from frame 0** or press **U**. + +![The dynamic listing of the stack after a call to rand](images/State_ListingStackAfterCallRand.png) + +**NOTE**: We will cover the Stack window later in the course, which is probably a more suitable way to navigate stack frames. +It is populated by the back-end debugger, which can usually unwind the stack more reliably than Ghidra. +The Unwind Stack action is useful when you want an in-depth understanding of the actual contents of the stack, or when you are emulating. + +Now, switch back to **Track Program Counter**. +If you would like to track both the Program Counter and the Stack Pointer, click the ![clone](images/camera-photo.png) Clone button in the local toolbar. +Like the Static Listing, this clones an instance of the Dynamic Listing, which you can configure differently than the primary Dynamic Listing. +Only the primary Dynamic Listing will synchronize, and it does so only with the primary Static Listing. +**NOTE**: For the sake of disambiguation, we will use the term *clone*, not *snapshot* when referring to multiple instances of a Ghidra window. +While this is inconsistent with the Ghidra Beginner course materials, it is necessary to avoid confusion with snapshots of the machine state, discussed later in this module. + +The dynamic listing offers several additional features: + +### Cache Status Indication + +The listing's contents are read from a live target, which may become unresponsive or otherwise temperamental. +The Debugger uses a database, which acts as a cache separating the GUI from the live target. +The UI requests memory pages from the target, the target asynchronously retrieves those pages and stores them into the database, then the database updates the UI. +This sequence does not always go as expected; thus, pages with stale data are displayed with a grey background. +This may also happen if auto-read is disabled. +Typically, user-space targets are not so temperamental, but others may be, or memory reads could be expensive, in which case disabling automatic memory reads may be advantageous. +If the back-end debugger reports an error while reading memory, the first address of the page will have a red background. +To refresh the visible or selected page(s), click the refresh Refresh button. +Examine the Debug Console window for errors / warnings before spamming this button. +To toggle auto read, use the auto-read Auto-Read drop-down button from the local toolbar. + +### Address Tracking + +We have already demonstrated this, but there are some finer details. +Some of the tracking options depend on the Watches window, discussed later in this module. +On occasion, the location cannot be displayed in the listing, typically because it falls outside of the memory map. +If this happens, the address label at the top right of the listing will have red text. + +### Module / Region Indicator + +In the top left a label will display the name of the section containing the cursor. +If there is no containing section, it will fall back to the containing module and then to the containing region. +Rarely, this label will be empty. +This can happen when the cursor is outside any known region, which only happens if you configure Ghidra to ignore the memory map. + +### Go To + +The Go To action in the Dynamic Listing differs from the one in the Static Listing. +Like the static one, it accepts an address in hexadecimal, possibly prefixed with the address space and a colon. +However, it also accepts Sleigh expressions, allowing you to treat `RAX` as a pointer and go to that address, for example. +We cover Sleigh expressions later in this module. + +### Compare + +The Compare action in the Dynamic Listing also differs from the one in the Static Listing. +It allows the comparison of two machine state snapshots, covered in the [Navigation](A5-Navigation.md) module. + +### Exercise: Reverse Engineer the Board + +All of the features in the default CodeBrowser tool are also in the default Debugger tool, providing you Ghidra's full suite of static analysis tools during your dynamic sessions, albeit they are not as immediately accessible. +Your task is to reverse engineer the game board's layout in memory. +Because you are in a dynamic session, you have an example board to work with. +As you navigate the `.data` section of `termmines` in the Static Listing, the Dynamic Listing will follow along showing you the live values in memory. +You can also experiment by placing code units in the Dynamic Listing before committing to them in the Static Listing. + +#### Questions: + +1. How are the cells allocated? +1. How are the cells indexed? Row major, color major? 0-up, 1-up? +1. What is happening around the "border" of the board? Why might the programmer have chosen this design? + +## The Memory Viewer + +![The dynamic memory view of the stack after a call to rand](images/State_BytesStackAfterCallRand.png) + +Just as the Dynamic Listing is the analog of the Static Listing, the Memory viewer is the analog of the Byte viewer. +It is not visible by default. +To open it, use **Windows → Byte Viewer → Memory ...** in the menus. +Its default configuration should be Auto PC, the same as the Dynamic Listing's default. +It has all the same additional Debugger features as the Dynamic Listing. +Furthermore, bytes that have changed are displayed in red text. + +### Exercise: Display the Board in Hex + +This is a bit quick and dirty, but it works and can be useful. +Your task is to configure the Memory viewer so that (within the memory allocated to the board) the rows and columns of the Memory viewer correspond to the rows and columns of the game board. +**TIP**: Use the *Alignment Address* and *Bytes Per Line* settings. + +## Registers + +![The registers after a call to rand](images/State_RegistersAfterCallRand.png) + +The Registers window gives a view of all the registers on the target and their current values. +The register set can be very large, so there are a few ways to sift and sort. +As in most Ghidra tables, you can filter using the box below the registers table. +Additionally, you can use the column headers to sort. +The columns are: + +* The **Favorite** column indicates which registers are your favorite. + By default, this includes the instruction pointer and the stack pointer. + You can quickly choose your favorite(s) by toggling the check boxes in this column. + Because this column is sorted by default, your favorites are positioned at the top. +* The **Number** column gives the number assigned to the register by Ghidra's processor specification. + This is mostly just to make the default sorting deterministic. +* The **Name** column gives Ghidra's name for the register. + This usually matches the name given by the back-end debugger, but may not. + For example, on x86-64, what Ghidra calls `rflags` GDB calls `eflags`. +* The **Value** column gives the register's current value in hexadecimal. + Values in gray are stale. + Values in red have changed. + Right-clicking this column will present options to Go To the address, as if the register were a pointer. +* The **Type** column allows you to assign a type to, i.e., create a data unit on, the register. + This has more utility for float types than integers, but it may still help you record what you know about how a register is being used. +* The **Representation** column displays the register's value according to its assigned type, if applicable. + If the type is a pointer, then double-clicking this value will go to the address in the Dynamic Listing. + +If you would like to adjust the list of registers in the table, use the ![select registers](images/select-registers.png) Select Registers button in the local toolbar. +This will present all the registers in Ghidra's processor specification, including those which are just artifacts of Sleigh. +Typically, this is not necessary, since the table will include all registers recognized by both Ghidra and the back-end debugger. +Nevertheless, if you believe a register is missing, it is wise to check this selection. + +### Exercise: Reduce the Mines + +If you have not already reverse engineered the mine placement algorithm, do that now. +Think up a strategy you might employ, by patching a register, to reduce the number of mines placed on the board. +The strategy need not result in a permanent change. +It should only affect the round being set up. +For this exercise, you cannot patch memory, but you may place a breakpoint. +Verify your work by playing the round. + +## Watches + +![The watches window in a call to srand](images/State_WatchesInCallSRand.png) + +The Watches window gives the values of several user-specified Sleigh expressions. +This can provide an alternative to the Registers window when you are really only interested in a couple of registers. +It can also watch values in memory. +Furthermore, when a watch has a memory address, the expression will appear as an option in the Location Tracking menus of the Listing and Memory viewers. +Selecting that option will cause the window to follow that watch as its address changes. + +To add a watch, click the ![add](images/add.png) Add button. +A new entry will appear. +Double-click the left-most cell of the row to set or edit the Sleigh expression. +For starters, try something like `RDI`. +(Conventionally, this is the location for the first parameter on Linux x86-64 systems.) +The context menus for the Listing and Registers windows include a "Watch" action, which adds the current selection to the Watches window. + +The columns are: + +* The **Expression** column is the user-defined Sleigh expression. +* The **Address** column is the address of the resulting value, if applicable. + This may be in `register` space. + Double-clicking this cell will go to the address in the Dynamic Listing. +* The **Symbol** column gives the symbol in a mapped static image closest to or containing the address, if applicable. +* The **Value** column gives the "raw" value of the expression. + If the result is in memory, it displays a byte array; otherwise, it displays an integer. +* The **Type** and **Representation** columns work the same as in the Registers window, except they do *not* save the data unit to the database. + This has more uses than the Registers window. + For example, try `*:30 RDI` and set this to `TerminatedCString`. + Whenever `RDI` is a string pointer, this will display the string up to 30 characters. +* The **Error** column reports any errors in compiling or evaluating the expression. + +## Sleigh Expressions + +Watches and Go-To commands are expressed using Ghidra's Sleigh language. +More precisely, expressions are the sub-language of Sleigh for the right-hand side of assignment statements in semantic sections. +If you already know this language, then there is little more to learn. +Of note, you may use labels from mapped program images in your expression. +For example, to see how far a return address is into `main`, you could use `*:8 RSP - main`. + +For the complete specification, see the Semantic Section in the [Sleigh documentation](../../../Ghidra/Features/Decompiler/src/main/doc/sleigh.xml). + +Sleigh is a bit unconventional in that its operators are typed rather than its variables. +All variables are fix-length bit vectors. +Their sizes are specified in bytes, but they have no other type information. + +### Variables and Constants + +Here are some examples of things you can reference by name: + +* **Register**: `RAX` +* **Label**: `main` +* **Constant**: `1234:8` or `0x42d:8` — the value 1234 encoded as an 8-byte integer + +Registers vary by processor, but any register known to Ghidra's specification is allowed. +(Due to limitations in Sleigh, you cannot refer to the `contextreg` or any of its sub-registers.) +A label may come from any Ghidra program database that is mapped to the current target. +Due to limitations in Sleigh, you cannot specify a label's namespace. +The compiler will search only by name and select arbitrarily from multiple matches. + +### Operators + +Here we will demonstrate each operator by example: + +* **Integer Addition**: `RAX + RCX` +* **Integer Subtraction**: `RAX - RCX` +* **Integer Negation**: `-RAX` +* **Integer Multiplication**: `RAX * RCX` +* **Unsigned Integer Division**: `RAX / RCX` +* **Unsigned Integer Remainder**: `RAX % RCX` +* **Signed Integer Division**: `RAX s/ RCX` +* **Signed Integer Remainder**: `RAX s% RCX` +* **Left Shift**: `RAX << RCX` +* **Unsigned Right Shift**: `RAX >> RCX` +* **Signed Right Shift** `RAX s>> RCX` +* **Integer Comparison**: `RAX == RCX` or `RAX != RCX` +* **Unsigned Integer Comparison**: `RAX < RCX` or `RAX > RCX` or `RAX <= RCX` or `RAX >= RCX` +* **Signed Integer Comparison**: `RAX s< RCX` etc. +* **Float Addition**: `MM0 f+ MM1` +* **Float Subtraction**: `MM0 f- MM1` +* **Float Negation**: `f-MM0` +* **Float Multiplication**: `MM0 f* MM1` +* **Float Division**: `MM0 f/ MM1` +* **Float Absolute Value**: `abs(MM0)` +* **Float Square Root**: `sqrt(MM0)` +* **Float Comparison**: `RAX f== RCX` or `RAX f< RCX` etc. +* **Bitwise And**: `RAX & RCX` +* **Bitwise Or**: `RAX | RCX` +* **Bitwise Xor**: `RAX ^ RCX` +* **Bitwise Not**: `~RAX` +* **Boolean And**: `RAX && RCX` +* **Boolean Or**: `RAX || RCX` +* **Boolean Xor**: `RAX ^^ RCX` +* **Boolean Not**: `!RAX` + +**NOTE**: If the result of your expression is in floating point, you will need to set the type of the watch accordingly. +The "raw" display will render the bit vector as an integer or byte array. +To read memory: + +* **Dereference**: `*:8 RSP` or `*[ram]:8 RSP` + +**NOTE** The `[ram]` part is optional. +On x86, you will rarely if ever specify the space, since there is only one physical RAM space. +The `:8` part specifies the number of bytes to read from memory. +It is also optional, but only if the size can be inferred from the rest of the expression. +To manipulate variable size: + +* **Zero Extension**: `RAX + zext(EBX)` +* **Sign Extension**: `RAX + sext(EBX)` +* **Truncation**: `RAX:4` — Equivalent to `EAX` +* **Truncation**: `AL + RBX(4)` — AL added to the the 5th byte of RBX +* **Bit Extraction**: `RAX[7,8]` — Equivalent to `AL` + +**NOTE**: The second form of truncation drops the least-significant 4 bytes of RBX and takes as many of the remaining bytes (1 in this case) as necessary to match size with AL. + +**NOTE**: Need for these next miscellaneous operators in Watch expressions is rare: + +* **Unsigned Carry**: `carry(RAX,RBX)` +* **Signed Carry**: `scarry(RAX,RBX)` +* **Signed Borrow**: `sborrow(RAX,RBX)` +* **Float NaN**: `nan(MM0)` +* **Convert Integer to Float**: `MM0 + int2float(RAX)` — Context required to infer the float size +* **Convert Float to Integer**: `RAX + trunc(MM0)` — Context required to infer the integer size +* **Convert Float Size**: `MM0 + float2float(MM0_Da)` — Context required to infer the new float size +* **Float Round Ceiling**: `ceil(MM0)` +* **Float Round Floor**: `floor(MM0)` +* **Float Round Nearest**: `round(MM0)` + +### Exercise: Find and Modify the Board Dimensions + +Your task is to set up watches on the width and height of the game board, and then use those watches to change the size of the board. +This may involve some trial and error, and it may not work perfectly due to the way `ncurses` refreshes the screen. +For this exercise, patching memory is expected, and the change should last until the target is terminated. + +**TIP**: If the `termmines` image is subject to ASLR, and you want your watch expression to generalize over re-launches, try using `main` as an anchor for the image base. + +### Exercise: Watch the Cell to be Mined + +Your task is to watch the byte value of the cell that is about to have a mine placed in it. +You will probably want to set a breakpoint somewhere in the mine placement algorithm. +It is okay if the watch does not *always* display the correct byte. +However, it must be correct whenever the program counter is at your breakpoint. +Register allocations are fairly volatile, and as a result, watch expressions that refer to registers are only valid in a limited scope. +The rest of the time, even though the watch may evaluate successfully, its value may have no real meaning. +Check your work by observing the mine bit being ORed in as you step the target. + +**TIP**: Try creating watches for the row and column indices, first. +Then, perhaps referring to the Decompiler, formulate the expression that dereferences that cell in the board. + +## Variable Hovers + +You may have already used these if you completed the exercises in the [Breakpoints](A3-Breakpoints.md) module. +If you hover over a variable in any listing or the Decompiler, the Debugger will attempt to evaluate it and display information about it. +In some cases, evaluation may involve unwinding the stack. +Unwinding proceeds until the Debugger finds an invocation of the function containing or defining the variable. +If unwinding fails, the Debugger may disregard the stack. +In dynamic windows, the Debugger generally disregards the stack. +In static windows, the Debugger still uses dynamic information to unwind the stack and evaluate the variable. +A variable may be any of the following: + +* A register in the listing. + In this case, the hover will report the register's value in the function's frame. +* A local or parameter in the listing. + If the variable is allocated in a register, this behaves the same as hovering that register, except with additional information presented. + If the variable is allocated in stack space, this only succeeds if unwinding succeeds. +* A global variable in the listing. + Unwinding is unnecessary for these. +* A local or parameter in the Decompiler. + This behaves similarly to hovering a variable in the Static Listing. +* A global in the Decompiler. + This behaves similarly to hovering a global variable in the Static Listing. +* A field reference in the Decompiler. + A field reference is essentially a C expression in terms of other variables. + This will evaluate those variables and then evaluate the expression. + +Depending on the particular variable and other circumstances, the hover will contain some combination of these rows: + +* **Name**: The name of the variable +* **Type**: The type of the variable +* **Location**: The static location of the variable, e.g., `Stack[0x4]` +* **Status**: A progress indicator +* **Frame**: If evaluation required unwinding, a description of the frame used for context +* **Storage**: The dynamic, physical location of the variable, e.g., `7fffffffe618` +* **Bytes**: The raw bytes currently stored in the memory allocated to the variable +* **Integer**: The "raw" integer value of the variable, rendered with varyied signedness and radix +* **Value**: The value of the variable, according to its type +* **Instruction**: If the variable points to code, the target instruction +* **Warnings**: Warnings emitted during evaluation +* **Error**: If the value could not be evaluated, an explanation or the exception + +The Name, Type, and Location entries are informational. +They tell you about the variable and its static definition. +The Status, Frame, and Storage entries are also informational, but tell you about the variable's dynamic evaluation. +The Bytes, Integer, Value, and Instruction entries tell you the dynamic value of the variable. +Finally, the Warnings and Error entries provide diagnostics. +If there are many warnings, then the value may not be accurate. diff --git a/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html new file mode 100644 index 0000000000..af2551346b --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html @@ -0,0 +1,376 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ + + + diff --git a/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md new file mode 100644 index 0000000000..d0ee4175f5 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md @@ -0,0 +1,220 @@ + +# Navigation + +This module assumes you know how to launch `termmines` in Ghidra using GDB, and know where to find the basic Debugger GUI components. +It also assumes you are familiar with the concepts of breakpoints and machine state in Ghidra. +If not, please refer to the previous modules. + +This module will address the following features in more depth: + +* The Threads window +* The Stack window +* The Time window + +## Coordinates + +The term *location* is already established in Ghidra to refer to the current program and current address. +There are more elements to a "location" in a dynamic session, so we add additional elements to form the concept of your current *coordinates*. +All of these elements can affect the information displayed in other windows, especially those dealing with machine state. + +* The current *trace*. + A trace database is where all of the Debugger windows (except Targets and Objects) gather their information. + It is the analog of the program database, but for dynamic analysis. +* The current *thread*. + A thread is a unit of execution, either a processor core or a platform-defined virtual thread. + Each thread has its own register context. + In Ghidra, this means each has its own instance of the processor specification's "register" space. +* The current *frame*. + A frame is a call record on the stack. + For example, `main` may call `getc`, which may in turn call `read`. + If you wish to examine the state of `main`, you would navigate 2 frames up the stack. + Because functions often save registers to the stack, the back-end debugger may "unwind" the stack and present the restored registers. +* The current *time*. + In general, time refers to the current snapshot. + Whenever the target becomes suspended, Ghidra creates a snapshot in the current trace. + If you wish to examine the machine state at a previous time, you would navigate to an earlier snapshot. + "Time" may also include steps of emulation, but that is covered in the [Emulation](B2-Emulation.md) module. + +In general, there is a window dedicated to navigating each element of your current coordinates. + +## Threads + +If you do not have an active session already, launch `termmines`. + +![Threads window](images/Navigation_ThreadsInCallRand.png) + +The Threads window displays a list of all threads ever observed in the target. +This includes threads which have been terminated. +Unfortunately, `termmines` is a single-threaded application, so you will only see one row. +If there were more, you could switch to a different thread by double-clicking it in the table. +The columns are: + +* The **Name** column gives the name of the thread. + This may include the back-end debugger's thread id, the target platform's system thread id, and/or the back-end debugger's display text for the thread. +* The **Created** column gives the snapshot when the thread was first observed. +* The **Destroyed** column gives the snapshot when the thread was first observed as terminated. + If this is empty, the thread is still alive. +* The **State** column gives the state of the thread. + This may be one of ALIVE, RUNNING, STOPPED, TERMINATED, or UNKNOWN. +* The **Comment** column allows you to annotate the thread, e.g., if you discover it has a dedicated purpose. +* The **Plot** column plots the threads' life spans in a chart. + +**NOTE**: Most of the time, switching threads will also change what thread is being controlled by the Control actions in the global toolbar. +This may vary subtly, depending on the action and the target. +For example, the ![resume](images/resume.png) Resume button will usually allow all threads to execute; whereas the ![step into](images/stepinto.png) Step Into button will usually step only the current thread. +If the target's thread scheduler cannot schedule your current thread, the behavior is not clearly defined: +It may step a different thread, it may cause the target to block until the thread can be scheduled, or it may do something else. + +When you switch threads, everything that depends on the current thread may change, in particular the Stack window and any machine-state window that involves register values. +The Registers window will display the values for the new thread, the Watches window will re-evaluate all expressions, and the Dynamic Listing and Memory views may seek to different addresses, depending on their location tracking configurations. + +### Trace Tabs + +The Threads window also has a row of tabs at the very top. +This is a list of open traces, i.e., of targets you are debugging. +You can also open old traces to examine a target's machine state *post mortem*. +In general, you should only have one trace open at a time, but there are use cases where you might have multiple. +For example, you could debug both the client and server of a network application. +To switch to another trace, single-click its tab. + +When you switch traces, every Debugger window that depends on the current trace will update. +That's every window except Targets and Objects. +The Breakpoints window may change slightly, depending on its configuration, because it is designed to present all breakpoints in the session. + +## Stack + +Ensure your breakpoint on `rand` is enabled, and resume until you hit it. + +![Stack window](images/Navigation_StackInCallRand.png) + +The stack window displays a list of all the frames for the current thread. +Each thread has its own execution stack, so the frame element is actually dependent on the thread element. +The call records are listed from innermost to outermost. +Here, `main` has called an unnamed function, which has in turn called `rand`. +The columns are: + +* The **Level** column gives the frame number. + This is the number of calls that must be unwound from the current machine state to reach the frame. +* The **PC** column gives the address of the next instruction in that frame. + The PC of frame 0 is the value of the PC register. + Then, the PC of frame 1 is the return address of frame 0, and so on. +* The **Function** column gives the name of the function containing the PC mapped to its static program database, if available. +* The **Comment** column allows you to annotate the frame. + +Double-click the row with the unnamed function (frame 1) to switch to it. +When you switch frames, any machine-state window that involves register values may change. +**NOTE**: Some back-end debuggers do not recover register values when unwinding stack frames. +For those targets, some windows may display stale meaningless values in frames other than 0. + +### Exercise: Name the Function + +Your Dynamic and Static Listings should now be in the unknown function. +If you have not already done so, reverse engineer this function and give it a name. + +## Time + +Re-launch `termmines`, ensure both of your breakpoints at `srand` and `rand` are enabled, and resume until you hit `rand`, then step out. +Now, switch to the Time window. + +![Time window](images/Navigation_TimeAfterCallSRandCallRand.png) + +It displays a list of all the snapshots for the current trace. +In general, every event generates a snapshot. +By default, the most recent snapshot is at the bottom. +The columns are: + +* The **Snap** column numbers each snapshot. + Other windows that indicate life spans refer to these numbers. +* The **Timestamp** column gives the time when the snapshot was created, i.e., the time when the event occurred. +* The **Event Thread** column indicates which thread caused the target to break. + This only applies to snapshots that were created because of an event, which is most. +* The **Schedule** column describes the snapshot in relation to another. + It typically only applies to emulator / scratch snapshots, which are covered later in this course. +* The **Description** column describes the event that generated the snapshot. + +Switch to the snapshot where you hit `srand` (snapshot 2 in our screenshot) by double-clicking it in the table. +This will cause all the machine-state windows to update including the Stack window. +If you try navigating around the Dynamic Listing, you will likely find stale areas indicated by a grey background. + +**NOTE**: Navigating into the past will automatically change the Control mode. +This is to avoid confusion, since you may perform a control action based on the state you see, which is no longer the state of the live target. +Switch back by using the Control mode drop-down button in the global toolbar. +When you select **Control Target** (with or without edits), the Debugger will navigate forward to the latest snapshot. + +### Sparse vs. Full Snapshots + +Regarding the stale areas: the Debugger cannot request the back-end debugger provide machine state from the past. +(Integration with timeless back-end debuggers is not yet supported.) +Remember, the trace is used as a cache, so it will only be populated with the pages and registers that you observed at the time. +Thus, most snapshots are *sparse* snapshots. +The most straightforward way to capture a *full* snapshot is the refresh Refresh button with a broad selection in the Dynamic Listing. +We give the exact steps in the next heading. +To capture registers, ensure you navigate to each thread whose registers you want to capture. + +### Comparing Snapshots + +A common technique for finding the address of a variable is to take and compare snapshots. +Ideally, the snapshots are taken when only the variable you are trying to locate has changed. +Depending on the program, this is not always possible, but the technique can be repeated to rule out many false positives. +The actual variable should show up in the difference every time. + +For example, to find the variable that holds the number of mines, we can try to compare memory before and after parsing the command-line arguments. +Because parsing happens before waiting for user input, we will need to launch (not attach) the target. + +1. Launch `termmines -M 15` in the Debugger. + (See [Getting Started](A1-GettingStarted.md) to review launching with custom parameters.) +1. Ensure your breakpoint at `srand` is enabled. +1. Use **Ctrl-A** to Select All the addresses. +1. Click the refresh Refresh button. + **NOTE**: It is normal for some errors to occur here. + We note a more surgical approach below. +1. Wait a moment for the capture to finish. +1. Optionally, press **Ctrl-Shift-N** to rename the snapshot so you can easily identify it later. + Alternatively, edit the snapshot's Description from the table in the Time window. +1. Press ![resume](images/resume.png) Resume, expecting it to break at `srand`. +1. Capture another full snapshot using Select All and Refresh. +1. Click the ![compare](images/table_relationship.png) Compare button in the Dynamic Listing. +1. In the dialog, select the first snapshot you took. + + ![The compare times dialog](images/Navigation_DialogCompareTimes.png) + +1. Click OK. + +The result is a side-by-side listing of the two snapshots with differences highlighted in orange. +Unlike the Static program comparison tool, this only highlights differences in *byte* values. +You can now use the Next and Previous Difference buttons in the Dynamic Listing to find the variable. + +![The listing with comparison](images/Navigation_CompareTimes.png) + +Notice that you see the command-line specified value 15 on the left, and the default value 10 on the right. +This confirms we have very likely found the variable. + +**NOTE**: Using Select All to create your snapshots can be a bit aggressive. +Instead, we might guess the variable is somewhere in the `.data` section and narrow our search. +For one, including so much memory increases the prevalence of false positives, not to mention the wasted time and disk space. +Second, many of the pages in the memory map are not actually committed, leading to tons of errors trying to capture them all. +Granted, there are use cases where a full snapshot is appropriate. +Some alternatives, which we will cover in the [Memory Map](A6-MemoryMap.md) module, allow you to zero in on the `.data` section: + +* Use the Memory Map window (borrowed from the CodeBrowser) to navigate to the `.data` section. + The Dynamic Listing will stay in sync and consequently capture the contents of the first page. + This specimen has a small enough `.data` section to fit in a single page, but that is generally not the case in practice. +* Use the Regions window to select the addresses in the `.data` section, then click Refresh in the Dynamic Listing. + This will capture the full `.data` section, no matter how many pages. +* Use the lower pane of the Modules window to select the addresses in the `.data` section, then click Refresh in the Dynamic Listing. + This will also capture the full `.data` section. + +### Exercise: Find the Time + +In `termmines`, unlike other Minesweeper clones, your score is not printed until you win. +Your goal is to achieve a remarkable score by patching a variable right before winning. +Considering it is a single-threaded application, take a moment to think about how your time might be measured. +**TIP**: Because you will need to play the game, you will need to attach rather than launch. +Use the snapshot comparison method to locate the variable. +Then place an appropriate breakpoint, win the game, patch the variable, and score 0 seconds! + +If you chose a poor breakpoint or have no breakpoint at all, you should still score better than 3 seconds. +Once you know where the variable is, you can check its XRefs in the Static Listing and devise a better breakpoint. +You have completed this exercise when you can reliably score 0 seconds for games you win. + +**NOTE**: If you are following and/or adapting this course using a different specimen, the timing implementation and threading may be different, but the technique still works. diff --git a/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html new file mode 100644 index 0000000000..7e59e1fecb --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html @@ -0,0 +1,334 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

Memory Map

+

This modules assumes you know how to launch termmines in +Ghidra using GDB, and know where to find the basic Debugger GUI +components. If not, please refer to the previous modules.

+

This module will address the following features in more depth:

+
    +
  • The Regions window
  • +
  • The Modules window
  • +
  • The Static Mappings window
  • +
+

If you do not have an active session, please launch +termmines in the Debugger.

+
+

Regions

+
+ + +
+

The Regions window displays a list of all the memory regions known to +the back-end debugger. In practice, not all targets will report this +information. The nearest analog from the CodeBrowser is the Memory Map +window. Unlike the Memory Map window, the Regions window includes all +regions mapped to external modules, as well as regions allocated for +stacks, heaps, or other system objects. The columns are:

+
    +
  • The Name column gives the name of the region. For +file-backed mappings, this should include the name of the file. It may +or may not include a section name. Typically, the name will include the +start address to avoid collisions.
  • +
  • The Lifespan column gives the span of snapshots +where the region has been observed. Memory maps can change during the +course of execution, and this is how Ghidra records and presents that +history.
  • +
  • The Start column gives the minimum address of the +region.
  • +
  • The End column gives the maximum (inclusive) +address of the region.
  • +
  • The Length column gives the number of bytes in the +region.
  • +
  • The Read, Write, +Execute, and Volatile columns give the +permissions/flags of the region.
  • +
+

Try using the filter and column headers to sift and sort for +interesting regions. Double-click the start or end address to navigate +to them in the Dynamic Listing. Select one or more regions, right-click, +and choose Select Addresses. That should select all the +addresses in those regions in the Dynamic Listing. Used with the Refresh +button, you can surgically capture memory into the current snapshot.

+
+
+

Modules

+
+ + +
+

The Modules window has two panes. The top pane displays a list of all +the modules known to the back-end debugger. The bottom pane +displays a list of all the sections known to the back-end +debugger. In practice, not all targets will report module information. +Fewer targets report section information. The nearest analog to the +bottom panel from the CodeBrowser is (also) the Memory Map window. The +top panel has no real analog; however, the tabs above the Static Listing +pane serve a similar purpose.

+

For a target that reports section information, the bottom panel will +display a lot of the same information as the Regions window. The columns +differ slightly, and the sections panel will not include +stacks, heaps, etc.

+

The module columns are:

+
    +
  • The Base column gives the image base for the +module. This should be the minimum address of the module.
  • +
  • The Max Address column gives the maximum address of +the module.
  • +
  • The Name column gives the (short) name of the +module.
  • +
  • The Module Name column gives the full file path of +the module on target. In some cases, this gives some other +description of the module.
  • +
  • The Lifespan column gives the span of snapshots +where the module has been observed.
  • +
  • The Length column gives the distance between the +base and max address (inclusive). Note that not every address between +base and max is necessarily mapped to the module. ELF headers specify +the load address of each section, so the memory footprint usually has +many gaps.
  • +
+

The section columns are:

+
    +
  • The Start Address gives the minimum address of the +section.
  • +
  • The End Address gives the maximum (inclusive) +address of the section.
  • +
  • The Section Name gives the name of the +section.
  • +
  • The Module Name gives the name of the module +containing the section.
  • +
  • The Length gives the number of bytes contained in +the section.
  • +
+

NOTE: There is no lifespan column for a section. The +lifespan of a section is the lifespan of its containing module.

+

Try using the filter and column headers in each pane to sift and +sort. This is especially helpful for the sections: Type the name of a +module or section. You can also toggle the filter button in the local +toolbar to filter the sections pane to those contained in a selected +module from the top pane. Double-click any address to navigate to it. +Make a selection of modules or sections, right-click, and choose +Select Addresses. Again, combined with the Dynamic +Listing’s Refresh button, you can capture memory surgically.

+
+
+

Optional Exercise: Find the Time Surgically

+

Repeat the “Find the Time” exercise from the previous module, but use +the Modules and Regions windows to form a more surgical selection for +capturing into the snapshots.

+
+
+

Static Mappings

+

The Static Mappings window provides user access to the trace’s static +mapping table. There are two ways to open the window:

+
    +
  1. In the menu: Window → Debugger → Static +Mappings.
  2. +
  3. From the Modules window, click Map Manually in the local +toolbar.
  4. +
+
+ + +
+

Each row in the table is a range of mapped addresses. The columns +are:

+
    +
  • The Dynamic Address column gives the minimum +dynamic address in the mapped range.
  • +
  • The Static Program column gives the Ghidra URL of +the static image.
  • +
  • The Static Address column gives the minimum static +address in the mapped range.
  • +
  • The Length column gives the number of bytes in the +range.
  • +
  • The Shift column gives the difference in address +offsets from static to dynamic.
  • +
  • The Lifespan column gives the span of snapshots for +which this mapped range applies.
  • +
+

The Ghidra Debugger relies heavily on Module information to +synchronize the listings and to correlate its static and dynamic +knowledge. Instead of using the module list directly for this +correlation, it populates a static mapping table. This permits +other sources, including user overrides, to inform the correlation. By +default, whenever a new program is opened and/or imported, the Debugger +will attempt to match it to a module in the trace and map it. +Furthermore, when you navigate to an address in a module that it is not +yet mapped to a program, it will search your project for a match and +open it automatically. You may notice the two address columns, as well +as the shift column. This illustrates that the Debugger can recognize +and cope with module relocation, especially from ASLR.

+

There are many ways to manually override the mappings:

+
    +
  • From the Modules window, select one or more modules, and choose from +the Map Module actions. Selecting a single module at a +time, it is possible to surgically map each to a chosen program.
  • +
  • From the Sections window, select one or more sections, and choose +from the Map Section actions. This is certainly more +tedious and atypical, but it allows the surgical mapping of each section +to a chosen memory block from among your open programs.
  • +
  • From the Regions window, select one or more regions, and choose from +the Map Region actions.
  • +
  • Click the Map Identically button in the Modules window toolbar.
  • +
  • Use the Add and Remove buttons in the Static Mappings window +toolbar.
  • +
+

These methods are not described in detail here. For more information, +hover over the relevant actions and press F1 for +help.

+
+
+

Moving Knowledge from Dynamic to Static

+

There are occasions when it is necessary or convenient to transfer +data or markup from the dynamic session into a static program database. +For example, suppose during experimentation, you have placed a bunch of +code units in the Dynamic Listing. You might have done this because the +memory is uninitialized in the Static Listing, and you preferred some +trial and error in the Dynamic Listing, where the memory is populated. +In this case, you would want to copy those code units (though not +necessarily the byte values) from the Dynamic Listing into the Static +Listing. After selecting the units to copy, from the menus, you would +use Debugger → Copy Into Current Program.

+

In another example, you might not have an on-disk image for a module, +but you would still like to perform static analysis on that module. In +this case, you would want to copy everything within that module from the +dynamic session into a program database. After selecting the addresses +in that module, from the menus, you would use Debugger → Copy +Into New Program.

+

For demonstration, we will walk through this second case, pretending +we cannot load libncurses from disk:

+
    +
  1. In the top pane of the Modules window, right-click +libncurses and choose Select Addresses. +(Do not click Import From File System, since we are +pretending you cannot.)

  2. +
  3. Change focus to the Dynamic Listing.

  4. +
  5. In the global menu, choose Debugger → Copy Into New +Program.

    +
    + + +
  6. +
  7. Keep Destination set to “New Program.”

  8. +
  9. Ensure “Read live target’s memory” is checked. This will spare +you from having to create a full snapshot manually.

  10. +
  11. Do not check “Use overlays where blocks already +present.” It should not have any effect for a new program, +anyway.

  12. +
  13. It is probably best to include everything, though “Bytes” is the +bare minimum.

  14. +
  15. The table displays the copy plan. For a new program, +this will copy with an identical mapping of addresses, which is probably +the best plan, since the target system has already applied fixups. Do +not change any addresses, lest your corrupt references in the +copy.

  16. +
  17. Click Copy.

  18. +
  19. When prompted, name the program libncurses.

  20. +
  21. You may need to click the termmines tab in the +Static Listing to get the UI to completely update.

  22. +
  23. Click back over to libncurses and save the program. +If you are prompted to analyze, go ahead.

  24. +
+

Undoubtedly, we would like to map that new program into our dynamic +session.

+
    +
  1. Again, in the top pane of the Modules window, right-click +libncurses and choose Select +Addresses.
  2. +
  3. Ensure the cursor in the Static Listing is at the minimum address of +libncurses.
  4. +
  5. In the Static Mappings window, click Add in the toolbar.
  6. +
  7. Click OK.
  8. +
+

NOTE: This should be done by choosing Map to +libncurses in the right-click menu, but a bug seems to stifle +that, currently.

+
+
+

Exercise: Export and Map ncurses

+

Repeat this technique for the “system-supplied DSO” module. In +practice, there is no real reason to do this, but this particular module +prevents you from using Import From File System.

+
+
+

Exercise: Cheat Like the Devs

+

This concludes the portion on the basic features of the Ghidra +Debugger. Now, let’s put your new knowledge to good use!

+

The developers left a cheat code in termmines. Your goal +is to figure out the cheat code, determine what it does, and describe +how it is implemented. If you have already stumbled upon this cheat, you +must still explain how it is implemented.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md new file mode 100644 index 0000000000..1263740ebb --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md @@ -0,0 +1,190 @@ + +# Memory Map + +This modules assumes you know how to launch `termmines` in Ghidra using GDB, and know where to find the basic Debugger GUI components. +If not, please refer to the previous modules. + +This module will address the following features in more depth: + +* The Regions window +* The Modules window +* The Static Mappings window + +If you do not have an active session, please launch `termmines` in the Debugger. + +## Regions + +![Regions window after launch](images/MemoryMap_RegionsAfterLaunch.png) + +The Regions window displays a list of all the memory regions known to the back-end debugger. +In practice, not all targets will report this information. +The nearest analog from the CodeBrowser is the Memory Map window. +Unlike the Memory Map window, the Regions window includes all regions mapped to external modules, as well as regions allocated for stacks, heaps, or other system objects. +The columns are: + +* The **Name** column gives the name of the region. + For file-backed mappings, this should include the name of the file. + It may or may not include a section name. + Typically, the name will include the start address to avoid collisions. +* The **Lifespan** column gives the span of snapshots where the region has been observed. + Memory maps can change during the course of execution, and this is how Ghidra records and presents that history. +* The **Start** column gives the minimum address of the region. +* The **End** column gives the maximum (inclusive) address of the region. +* The **Length** column gives the number of bytes in the region. +* The **Read**, **Write**, **Execute**, and **Volatile** columns give the permissions/flags of the region. + +Try using the filter and column headers to sift and sort for interesting regions. +Double-click the start or end address to navigate to them in the Dynamic Listing. +Select one or more regions, right-click, and choose **Select Addresses**. +That should select all the addresses in those regions in the Dynamic Listing. +Used with the Refresh button, you can surgically capture memory into the current snapshot. + +## Modules + +![Modules window after launch](images/MemoryMap_ModulesAfterLaunch.png) + +The Modules window has two panes. +The top pane displays a list of all the *modules* known to the back-end debugger. +The bottom pane displays a list of all the *sections* known to the back-end debugger. +In practice, not all targets will report module information. +Fewer targets report section information. +The nearest analog to the bottom panel from the CodeBrowser is (also) the Memory Map window. +The top panel has no real analog; however, the tabs above the Static Listing pane serve a similar purpose. + +For a target that reports section information, the bottom panel will display a lot of the same information as the Regions window. +The columns differ slightly, and the sections panel will *not* include stacks, heaps, etc. + +The module columns are: + +* The **Base** column gives the image base for the module. + This should be the minimum address of the module. +* The **Max Address** column gives the maximum address of the module. +* The **Name** column gives the (short) name of the module. +* The **Module Name** column gives the full file path of the module *on target*. + In some cases, this gives some other description of the module. +* The **Lifespan** column gives the span of snapshots where the module has been observed. +* The **Length** column gives the distance between the base and max address (inclusive). + Note that not every address between base and max is necessarily mapped to the module. + ELF headers specify the load address of each section, so the memory footprint usually has many gaps. + +The section columns are: + +* The **Start Address** gives the minimum address of the section. +* The **End Address** gives the maximum (inclusive) address of the section. +* The **Section Name** gives the name of the section. +* The **Module Name** gives the name of the module containing the section. +* The **Length** gives the number of bytes contained in the section. + +**NOTE**: There is no lifespan column for a section. +The lifespan of a section is the lifespan of its containing module. + +Try using the filter and column headers in each pane to sift and sort. +This is especially helpful for the sections: Type the name of a module or section. +You can also toggle the filter button in the local toolbar to filter the sections pane to those contained in a selected module from the top pane. +Double-click any address to navigate to it. +Make a selection of modules or sections, right-click, and choose **Select Addresses**. +Again, combined with the Dynamic Listing's Refresh button, you can capture memory surgically. + +## Optional Exercise: Find the Time Surgically + +Repeat the "Find the Time" exercise from the previous module, but use the Modules and Regions windows to form a more surgical selection for capturing into the snapshots. + +## Static Mappings + +The Static Mappings window provides user access to the trace's static mapping table. +There are two ways to open the window: + +1. In the menu: **Window → Debugger → Static Mappings**. +1. From the Modules window, click Map Manually in the local toolbar. + +![Static mappings window after launch](images/MemoryMap_StaticMappingAfterLaunch.png) + +Each row in the table is a range of mapped addresses. +The columns are: + +* The **Dynamic Address** column gives the minimum dynamic address in the mapped range. +* The **Static Program** column gives the Ghidra URL of the static image. +* The **Static Address** column gives the minimum static address in the mapped range. +* The **Length** column gives the number of bytes in the range. +* The **Shift** column gives the difference in address offsets from static to dynamic. +* The **Lifespan** column gives the span of snapshots for which this mapped range applies. + +The Ghidra Debugger relies heavily on Module information to synchronize the listings and to correlate its static and dynamic knowledge. +Instead of using the module list directly for this correlation, it populates a *static mapping* table. +This permits other sources, including user overrides, to inform the correlation. +By default, whenever a new program is opened and/or imported, the Debugger will attempt to match it to a module in the trace and map it. +Furthermore, when you navigate to an address in a module that it is not yet mapped to a program, it will search your project for a match and open it automatically. +You may notice the two address columns, as well as the shift column. +This illustrates that the Debugger can recognize and cope with module relocation, especially from ASLR. + +There are many ways to manually override the mappings: + +* From the Modules window, select one or more modules, and choose from the **Map Module** actions. + Selecting a single module at a time, it is possible to surgically map each to a chosen program. +* From the Sections window, select one or more sections, and choose from the **Map Section** actions. + This is certainly more tedious and atypical, but it allows the surgical mapping of each section to a chosen memory block from among your open programs. +* From the Regions window, select one or more regions, and choose from the **Map Region** actions. +* Click the Map Identically button in the Modules window toolbar. +* Use the Add and Remove buttons in the Static Mappings window toolbar. + +These methods are not described in detail here. +For more information, hover over the relevant actions and press **F1** for help. + +## Moving Knowledge from Dynamic to Static + +There are occasions when it is necessary or convenient to transfer data or markup from the dynamic session into a static program database. +For example, suppose during experimentation, you have placed a bunch of code units in the Dynamic Listing. +You might have done this because the memory is uninitialized in the Static Listing, and you preferred some trial and error in the Dynamic Listing, where the memory is populated. +In this case, you would want to copy those code units (though not necessarily the byte values) from the Dynamic Listing into the Static Listing. +After selecting the units to copy, from the menus, you would use **Debugger → Copy Into Current Program**. + +In another example, you might not have an on-disk image for a module, but you would still like to perform static analysis on that module. +In this case, you would want to copy everything within that module from the dynamic session into a program database. +After selecting the addresses in that module, from the menus, you would use **Debugger → Copy Into New Program**. + +For demonstration, we will walk through this second case, pretending we cannot load `libncurses` from disk: + +1. In the top pane of the Modules window, right-click `libncurses` and choose **Select Addresses**. + (Do not click **Import From File System**, since we are pretending you cannot.) +1. Change focus to the Dynamic Listing. +1. In the global menu, choose **Debugger → Copy Into New Program**. + + ![Copy dialog for ncurses](images/MemoryMap_CopyNcursesInto.png) + +1. Keep Destination set to "New Program." +1. Ensure "Read live target's memory" is checked. + This will spare you from having to create a full snapshot manually. +1. Do *not* check "Use overlays where blocks already present." + It should not have any effect for a new program, anyway. +1. It is probably best to include everything, though "Bytes" is the bare minimum. +1. The table displays the *copy plan*. + For a new program, this will copy with an identical mapping of addresses, which is probably the best plan, since the target system has already applied fixups. + Do not change any addresses, lest your corrupt references in the copy. +1. Click Copy. +1. When prompted, name the program `libncurses`. +1. You may need to click the `termmines` tab in the Static Listing to get the UI to completely update. +1. Click back over to `libncurses` and save the program. + If you are prompted to analyze, go ahead. + +Undoubtedly, we would like to map that new program into our dynamic session. + +1. Again, in the top pane of the Modules window, right-click `libncurses` and choose **Select Addresses**. +1. Ensure the cursor in the Static Listing is at the minimum address of `libncurses`. +1. In the Static Mappings window, click Add in the toolbar. +1. Click OK. + +**NOTE**: This should be done by choosing **Map to libncurses** in the right-click menu, but a bug seems to stifle that, currently. + +## Exercise: Export and Map `ncurses` + +Repeat this technique for the "system-supplied DSO" module. +In practice, there is no real reason to do this, but this particular module prevents you from using **Import From File System**. + +## Exercise: Cheat Like the Devs + +This concludes the portion on the basic features of the Ghidra Debugger. +Now, let's put your new knowledge to good use! + +The developers left a cheat code in `termmines`. +Your goal is to figure out the cheat code, determine what it does, and describe how it is implemented. +If you have already stumbled upon this cheat, you must still explain how it is implemented. diff --git a/GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.html b/GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.html new file mode 100644 index 0000000000..142317173f --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.html @@ -0,0 +1,352 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

Remote Targets

+

This is the first module of the Advanced part of this course. It +assumes you have completed the Beginner portion. At the very least, you +should complete Getting Started and +A Tour of the Debugger UI first.

+
+

Module Mapping Caveats

+

Beware! Many of the conveniences in Ghidra assume that the target is +running from the same file system as Ghidra, which will not be the case +when the target is remote. Be sure your current project is populated +only with programs imported from the target’s file system. Additionally, +if prompted to import something new, be sure to redirect to the remote +file system, because the dialog will default to the path on the local +file system.

+
+
+

Variation in Configuration

+

There are a number of configurations for remote debugging with many +moving parts. Some of those parts are contributed by Ghidra’s Debugger, +some are not. Depending on your particular target and platform, there +may be several options available to you. Consider a remote Linux target +in user space. While this list is not exhaustive, some options are:

+
    +
  • Use gdbserver
  • +
  • Use SSH
  • +
  • Use GADP
  • +
  • Use a pty
  • +
+

Generally, for each of these options it boils down to which +components will be colocated with the target and which will be colocated +with Ghidra.

+
+
+

Using gdbserver

+

In this configuration, Ghidra and GDB will be located in the user’s +local environment, while gdbserver and the specimen will be +located in the target environment. The procedure follows directly from +GDB’s manual, but with some Ghidra-specific steps. First, prepare the +target, which for demonstration purposes has the IP address +10.0.0.1:

+
gdbserver 10.0.0.1:12345 termmines
+

Then, connect from Ghidra using GDB:

+
    +
  1. From the Targets window, click Connect, select “gdb,” and click +Connect.

  2. +
  3. In the Interpreter, do as you would in GDB:

    +
    target remote 10.0.0.1:12345
  4. +
+

The target should now be added to the Debugger session, and things +should work as usual.

+
+
+

Using SSH

+

In this configuration, only Ghidra is required to be in the user’s +local environment, while sshd, gdb and the +specimen will be located in the target environment. +NOTE: The full gdb, not just +gdbserver, must be installed on the target system.

+
    +
  1. From the Targets window, click Connect, and select “gdb via +SSH.”

    +
    + + +
  2. +
  3. Set “GDB launch command” to the path of gdb on the remote +file system.

  4. +
  5. Leave “Use existing session via new-ui” unchecked.

  6. +
  7. Set “SSH hostname” to the name or IP address of the target +system.

  8. +
  9. If you are not using the standard SSH port, set “SSH TCP port” +accordingly.

  10. +
  11. Set “SSH username” to your username on the target +system.

  12. +
  13. Set “Open SSH config file” to the client config file on the +local file system.

  14. +
  15. If the remote uses DOS line endings (unlikely for a Linux +remote), then check the “Use DOS line endings” box.

  16. +
  17. Click Connect.

  18. +
  19. If prompted, enter your SSH credentials.

  20. +
+

If everything goes well, the Objects window should populate, and you +should get an Interpreter window presenting the remote GDB CLI. You may +use it in the usual manner to launch your target. Alternatively, in the +Objects window, click the Launch or Quick Launch button to launch the +current program. If prompted for the target command line, remember you +must provide the path on the remote file system.

+

The target should now be added to the Debugger session, and things +should work as usual.

+
+
+

Using GADP

+

GADP (Ghidra Asynchronous Debugging Protocol) is a protocol +contributed by the Ghidra Debugger. It allows any of Ghidra’s back-end +connectors to be deployed as an agent. The agent connects to +the back-end as usual, but then opens a TCP socket and waits for Ghidra +to connect.

+
+

Using GADP Locally

+

When debugging locally, the UI may offer “GADP” as an alternative to +“IN-VM”. If the back-end connector tends to crash Ghidra, you may prefer +to select GADP. Typically, GADP will slow things down as information is +marshalled across a TCP connection. However, if the connector crashes, +Ghidra will simply drop the connection, whereas the IN-VM connector +would crash Ghidra, too.

+
+
+

Using GADP Remotely

+

In this configuration, only Ghidra is required to be in the user’s +local environment. The target environment must have gdb, +java, and some portion of Ghidra installed.

+

If you can install Ghidra on the remote system, there is a script to +launch the headless agent:

+
cd /path/to/ghidra
+support/gdbGADPServerRun -h
+

This should print help for you. Typically, you can just run the agent +without any extra command-line arguments:

+
support/gdbGADPServerRun
+

If not, then you probably just need to tell it where you installed +gdb:

+
support/gdbGADPServerRun --agent-args -g /path/to/bin/gdb
+

If you cannot install Ghidra, or do not want to, then you can build a +standalone jar. You will still need to install the JRE on the target, +likely the same version as recommended for Ghidra.

+

Refer to the root README file to get started with a build from +source. You may stop short of the gradle buildGhidra step, +though it may be helpful to avoid trouble. Then, build the executable +jar for the GDB agent:

+
gradle Debugger-agent-gdb:nodepJar
+

This will create the file +Ghidra/Debug/Debugger-agent-gdb/build/libs/Debugger-agent-gdb-nodep.jar. +Copy the file to the target system. Now, run it:

+
java -jar Debugger-agent-gdb-nodep.jar -h
+

Once the agent is running, it should print its port number, and you +can connect from Ghidra. For demonstration, we will assume it is +listening at 10.0.0.2 on port 15432.

+
    +
  1. From the Targets window, click Connect.
  2. +
  3. Select “Ghidra debug agent (GADP)” from the drop-down.
  4. +
  5. For “Agent network address”, enter 10.0.0.2.
  6. +
  7. For “Agent TCP port”, enter 15432.
  8. +
  9. Click Connect.
  10. +
+

That should complete the connection. You should see Objects populated +and get an Interpreter window. You can then proceed to launch or attach +a target in that connection using either the Objects window or the +Interpreter window.

+
+
+
+

Using a pty (pseudo-terminal)

+

If your copy of GDB supports the new-ui command (all +versions 8.0 and up should), then you may use any of the GDB connectors +(including the local IN-VM one) to join Ghidra to an existing GDB +session:

+
    +
  1. Run gdb from a proper terminal:

    +
    gdb termmines
  2. +
  3. If needed, do whatever you would like to do before connecting +with Ghidra.

  4. +
  5. In Ghidra, from the Targets window, click Connect, and select +gdb.

  6. +
  7. Check the “Use existing session via new-ui” box.

  8. +
  9. Click Connect.

  10. +
  11. You will be prompted with the name of a pseudo terminal, e.g., +/dev/pts/1.

  12. +
  13. Back in gdb:

    +
    new-ui /dev/pts/1
  14. +
+

That should complete the connection. If there was a target active in +the existing GDB session, Ghidra should recognize it, and things should +work as usual. If there was not a target, then you should at least see +Objects populated and get an Interpreter window. You can then proceed to +launch or attach a target in that connection using either the Objects +window or the Interpreter window.

+

This same checkbox is available in the “gdb via SSH” connector. Note +that the remote system must support pseudo terminals, and the name of +the pseudo terminal is from the remote file system.

+

To activate this configuration in the standalone GADP agent, use the +-x option:

+
java -jar Debugger-agent-gdb-node.jar --agent-args -x
+
+
+

Rube Goldberg Configurations

+

While you should always prefer the simpler configuration, it is +possible to combine components to meet a variety of needs. For example, +to debug a native Android target from Windows, you could run Ghidra on +Windows, connect it to GDB via SSH to a Linux virtual machine, e.g., +WSL2, and then connect that to gdbserver running in an +Android emulator.

+
+
+

Exercise: Debug your Friend’s termmines

+

If you are in a classroom setting, pair up. Otherwise, play both +roles, preferably using separate machines for Ghidra and the target. +Using either gdbserver, gdb via SSH, or the GDB agent, +debug termmines. One of you should prepare the target +environment. The other should connect to it and launch the specimen. +Then trade roles, choose a different configuration, and do it again.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.md b/GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.md new file mode 100644 index 0000000000..4577f5c150 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B1-RemoteTargets.md @@ -0,0 +1,195 @@ + +# Remote Targets + +This is the first module of the Advanced part of this course. +It assumes you have completed the Beginner portion. +At the very least, you should complete [Getting Started](A1-GettingStarted.md) and [A Tour of the Debugger UI](A2-UITour.md) first. + +## Module Mapping Caveats + +Beware! +Many of the conveniences in Ghidra assume that the target is running from the same file system as Ghidra, which will not be the case when the target is remote. +Be sure your current project is populated only with programs imported from the target's file system. +Additionally, if prompted to import something new, be sure to redirect to the remote file system, because the dialog will default to the path on the local file system. + +## Variation in Configuration + +There are a number of configurations for remote debugging with many moving parts. +Some of those parts are contributed by Ghidra's Debugger, some are not. +Depending on your particular target and platform, there may be several options available to you. +Consider a remote Linux target in user space. +While this list is not exhaustive, some options are: + + * Use `gdbserver` + * Use SSH + * Use GADP + * Use a pty + +Generally, for each of these options it boils down to which components will be colocated with the target and which will be colocated with Ghidra. + +## Using `gdbserver` + +In this configuration, Ghidra and GDB will be located in the user's local environment, while `gdbserver` and the specimen will be located in the target environment. +The procedure follows directly from GDB's manual, but with some Ghidra-specific steps. +First, prepare the target, which for demonstration purposes has the IP address 10.0.0.1: + +```bash +gdbserver 10.0.0.1:12345 termmines +``` + +Then, connect from Ghidra using GDB: + +1. From the Targets window, click Connect, select "gdb," and click Connect. +1. In the Interpreter, do as you would in GDB: + + ```gdb + target remote 10.0.0.1:12345 + ``` + +The target should now be added to the Debugger session, and things should work as usual. + +## Using SSH + +In this configuration, only Ghidra is required to be in the user's local environment, while `sshd`, `gdb` and the specimen will be located in the target environment. +**NOTE**: The full `gdb`, not just `gdbserver`, must be installed on the target system. + +1. From the Targets window, click Connect, and select "gdb via SSH." + + ![Connect dialog for gdb via SSH](images/RemoteTargets_GdbOverSsh.png) + +1. Set "GDB launch command" to the path of gdb *on the remote file system*. +1. Leave "Use existing session via new-ui" unchecked. +1. Set "SSH hostname" to the name or IP address of the target system. +1. If you are not using the standard SSH port, set "SSH TCP port" accordingly. +1. Set "SSH username" to your username on the target system. +1. Set "Open SSH config file" to the client config file *on the local file system*. +1. If the remote uses DOS line endings (unlikely for a Linux remote), then check the "Use DOS line endings" box. +1. Click Connect. +1. If prompted, enter your SSH credentials. + +If everything goes well, the Objects window should populate, and you should get an Interpreter window presenting the remote GDB CLI. +You may use it in the usual manner to launch your target. +Alternatively, in the Objects window, click the Launch or Quick Launch button to launch the current program. +If prompted for the target command line, remember you must provide the path *on the remote file system*. + +The target should now be added to the Debugger session, and things should work as usual. + +## Using GADP + +GADP (Ghidra Asynchronous Debugging Protocol) is a protocol contributed by the Ghidra Debugger. +It allows any of Ghidra's back-end connectors to be deployed as an *agent*. +The agent connects to the back-end as usual, but then opens a TCP socket and waits for Ghidra to connect. + +### Using GADP Locally + +When debugging locally, the UI may offer "GADP" as an alternative to "IN-VM". +If the back-end connector tends to crash Ghidra, you may prefer to select GADP. +Typically, GADP will slow things down as information is marshalled across a TCP connection. +However, if the connector crashes, Ghidra will simply drop the connection, whereas the IN-VM connector would crash Ghidra, too. + +### Using GADP Remotely + +In this configuration, only Ghidra is required to be in the user's local environment. +The target environment must have `gdb`, `java`, and some portion of Ghidra installed. + +If you can install Ghidra on the remote system, there is a script to launch the headless agent: + +```bash +cd /path/to/ghidra +support/gdbGADPServerRun -h +``` + +This should print help for you. +Typically, you can just run the agent without any extra command-line arguments: + +```bash +support/gdbGADPServerRun +``` + +If not, then you probably just need to tell it where you installed `gdb`: + +```bash +support/gdbGADPServerRun --agent-args -g /path/to/bin/gdb +``` + +If you cannot install Ghidra, or do not want to, then you can build a standalone jar. +You will still need to install the JRE on the target, likely the same version as recommended for Ghidra. + +Refer to the root README file to get started with a build from source. +You may stop short of the `gradle buildGhidra` step, though it may be helpful to avoid trouble. +Then, build the executable jar for the GDB agent: + +```bash +gradle Debugger-agent-gdb:nodepJar +``` + +This will create the file `Ghidra/Debug/Debugger-agent-gdb/build/libs/Debugger-agent-gdb-nodep.jar`. +Copy the file to the target system. +Now, run it: + +```bash +java -jar Debugger-agent-gdb-nodep.jar -h +``` + +Once the agent is running, it should print its port number, and you can connect from Ghidra. +For demonstration, we will assume it is listening at 10.0.0.2 on port 15432. + +1. From the Targets window, click Connect. +1. Select "Ghidra debug agent (GADP)" from the drop-down. +1. For "Agent network address", enter 10.0.0.2. +1. For "Agent TCP port", enter 15432. +1. Click Connect. + +That should complete the connection. +You should see Objects populated and get an Interpreter window. +You can then proceed to launch or attach a target in that connection using either the Objects window or +the Interpreter window. + +## Using a pty (pseudo-terminal) + +If your copy of GDB supports the `new-ui` command (all versions 8.0 and up should), then you may use any of the GDB connectors (including the local IN-VM one) to join Ghidra to an existing GDB session: + +1. Run `gdb` from a proper terminal: + + ```bash + gdb termmines + ``` + +1. If needed, do whatever you would like to do before connecting with Ghidra. +1. In Ghidra, from the Targets window, click Connect, and select `gdb`. +1. Check the "Use existing session via new-ui" box. +1. Click Connect. +1. You will be prompted with the name of a pseudo terminal, e.g., `/dev/pts/1`. +1. Back in `gdb`: + + ```gdb + new-ui /dev/pts/1 + ``` + +That should complete the connection. +If there was a target active in the existing GDB session, Ghidra should recognize it, and things should work as usual. +If there was not a target, then you should at least see Objects populated and get an Interpreter window. +You can then proceed to launch or attach a target in that connection using either the Objects window or the Interpreter window. + +This same checkbox is available in the "gdb via SSH" connector. +Note that the remote system must support pseudo terminals, and the name of the pseudo terminal is from the *remote file system*. + +To activate this configuration in the standalone GADP agent, use the `-x` option: + +```bash +java -jar Debugger-agent-gdb-node.jar --agent-args -x +``` + +## Rube Goldberg Configurations + +While you should always prefer the simpler configuration, it is possible to combine components to meet a variety of needs. +For example, to debug a native Android target from Windows, you could run Ghidra on Windows, connect it to GDB via SSH to a Linux virtual machine, e.g., WSL2, and then connect that to `gdbserver` running in an Android emulator. + +## Exercise: Debug your Friend's `termmines` + +If you are in a classroom setting, pair up. +Otherwise, play both roles, preferably using separate machines for Ghidra and the target. +Using either `gdbserver`, gdb via SSH, or the GDB agent, debug `termmines`. +One of you should prepare the target environment. +The other should connect to it and launch the specimen. +Then trade roles, choose a different configuration, and do it again. diff --git a/GhidraDocs/GhidraClass/Debugger/B2-Emulation.html b/GhidraDocs/GhidraClass/Debugger/B2-Emulation.html new file mode 100644 index 0000000000..2c7231c9ba --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B2-Emulation.html @@ -0,0 +1,823 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

Emulation

+

Emulation is a bit of a loaded term, unfortunately. Most of the +confusion deals with the scope of the emulated target. Do you just need +to step through a few instructions, or a whole function? Do you need to +include external modules? Do you need to simulate system calls? Do you +need to simulate connected devices? Most of Ghidra’s GUI-accessible +emulation features focus on the smaller scope, though it does provide +programming interfaces for advanced users to extend that scope. Those +more advanced features are covered in Modeling.

+

This module assumes you have completed the Beginner portion of this +course.

+
+

P-code Emulation and Caveats

+

Ghidra’s emulator uses the same p-code as is used by the decompiler. +P-code describes the semantics of each instruction by constructing a +sequence of p-code operations. The p-code specifications for most of +Ghidra’s languages were designed with decompilation, not necessarily +emulation, in mind. While in most cases, p-code for decompilation +suffices for emulation, there are cases where design decisions were +made, e.g., to keep decompiler output simple, that makes them less +suitable for emulation. This may manifest, e.g., in an excess of +user-defined p-code ops, or userops. The Modeling module discusses ways to implement +or stub those userops in the emulator. Some processor modules provide +those stubs “out of the box.” If the emulator ever halts with an +“unimplemented userop” message, then you have run into this problem.

+
+
+

Use Cases

+

As already hinted at the start of this module, there are several use +cases for emulation, and Ghidra tries to meet these cases by integrating +emulation into the Debugger UI. Some of the use cases accessible from +the UI are:

+
    +
  • Extrapolation and interpolation of a live target.
  • +
  • Emulation of a program image.
  • +
  • P-code semantics debugging.
  • +
+

We will explore each case with a tutorial and exercise.

+
+
+

Extrapolation and Interpolation

+

This is perhaps the easiest use case, assuming you already have +started a live session. Extrapolation is predicting execution +of the target into the future, without allowing the actual target to +execute. Instead, we will allow an emulator to step forward, while +reading its initial state from the live target. This allows you, e.g., +to experiment with various patches, or to force execution down a certain +path. If you devise a patch, you can then apply it the live target and +allow it to execute for real. Interpolation is similar, but +from a snapshot that is in the past. It can help answer the question, +“How did I get here?” It is more limited, because missing state for +snapshots in the past cannot be recovered.

+

In this tutorial, we will examine the command-line argument parser in +termmines.

+
    +
  1. Launch termmines using GDB in the Ghidra Debugger.
  2. +
  3. If you have not already, do a bit of static analysis to identify the +argument parsing function. It should be the first function called by +main.
  4. +
  5. Use a breakpoint to interrupt the live target when it enters this +function.
  6. +
  7. Change the “Control mode” drop-down to “Control Emulator.”
  8. +
  9. Click step into button Step +Into to step the emulator forward.
  10. +
  11. Click skip over button Skip +Over and step back button Step +Back to experiment with different execution paths.
  12. +
+

About those two new actions:

+
    +
  • skip over button +Skip Over: Step the current thread by skipping one +instruction.
  • +
  • step back button +Step Back: Step the current thread backward one +instruction, or undo an emulated skip or patch.
  • +
+

Try to get the program counter onto the call to exit(-1) +using only those three step buttons.

+

You should see things behave more or less the same as they would if +it were the live target. The main exceptions are the Objects and +Interpreter windows. Those always display the state of the live target, +as they are unaware of the emulator, and their sole purpose is to +interact with the live target. You can make changes to the emulator’s +machine state, set breakpoints, etc., just as you would in “Control +Target” mode. NOTE: You may see Ghidra interact with +the target, despite being in “Control Emulator” mode, because Ghidra +lazily initializes the emulator’s state. If the emulated target reads a +variable that Ghidra has not yet captured into the current snapshot, +Ghidra will read that variable from the live target, capture it, and +provide its value to the emulator.

+
+

Stepping Schedules

+

If you had not noticed before, the subtitle of the Threads window +gives the current snapshot number. If you have stepped in the emulator, +it will also contain the sequence of steps emulated. Recall the +time element of the Debugger’s “coordinates.” (See the Navigation module if you need a +refresher.) The time element, called the schedule, consists of +both the current snapshot and the sequence of steps to emulate. The +subtitle displays that schedule. If you have done any patching of the +emulator’s state, you may notice some more complicated “steps” in the +schedule. The syntax is:

+
    +
  • ScheduleSnapshot [ : [ +Step ( ; Step ) * ] [ . +Step ( ; Step ) * ] ]
  • +
  • Step → [ t Id - ] ( +Tick | Skip | Patch )
  • +
  • TickCount
  • +
  • Skips Count
  • +
  • Patch{ SleighStmt +}
  • +
+

In essence, the schedule is the starting snapshot, followed by zero +or more machine-instruction steps followed by zero or more +p-code-operation steps. Each step is optionally preceded by a thread id. +If omitted, the thread id is the same as the previous step. If the first +step has no thread id, it applies to the snapshot’s event thread. A +plain number indicates the number of instructions or operations to +execute. An s prefix indicates skip instead of execute. +Curly braces specify a patch using a single Sleigh statement. Here are +some examples:

+
    +
  • 0 — The first snapshot in the trace.
  • +
  • 3 — Snapshot number 3.
  • +
  • 3:10 — Emulate 10 machine instructions on the event +thread, starting at snapshot 3.
  • +
  • 3:t1-10 — Same as above, but on the second thread +rather than the event thread.
  • +
  • 3:10;t1-10 — Start at snapshot 3. Step the event thread +10 instructions. Step the second thread 10 instructions.
  • +
  • 3:10.4 — Start at snapshot 3. Step the event thread 10 +instructions then 4 p-code ops.
  • +
  • 3:{RAX=0x1234};10 — Start at snapshot 3. Override RAX +with 0x1234, then step 10 instructions.
  • +
+

The explication of schedules allows Ghidra to cache emulated machine +states and manage its emulators internally. You can have Ghidra recall +or generate the machine state for any schedule by pressing +Ctrl-G or using Debugger → Go To Time +in the menus.

+

Assuming you got the program counter onto exit(-1) +earlier:

+
    +
  1. Write down the current schedule.
  2. +
  3. Change back to “Control Target” mode. Ghidra will navigate back to +the current snapshot, so PC will match the live target.
  4. +
  5. Press Ctrl-G and type or paste the schedule in, and +click OK. The program counter should be restored to +exit(-1).
  6. +
+

NOTE: The thread IDs used in schedules are internal +to the current trace database. Most likely, they do not +correspond to the thread IDs assigned by the back-end debugger.

+
+
+

Exercise: Demonstrate the Cell Numbers

+

The board setup routine in termmines first places mines +randomly and then, for each empty cell, counts the number of neighboring +cells with mines. In this exercise, you will use extrapolation to +experiment and devise a patch to demonstrate all possible counts of +neighboring mines:

+
    +
  1. Run termmines in a proper terminal and attach to +it.
  2. +
  3. Use a breakpoint to trap it at the point where it has placed mines, +but before it has counted the neighboring cells with mines. (Use +Shift-R in termmines to reset the +game.)
  4. +
  5. Use the emulator to extrapolate forward and begin understanding how +the algorithm works.
  6. +
  7. Move the mines by patching the board to demonstrate every number of +neighboring mines. That is, when the board is revealed at the end of the +game, all the numbers 1 through 8 should appear somewhere.
  8. +
  9. Use extrapolation to debug and test your patch.
  10. +
  11. Once you have devised your patch, apply it to the live target. +(Copy-Paste is probably the easiest way to transfer the state from +emulator to target.)
  12. +
+
+
+
+

Emulating a Program Image

+

This use case allows you to load “any” Ghidra program database into +the emulator, without a back-end debugger, host environment, or other +dependencies. The result and efficacy of this method depends greatly on +what is captured in the program database. When Ghidra imports an ELF +file, it simulates the OS’s loader, but only to a degree: It places each +section at its load memory address, it applies relocation fixups, etc. +The resulting program database is suitable for emulating that image, but +in relative isolation. It is probably not possible to load a library +module into that same database nor into the same emulator and expect +proper linkage. Ghidra’s loaders often “fix up” references to external +symbols by allocating a special EXTERNAL block, and placing +the external symbols there. There is (currently) no means to re-fix up. +If, however, you import a firmware image for an embedded device, or a +memory dump of a process, then the image may already have all the code +and linkage necessary.

+

It is too tedious to categorize every possible situation and failure +mode here. When you encounter an error, you should diagnose it with +particular attention to the contents of your program image, and how it +expects to interact with its environment: the host system, connected +hardware, etc. The UI has some facilities to stub out dependencies, but +if you find yourself creating and applying an extensive suite of stubs, +you may want to consider Modeling. This +allows you to code your stubs into a library, facilitating re-use and +repeatability.

+

Emulation need not start at the image’s designated entry point. In +this tutorial, we will examine the command-line argument parsing +routine.

+
    +
  1. Ensure you have no active targets in the Debugger, but have +termmines open in the Static listing.
  2. +
  3. Go to the entry of the command-line argument parsing function.
  4. +
  5. Right-click its first instruction and select Emulate Program +in New Trace.
  6. +
+

This will map the program into a new trace. Technically, it is not +actually loaded into an emulator, yet, because Ghidra allocates and +caches emulators as needed. Instead, what you have is a single-snapshot +trace without a live target. The initial state is snapshot 0, and +emulation is started by navigating to a schedule, just like in +extrapolation. You might be unnerved by the apparently empty and stale +Dynamic listing:

+
+ + +
+

This is perhaps more a matter of preference, but by default, Ghidra +will only populate the Dynamic listing with state initialized by the +emulator itself. When the emulator reads, it will “read through” +uninitialized state by reading the mapped program image instead. This +spares the loader from having to copy a potentially large program image +into the emulator. In general, you should refer to the Static listing +when following the program counter. If you see contents in the Dynamic +listing following the program counter, then you are probably dealing +with self-modifying code.

+

NOTE: If you prefer to see the Dynamic listing +initialized with the program image, you may select Load Emulator +from Program from the Auto-Read drop-down button in the Dynamic +Listing. The loading is still done lazily as each page is viewed in the +listing pane. You will want to change this back when debugging a live +target!

+

Because we can easily step back and forth as well as navigate to +arbitrary points in time, emulation should feel relatively free of risk; +however, the point about stubbing dependencies will become apparent. If +you feel the need to start over, there are two methods: First, you can +end the emulation session and restart it. To end the session, in the +Threads panel, right-click the “Emulate termmines” tab and select Close. +You can then restart by right-clicking the first instruction as before. +Second, you can use Ctrl-G to go to snapshot 0. This +method is not as clean as the first, because the trace will retain its +scratch snapshots.

+

Press resume button Resume to +let the emulator run until it crashes. It should crash pretty quickly +and without much ceremony:

+
+ + +
+

In this case, the clearest indication that something has gone wrong +is in the top-right of the Dynamic listing. Recall that the location +label is displayed in red when the program counter points outside of +mapped memory. Presumably, the crash was caused by the instruction to be +executed next. To get details about the error, press step into button Step Into. This +should display an error dialog with a full trace of the crash. In this +case, it should be an instruction decode error. When the emulator reads +uninitialized memory, it will get stale 0s; however, when the emulator +tries to execute uninitialized memory, it will crash. Most +likely, the target called an external function, causing the program +counter to land in the fake EXTERNAL block.

+

To diagnose the crash, press Step Back. After a couple steps back, you +should be able to confirm our hypothesis: we got here through a call to +the external function printf. You can continue stepping +back until you find the decision point that took us down this path. You +should notice it was because param_1 was 0. The decompiler +can help you recognize that at a glance, but you will still want to use +the disassembly to get at precisely the deciding instruction. The +JZ (or other conditional jump) is too late; you need to +step back to the TEST EDI,EDI (or similar) instruction. +(This may, ironically, be the first instruction of the function.) In the +System V AMD64 ABI (Linux x86-64 calling conventions) RDI +is used to pass the first parameter. You can hover your mouse over +param_1 in the Decompiler, and it will tell you the +location is EDI:4, and that its current value is a stale +0.

+
+

Initializing Other State

+

We had just started executing the target function arbitrarily. Ghidra +takes care of a minimal bit of initialization of the trace to start +emulation. Namely, it maps the image to its preferred base. It allocates +space for the main thread’s stack and initializes the stack pointer. +Finally, it initializes the program counter.

+

It is still up to you to initialize any other state, especially the +function’s parameters. Clearly, we will need to initialize +param_1. We may need to do a little static analysis around +the call to this function to understand what those parameters are, but +you could probably make an educated guess: param_1 is +argc and param_2 is argv. We +might as well initialize both. Luckily, we have plenty of memory, and +given the small scope of emulation, we can probably place the strings +for argv wherever we would like.

+

You may prefer to apply patches to the trace database or to the +emulator. The advantage to patching in the emulator is that once you +have completed your experiments, you can readily see all of the steps +that got you to the current machine state, including all patches. The +disadvantage is that if you have extensive patches, they will pollute +the stepping schedule, and things can get unwieldy.

+

Alternatively, you can perform the patches in the trace. When you +launched the emulated target, all Ghidra really did was initialize a +trace database. The advantage to patching the trace is that once you +have completed your experiments, you will have your initial state +captured in a trace snapshot. The disadvantage is that you will need to +remember to invalidate the emulator cache any time you change the +initial state. For this tutorial, we will perform the patches in the +emulator.

+

NOTE: If you wish to try patching the trace, then +change to “Control Trace” mode and use the “Navigate backward one +snapshot” control action that appears, so that you are patching the +initial state, and not a scratch snapshot. Scratch snapshots are +ephemeral snapshots in the trace used to display emulated state. Changes +to these snapshots will affect the display, but will not affect +subsequent emulation. If your current schedule includes any steps, then +“Control Trace” is patching a scratch snapshot.

+

Now, we will manually “allocate” memory for argv. +Luckily, Ghidra allocated 16K of stack space for us! The target function +should not need a full 16K, so we will allocate the lowest addresses of +the stack region for our command-line arguments. If you prefer, you may +use the Add Region action in the Regions window to +manually fabricate a heap region, instead. In the Regions window, filter +for “stack” and take note of the start address, e.g., +00001000. We will use the Watches window to perform our +patching, though we will also use the Dynamic listing to double check. +Add the following watches:

+
    +
  • RSP — to confirm the stack pointer is far from +argv.
  • +
  • RDI — the location of param_1, i.e., +argc.
  • +
  • RSI — the location of param_2, i.e., +argv.
  • +
+

To start, we will just try to return successfully from the parser. +From the behavior we have observed, it requires at least +argv[0] to be present. Conventionally, this is the name of +the binary as it was invoked from the shell, i.e., +termmines. There are few reasons a UNIX program might want +to examine this “argument.” First, if the binary actually implements +many commands, like busybox does, then that binary needs to +know the actual command. Second, if the binary needs to print usage +information, it may like to echo back the actual invocation. It is +possible we may only need to initialize argc, since the +parser may not actually use the value of +argv[0].

+

Use the Watches window to set RDI to 1, then click resume button Resume. Like before, the +emulator will crash, but this time you should see “pc = 00000000” in +red. This probably indicates success. In the Threads window, you should +see a schedule similar to 0:t0-{RDI=0x1);t0-16. This tells +us we first patched RDI, then emulated 16 machine instructions before +crashing. When the parser function returned, it probably read a stale 0 +as the return address, so we would expect a decode error at +00000000. Step backward once to confirm this +hypothesis.

+
+
+

Stubbing External Calls

+

For this tutorial, we will set the skill level to Advanced by +patching in actual command-line arguments. This continues our lesson in +state initialization, but we may also need to stub some external calls, +e.g., to strnlen and strcmp. We will need to +pass in termmines -s Advanced, which is three arguments. +Use Ctrl-G to go back to snapshot 0, and add the +following watches:

+
    +
  • *:8 (RSI + 0) — the address of the first argument, +i.e., argv[0].
  • +
  • *:30 (*:8 (RSI + 0)) with type +TerminatedCString — at most 30 characters of the first +argument.
  • +
  • *:8 (RSI + 8)argv[1]
  • +
  • *:30 (*:8 (RSI + 8)) with type +TerminatedCString — contents of argv[1]
  • +
  • *:8 (RSI + 16)argv[2]
  • +
  • *:30 (*:8 (RSI + 16)) with type +TerminatedCString — contents of argv[2]
  • +
+
+ + +
+

This will generate an extensive list of patch steps, so you may +prefer to patch the trace in this case. Set RDI to 3. +Notice that argv[0] is supposedly allocated at +00000000 according to the Address column for the watch on +*:8 (RSI + 0). That was determined by the value of +RSI, which is essentially telling us we need to allocate +argv, an array of pointers. We can confirm RSP +is at the upper end of the stack region, so we allocate +argv at 00001000. To do that, set the value of +RSI to 0x1000. You should see the Address +column update for some other watches. You can double-click any of those +addresses to go there in the Dynamic listing.

+

NOTE: You do not have to allocate things in +a listed region, but if you want to see those things in the Dynamic +listing, it is easiest if you allocate them in a listed region.

+

Now, we need to allocate space for each argument’s string. To ensure +we do not collide with the space we have already allocated for +argv, we should place a data unit in the Dynamic listing. +Double-click the Address 00001000 in the Watches window to +go to that address in the Dynamic listing. Press P then +[ (left square bracket) to place a 3-pointer array at +that address. We can now see the next available byte is at +00001018. NOTE: You might set the Dynamic +listing to Do Not Track, otherwise it may seek back to +the PC every time you patch.

+

Now that we know where to put argv[0], we need to patch +it to 0x0001018. This should be the watch on +*:8 (RSI + 0). When you modify the Value column, you can +type either bytes (in little-endian order for x86) or the integer value +0x1018. That should cause the watch on +*:30 (*:8 (RSI + 0)) to get the address +00001018. Using the Repr column, set that watch’s value to +"termmines". (The quotes are required.) Place a string in +the Dynamic listing using the (apostrophe) key. This +shows us the next available address is 00001022, so repeat +the process to allocate argv[1] and set it to +"-s". Then finally, allocate argv[2] and set +it to "Advanced". When you have finished, the Watches pane +should look something like this:

+
+ + +
+

The Dynamic listing should look something like this:

+
+ + +
+

NOTE: The placement of data units is not necessary +for the emulator to operate; it only cares about the bytes. However, it +is a useful aide in devising, understanding, and diagnosing machine +state.

+

Now, click resume button +Resume, and see where the emulator crashes next. Depending on your +compilation of termmines, it may crash after returning, or +it may crash trying to call strnlen or strcmp. +If the program counter is 00000000, then it returned +successfully. This is unfortunate, because you no longer have motivation +to stub external calls.

+

If the program counter is not 00000000, then step +backward until you get to the CALL. There are at least +three techniques for overcoming this.

+
    +
  1. You can skip the CALL and patch RAX +accordingly.
  2. +
  3. You can override the CALL instruction using a Sleigh +breakpoint.
  4. +
  5. You can override the call target using a Sleigh breakpoint.
  6. +
+
+

Skip Technique

+

The skip technique is simplest, but will need to be performed +every time that call is encountered. Press skip over button Skip Over, then use +the Registers or Watches pane to patch RAX. Then press resume button Resume.

+
+
+

CALL Override Technique

+

Overriding the CALL is also fairly simple. While this +will handle every encounter, it will not handle other calls to the same +external function.

+
    +
  1. Press K in the listing to place a breakpoint on the +CALL instruction.
  2. +
  3. Now, in the Breakpoints panel, right-click the new breakpoint and +select Set Injection (Emulator).
  4. +
  5. This is the fun part: you must now implement the function in Sleigh, +or at least stub it well enough for this particular call.
  6. +
+

Supposing this is a call to strnlen, you could implement +it as:

+
RAX = 0;
+<loop>
+if (*:1 (RDI+RAX) == 0 || RAX >= RSI) goto <exit>;
+RAX = RAX + 1;
+goto <loop>;
+<exit>
+emu_skip_decoded();
+

While Sleigh has fairly nice C-like expressions, it unfortunately +does not have C-like control structures. We are essentially writing a +for loop. The System V AMD64 ABI specifies RAX is for the return value, +so we can just use it directly as the counter. RDI points to the string +to measure, and RSI gives the maximum length. We initialize RAX to 0, +and then check if the current character is NULL, or the count has +exceeded the maximum length. If so, we are done; if not, we increment +RAX and repeat. Finally, because we are replacing the semantics +of the CALL instruction, we tell the emulator to skip the +current instruction.

+

For the complete specification of Sleigh, see the Semantic Section in +the Sleigh +documentation. The emulator adds a few userops:

+
    +
  • emu_skip_decoded(): Skip the current instruction.
  • +
  • emu_exec_decoded(): Execute the current +instruction.
  • +
  • emu_swi(): Interrupt, as in a breakpoint.
  • +
+

Some control flow is required in the Sleigh injection, otherwise, the +emulator may never advance past the current instruction. An explicit +call to emu_exec_decoded() allows you to insert logic +before and/or after the original instruction; however, if the original +instruction branches, then the logic you placed after will not +be reached. An explicit call to emu_skip_decoded() allows +you to omit the original instruction altogether. It immediately falls +through to the next instruction. The emu_swi() userop +allows you to maintain breakpoint behavior, perhaps to debug your +injection.

+

After you have written your Sleigh code:

+
    +
  1. Click OK on the Set Injection dialog.
  2. +
  3. In the menus, select Debugger → Configure Emulator → +Invalidate Emulator Cache.
  4. +
  5. Click resume button +Resume.
  6. +
+

Stubbing any remaining external calls is left as an exercise. You are +successful when the emulator crashes with +pc = 00000000.

+

Clear or disable your breakpoint and invalidate the emulator cache +again before proceeding to the next technique.

+
+
+

Target Override Technique

+

The target override technique is most thorough, but also the most +involved. It will handle all calls to the external function, e.g., +strnlen, no matter the call site. If the call goes through +a program linkage table (PLT), then you are in luck, because the call +target will be visible in the Dynamic listing. The PLT entry usually +contains a single JMP instruction to the actual +strnlen. For real target processes, the JMP +instruction will transfer control to a lazy linker the first time +strnlen is called from termmines. The linker +then finds strnlen and patches the table. In contrast, the +Ghidra loader immediately patches the table to point to a fake +<EXTERNAL>::strnlen symbol. The EXTERNAL +block is not visible in the Dynamic listing, so we will override the +JMP in the PLT.

+

The Sleigh code is nearly identical, but we must code an x86 +RET into it. Because we allow the CALL to +execute normally, we must restore the stack. Furthermore, we must return +control back to the caller, just like a real x86 subroutine would. We +also no longer need emu_skip_decoded(), because the +RET will provide the necessary control transfer.

+
RAX = 0;
+<loop>
+if (*:1 (RDI+RAX) == 0 || RAX >= RSI) goto <exit>;
+RAX = RAX + 1;
+goto <loop>;
+<exit>
+RIP = *:8 RSP;
+RSP = RSP + 8;
+return [RIP];
+

Notice that we cannot just write RET, but instead must +write the Sleigh code to mimic a RET. As with the +CALL override technique, you must now invalidate the +emulator cache and resume. Stubbing any remaining external functions is +left as an exercise. You are successful when the emulator crashes with +pc = 00000000.

+
+
+
+

Wrapping Up

+

As you can see, depending on the scope of emulation, and the +particulars of the target function, emulating a program image can be +quite involved. Whatever technique you choose, once you have +successfully returned from the command-line argument parser, you should +check for the expected effects.

+

In the Static listing, navigate to the variable that stores the +board’s dimensions. (Finding that variable is a task in the Beginner +portion, but it can be found pretty easily with some manual static +analysis.) In the Dynamic listing, you should notice that the values +have changed to reflect the Advanced skill level.

+
+
+

Optional Exercise: Patch the Placement Algorithm

+

In this exercise, you will use emulation to devise an assembly patch +to termmines to change the mine placement algorithm. +Instead of random placement, please have them placed left to right, top +to bottom. We recommend you devise your patch using the Assembler (Patch +Instruction action) in the Static listing, then test and debug your +patch using the Emulator. Perhaps patch the Dynamic listing to try quick +tweaks before committing them to the Static listing. Once you have it, +export the patched binary and run it in a proper terminal.

+
+
+
+

Debugging P-code Semantics

+

The last use case for emulation we will cover in this course is +debugging p-code semantics. This use case is a bit niche, so we will not +cover it too deeply. It is useful for debugging processor modules. It is +also useful in system modeling, since a lot of that is accomplished +using Sleigh p-code. Perhaps the most useful case related to this module +is to debug Sleigh injections.

+

Ghidra has a dedicated panel for stepping the emulator one p-code +operation at a time. This panel is not included in the default Debugger +tool, so it must be configured:

+
    +
  1. If you have not already, open the Debugger tool.
  2. +
  3. In the menus, select File → Configure.
  4. +
  5. Click the “Configure All Plugins” button in the top right of the +dialog.
  6. +
  7. Activate the DebuggerPcodeStepperPlugin
  8. +
  9. Click OK
  10. +
  11. Click Close
  12. +
+

The stepper should appear stacked over the Threads panel in the +bottom right. Yours will probably still be empty, but here is what it +looks like populated:

+
+P-code stepper + +
+

To populate it, you will need a session, either emulated or connected +to a back-end debugger. Use the buttons in the local toolbar to step +p-code operations. The first p-code op of any instruction is to decode +the instruction. Once decoded, the p-code listing (left panel) will +populate with the ops of the decoded instruction. If the current +instruction is overridden by a Sleigh breakpoint, the listing will +populate with the injected ops instead. You can then step forward and +backward within those. As you step, the other windows that display +machine state will update.

+

In addition to registers and memory, p-code has “unique” variables. +These are temporary variables used only within an instruction’s +implementation. They are displayed in the right panel. The table of +variables works similarly to the Registers pane. The columns are:

+
    +
  • The Unique column gives the variable’s name and +size in bytes.
  • +
  • The Bytes column gives the variable’s value in +bytes.
  • +
  • The Value column gives the variable’s value as an +integer, an interpretation of the bytes in the machine’s byte +order.
  • +
  • The Type column allows you to assign a type. This +is ephemeral.
  • +
  • The Repr column gives the variable’s value +according to the assigned type.
  • +
+

As you step, you may notice the schedule changes. It is displayed in +the stepper’s subtitle as well as the Threads panel’s subtitle. P-code +stepping is denoted by the portion of the schedule following the dot. +NOTE: You cannot mix instruction steps with p-code op +steps. The instruction steps always precede the p-code ops. If you click +Step Into from the global toolbar in the middle of an instruction, the +trailing p-code op steps will be removed and replaced with a single +instruction step. In most cases, this intuitively “finishes” the partial +instruction.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/B2-Emulation.md b/GhidraDocs/GhidraClass/Debugger/B2-Emulation.md new file mode 100644 index 0000000000..2b8aaf68ba --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B2-Emulation.md @@ -0,0 +1,493 @@ + +# Emulation + +Emulation is a bit of a loaded term, unfortunately. +Most of the confusion deals with the scope of the emulated target. +Do you just need to step through a few instructions, or a whole function? +Do you need to include external modules? +Do you need to simulate system calls? +Do you need to simulate connected devices? +Most of Ghidra's GUI-accessible emulation features focus on the smaller scope, though it does provide programming interfaces for advanced users to extend that scope. +Those more advanced features are covered in [Modeling](B4-Modeling.md). + +This module assumes you have completed the Beginner portion of this course. + +## P-code Emulation and Caveats + +Ghidra's emulator uses the same p-code as is used by the decompiler. +P-code describes the semantics of each instruction by constructing a sequence of p-code operations. +The p-code specifications for most of Ghidra's languages were designed with decompilation, not necessarily emulation, in mind. +While in most cases, p-code for decompilation suffices for emulation, there are cases where design decisions were made, e.g., to keep decompiler output simple, that makes them less suitable for emulation. +This may manifest, e.g., in an excess of user-defined p-code ops, or *userops*. +The [Modeling](B4-Modeling.md) module discusses ways to implement or stub those userops in the emulator. +Some processor modules provide those stubs "out of the box." +If the emulator ever halts with an "unimplemented userop" message, then you have run into this problem. + +## Use Cases + +As already hinted at the start of this module, there are several use cases for emulation, and Ghidra tries to meet these cases by integrating emulation into the Debugger UI. +Some of the use cases accessible from the UI are: + +* Extrapolation and interpolation of a live target. +* Emulation of a program image. +* P-code semantics debugging. + +We will explore each case with a tutorial and exercise. + +## Extrapolation and Interpolation + +This is perhaps the easiest use case, assuming you already have started a live session. +*Extrapolation* is predicting execution of the target into the future, without allowing the actual target to execute. +Instead, we will allow an emulator to step forward, while reading its initial state from the live target. +This allows you, e.g., to experiment with various patches, or to force execution down a certain path. +If you devise a patch, you can then apply it the live target and allow it to execute for real. +*Interpolation* is similar, but from a snapshot that is in the past. +It can help answer the question, "How did I get here?" +It is more limited, because missing state for snapshots in the past cannot be recovered. + +In this tutorial, we will examine the command-line argument parser in `termmines`. + +1. Launch `termmines` using GDB in the Ghidra Debugger. +1. If you have not already, do a bit of static analysis to identify the argument parsing function. + It should be the first function called by `main`. +1. Use a breakpoint to interrupt the live target when it enters this function. +1. Change the "Control mode" drop-down to "Control Emulator." +1. Click ![step into button](images/stepinto.png) Step Into to step the emulator forward. +1. Click ![skip over button](images/skipover.png) Skip Over and ![step back button](images/stepback.png) Step Back to experiment with different execution paths. + +About those two new actions: + +* ![skip over button](images/skipover.png) **Skip Over**: + Step the current thread by skipping one instruction. +* ![step back button](images/stepback.png) **Step Back**: + Step the current thread backward one instruction, or undo an emulated skip or patch. + +Try to get the program counter onto the call to `exit(-1)` using only those three step buttons. + +You should see things behave more or less the same as they would if it were the live target. +The main exceptions are the Objects and Interpreter windows. +Those always display the state of the live target, as they are unaware of the emulator, and their sole purpose is to interact with the live target. +You can make changes to the emulator's machine state, set breakpoints, etc., just as you would in "Control Target" mode. +**NOTE**: You may see Ghidra interact with the target, despite being in "Control Emulator" mode, because Ghidra lazily initializes the emulator's state. +If the emulated target reads a variable that Ghidra has not yet captured into the current snapshot, Ghidra will read that variable from the live target, capture it, and provide its value to the emulator. + +### Stepping Schedules + +If you had not noticed before, the subtitle of the Threads window gives the current snapshot number. +If you have stepped in the emulator, it will also contain the sequence of steps emulated. +Recall the *time* element of the Debugger's "coordinates." +(See the [Navigation](A5-Navigation.md) module if you need a refresher.) +The time element, called the *schedule*, consists of both the current snapshot and the sequence of steps to emulate. +The subtitle displays that schedule. +If you have done any patching of the emulator's state, you may notice some more complicated "steps" in the schedule. +The syntax is: + +* *Schedule* → *Snapshot* \[ `:` \[ *Step* ( `;` *Step* ) \* \] \[ `.` *Step* ( `;` *Step* ) \* \] \] +* *Step* → [ `t` *Id* `-` ] ( *Tick* | *Skip* | *Patch* ) +* *Tick* → *Count* +* *Skip* → `s` *Count* +* *Patch* → `{` *SleighStmt* `}` + +In essence, the schedule is the starting snapshot, followed by zero or more machine-instruction steps followed by zero or more p-code-operation steps. +Each step is optionally preceded by a thread id. +If omitted, the thread id is the same as the previous step. +If the first step has no thread id, it applies to the snapshot's event thread. +A plain number indicates the number of instructions or operations to execute. +An `s` prefix indicates skip instead of execute. +Curly braces specify a patch using a single Sleigh statement. +Here are some examples: + +* `0` — The first snapshot in the trace. +* `3` — Snapshot number 3. +* `3:10` — Emulate 10 machine instructions on the event thread, starting at snapshot 3. +* `3:t1-10` — Same as above, but on the second thread rather than the event thread. +* `3:10;t1-10` — Start at snapshot 3. Step the event thread 10 instructions. Step the second thread 10 instructions. +* `3:10.4` — Start at snapshot 3. Step the event thread 10 instructions then 4 p-code ops. +* `3:{RAX=0x1234};10` — Start at snapshot 3. Override RAX with 0x1234, then step 10 instructions. + +The explication of schedules allows Ghidra to cache emulated machine states and manage its emulators internally. +You can have Ghidra recall or generate the machine state for any schedule by pressing **Ctrl-G** or using **Debugger → Go To Time** in the menus. + +Assuming you got the program counter onto `exit(-1)` earlier: + +1. Write down the current schedule. +1. Change back to "Control Target" mode. + Ghidra will navigate back to the current snapshot, so PC will match the live target. +1. Press **Ctrl-G** and type or paste the schedule in, and click OK. + The program counter should be restored to `exit(-1)`. + +**NOTE**: The thread IDs used in schedules are internal to the current trace database. +Most likely, they *do not* correspond to the thread IDs assigned by the back-end debugger. + +### Exercise: Demonstrate the Cell Numbers + +The board setup routine in `termmines` first places mines randomly and then, for each empty cell, counts the number of neighboring cells with mines. +In this exercise, you will use extrapolation to experiment and devise a patch to demonstrate all possible counts of neighboring mines: + +1. Run `termmines` in a proper terminal and attach to it. +1. Use a breakpoint to trap it at the point where it has placed mines, but before it has counted the neighboring cells with mines. + (Use **Shift-R** in `termmines` to reset the game.) +1. Use the emulator to extrapolate forward and begin understanding how the algorithm works. +1. Move the mines by patching the board to demonstrate every number of neighboring mines. + That is, when the board is revealed at the end of the game, all the numbers 1 through 8 should appear somewhere. +1. Use extrapolation to debug and test your patch. +1. Once you have devised your patch, apply it to the live target. + (Copy-Paste is probably the easiest way to transfer the state from emulator to target.) + +## Emulating a Program Image + +This use case allows you to load "any" Ghidra program database into the emulator, without a back-end debugger, host environment, or other dependencies. +The result and efficacy of this method depends greatly on what is captured in the program database. +When Ghidra imports an ELF file, it simulates the OS's loader, but only to a degree: +It places each section at its load memory address, it applies relocation fixups, etc. +The resulting program database is suitable for emulating that image, but in relative isolation. +It is probably not possible to load a library module into that same database nor into the same emulator and expect proper linkage. +Ghidra's loaders often "fix up" references to external symbols by allocating a special `EXTERNAL` block, and placing the external symbols there. +There is (currently) no means to re-fix up. +If, however, you import a firmware image for an embedded device, or a memory dump of a process, then the image may already have all the code and linkage necessary. + +It is too tedious to categorize every possible situation and failure mode here. +When you encounter an error, you should diagnose it with particular attention to the contents of your program image, and how it expects to interact with its environment: the host system, connected hardware, etc. +The UI has some facilities to stub out dependencies, but if you find yourself creating and applying an extensive suite of stubs, you may want to consider [Modeling](B4-Modeling.md). +This allows you to code your stubs into a library, facilitating re-use and repeatability. + +Emulation need not start at the image's designated entry point. +In this tutorial, we will examine the command-line argument parsing routine. + +1. Ensure you have no active targets in the Debugger, but have `termmines` open in the Static listing. +1. Go to the entry of the command-line argument parsing function. +1. Right-click its first instruction and select **Emulate Program in New Trace**. + +This will map the program into a new trace. +Technically, it is not actually loaded into an emulator, yet, because Ghidra allocates and caches emulators as needed. +Instead, what you have is a single-snapshot trace without a live target. +The initial state is snapshot 0, and emulation is started by navigating to a schedule, just like in extrapolation. +You might be unnerved by the apparently empty and stale Dynamic listing: + +![Stale listing upon starting pure emulation](images/Emulation_LazyStaleListing.png) + +This is perhaps more a matter of preference, but by default, Ghidra will only populate the Dynamic listing with state initialized by the emulator itself. +When the emulator reads, it will "read through" uninitialized state by reading the mapped program image instead. +This spares the loader from having to copy a potentially large program image into the emulator. +In general, you should refer to the Static listing when following the program counter. +If you see contents in the Dynamic listing following the program counter, then you are probably dealing with self-modifying code. + +**NOTE**: If you prefer to see the Dynamic listing initialized with the program image, you may select **Load Emulator from Program** from the Auto-Read drop-down button in the Dynamic Listing. +The loading is still done lazily as each page is viewed in the listing pane. +You will want to change this back when debugging a live target! + +Because we can easily step back and forth as well as navigate to arbitrary points in time, emulation should feel relatively free of risk; however, the point about stubbing dependencies will become apparent. +If you feel the need to start over, there are two methods: +First, you can end the emulation session and restart it. +To end the session, in the Threads panel, right-click the "Emulate termmines" tab and select Close. +You can then restart by right-clicking the first instruction as before. +Second, you can use **Ctrl-G** to go to snapshot 0. +This method is not as clean as the first, because the trace will retain its scratch snapshots. + +Press ![resume button](images/resume.png) Resume to let the emulator run until it crashes. +It should crash pretty quickly and without much ceremony: + +![Listing after crashing](images/Emulation_ListingAfterResume.png) + +In this case, the clearest indication that something has gone wrong is in the top-right of the Dynamic listing. +Recall that the location label is displayed in red when the program counter points outside of mapped memory. +Presumably, the crash was caused by the instruction to be executed next. +To get details about the error, press ![step into button](images/stepinto.png) Step Into. +This should display an error dialog with a full trace of the crash. +In this case, it should be an instruction decode error. +When the emulator reads uninitialized memory, it will get stale 0s; however, when the emulator tries to *execute* uninitialized memory, it will crash. +Most likely, the target called an external function, causing the program counter to land in the fake `EXTERNAL` block. + +To diagnose the crash, press ![step back button](images/stepback.png) Step Back. +After a couple steps back, you should be able to confirm our hypothesis: we got here through a call to the external function `printf`. +You can continue stepping back until you find the decision point that took us down this path. +You should notice it was because `param_1` was 0. +The decompiler can help you recognize that at a glance, but you will still want to use the disassembly to get at precisely the deciding instruction. +The `JZ` (or other conditional jump) is too late; you need to step back to the `TEST EDI,EDI` (or similar) instruction. +(This may, ironically, be the first instruction of the function.) +In the System V AMD64 ABI (Linux x86-64 calling conventions) `RDI` is used to pass the first parameter. +You can hover your mouse over `param_1` in the Decompiler, and it will tell you the location is `EDI:4`, and that its current value is a stale 0. + +### Initializing Other State + +We had just started executing the target function arbitrarily. +Ghidra takes care of a minimal bit of initialization of the trace to start emulation. +Namely, it maps the image to its preferred base. +It allocates space for the main thread's stack and initializes the stack pointer. +Finally, it initializes the program counter. + +It is still up to you to initialize any other state, especially the function's parameters. +Clearly, we will need to initialize `param_1`. +We may need to do a little static analysis around the call to this function to understand what those parameters are, but you could probably make an educated guess: +`param_1` is `argc` and `param_2` is `argv`. +We might as well initialize both. +Luckily, we have plenty of memory, and given the small scope of emulation, we can probably place the strings for `argv` wherever we would like. + +You may prefer to apply patches to the trace database or to the emulator. +The advantage to patching in the emulator is that once you have completed your experiments, you can readily see all of the steps that got you to the current machine state, including all patches. +The disadvantage is that if you have extensive patches, they will pollute the stepping schedule, and things can get unwieldy. + +Alternatively, you can perform the patches in the trace. +When you launched the emulated target, all Ghidra really did was initialize a trace database. +The advantage to patching the trace is that once you have completed your experiments, you will have your initial state captured in a trace snapshot. +The disadvantage is that you will need to remember to invalidate the emulator cache any time you change the initial state. +For this tutorial, we will perform the patches in the emulator. + +**NOTE**: If you wish to try patching the trace, then change to "Control Trace" mode and use the "Navigate backward one snapshot" control action that appears, so that you are patching the initial state, and not a scratch snapshot. +Scratch snapshots are ephemeral snapshots in the trace used to display emulated state. +Changes to these snapshots will affect the display, but will not affect subsequent emulation. +If your current schedule includes any steps, then "Control Trace" is patching a scratch snapshot. + +Now, we will manually "allocate" memory for `argv`. +Luckily, Ghidra allocated 16K of stack space for us! +The target function should not need a full 16K, so we will allocate the lowest addresses of the stack region for our command-line arguments. +If you prefer, you may use the **Add Region** action in the Regions window to manually fabricate a heap region, instead. +In the Regions window, filter for "stack" and take note of the start address, e.g., `00001000`. +We will use the Watches window to perform our patching, though we will also use the Dynamic listing to double check. +Add the following watches: + +* `RSP` — to confirm the stack pointer is far from `argv`. +* `RDI` — the location of `param_1`, i.e., `argc`. +* `RSI` — the location of `param_2`, i.e., `argv`. + +To start, we will just try to return successfully from the parser. +From the behavior we have observed, it requires at least `argv[0]` to be present. +Conventionally, this is the name of the binary as it was invoked from the shell, i.e., `termmines`. +There are few reasons a UNIX program might want to examine this "argument." +First, if the binary actually implements many commands, like `busybox` does, then that binary needs to know the actual command. +Second, if the binary needs to print usage information, it may like to echo back the actual invocation. +It is possible we may only need to initialize `argc`, since the parser may not actually *use* the value of `argv[0]`. + +Use the Watches window to set `RDI` to 1, then click ![resume button](images/resume.png) Resume. +Like before, the emulator will crash, but this time you should see "pc = 00000000" in red. +This probably indicates success. +In the Threads window, you should see a schedule similar to `0:t0-{RDI=0x1);t0-16`. +This tells us we first patched RDI, then emulated 16 machine instructions before crashing. +When the parser function returned, it probably read a stale 0 as the return address, so we would expect a decode error at `00000000`. +Step backward once to confirm this hypothesis. + +### Stubbing External Calls + +For this tutorial, we will set the skill level to Advanced by patching in actual command-line arguments. +This continues our lesson in state initialization, but we may also need to stub some external calls, e.g., to `strnlen` and `strcmp`. +We will need to pass in `termmines -s Advanced`, which is three arguments. +Use **Ctrl-G** to go back to snapshot 0, and add the following watches: + +* `*:8 (RSI + 0)` — the address of the first argument, i.e., `argv[0]`. +* `*:30 (*:8 (RSI + 0))` with type `TerminatedCString` — at most 30 characters of the first argument. +* `*:8 (RSI + 8)` — `argv[1]` +* `*:30 (*:8 (RSI + 8))` with type `TerminatedCString` — contents of `argv[1]` +* `*:8 (RSI + 16)` — `argv[2]` +* `*:30 (*:8 (RSI + 16))` with type `TerminatedCString` — contents of `argv[2]` + +![Watches for patching command-line arguments](images/Emulation_WatchesForCmdline.png) + +This will generate an extensive list of patch steps, so you may prefer to patch the trace in this case. +Set `RDI` to 3. +Notice that `argv[0]` is supposedly allocated at `00000000` according to the Address column for the watch on `*:8 (RSI + 0)`. +That was determined by the value of `RSI`, which is essentially telling us we need to allocate `argv`, an array of pointers. +We can confirm `RSP` is at the upper end of the stack region, so we allocate `argv` at `00001000`. +To do that, set the value of `RSI` to `0x1000`. +You should see the Address column update for some other watches. +You can double-click any of those addresses to go there in the Dynamic listing. + +**NOTE**: You *do not have* to allocate things in a listed region, but if you want to see those things in the Dynamic listing, it is easiest if you allocate them in a listed region. + +Now, we need to allocate space for each argument's string. +To ensure we do not collide with the space we have already allocated for `argv`, we should place a data unit in the Dynamic listing. +Double-click the Address `00001000` in the Watches window to go to that address in the Dynamic listing. +Press **P** then **[** (left square bracket) to place a 3-pointer array at that address. +We can now see the next available byte is at `00001018`. +**NOTE**: You might set the Dynamic listing to **Do Not Track**, otherwise it may seek back to the PC every time you patch. + +Now that we know where to put `argv[0]`, we need to patch it to `0x0001018`. +This should be the watch on `*:8 (RSI + 0)`. +When you modify the Value column, you can type either bytes (in little-endian order for x86) or the integer value `0x1018`. +That should cause the watch on `*:30 (*:8 (RSI + 0))` to get the address `00001018`. +Using the Repr column, set that watch's value to `"termmines"`. +(The quotes are required.) +Place a string in the Dynamic listing using the **'** (apostrophe) key. +This shows us the next available address is `00001022`, so repeat the process to allocate `argv[1]` and set it to `"-s"`. +Then finally, allocate `argv[2]` and set it to `"Advanced"`. +When you have finished, the Watches pane should look something like this: + +![Watches for patching command-line arguments after setting](images/Emulation_WatchesForCmdlineSet.png) + +The Dynamic listing should look something like this: + +![Listing after setting command-line arguments](images/Emulation_ListingForCmdlineSet.png) + +**NOTE**: The placement of data units is not necessary for the emulator to operate; it only cares about the bytes. +However, it is a useful aide in devising, understanding, and diagnosing machine state. + +Now, click ![resume button](images/resume.png) Resume, and see where the emulator crashes next. +Depending on your compilation of `termmines`, it may crash after returning, or it may crash trying to call `strnlen` or `strcmp`. +If the program counter is `00000000`, then it returned successfully. +This is unfortunate, because you no longer have motivation to stub external calls. + +If the program counter is not `00000000`, then step backward until you get to the `CALL`. +There are at least three techniques for overcoming this. + +1. You can skip the `CALL` and patch `RAX` accordingly. +1. You can override the `CALL` instruction using a Sleigh breakpoint. +1. You can override the call target using a Sleigh breakpoint. + +#### Skip Technique + +The skip technique is simplest, but will need to be performed *every time* that call is encountered. +Press ![skip over button](images/skipover.png) Skip Over, then use the Registers or Watches pane to patch `RAX`. +Then press ![resume button](images/resume.png) Resume. + +#### `CALL` Override Technique + +Overriding the `CALL` is also fairly simple. +While this will handle every encounter, it will not handle other calls to the same external function. + +1. Press **K** in the listing to place a breakpoint on the `CALL` instruction. +1. Now, in the Breakpoints panel, right-click the new breakpoint and select **Set Injection (Emulator)**. +1. This is the fun part: you must now implement the function in Sleigh, or at least stub it well enough for this particular call. + +Supposing this is a call to `strnlen`, you could implement it as: + +```sleigh {.numberLines} +RAX = 0; + +if (*:1 (RDI+RAX) == 0 || RAX >= RSI) goto ; +RAX = RAX + 1; +goto ; + +emu_skip_decoded(); +``` + +While Sleigh has fairly nice C-like expressions, it unfortunately does not have C-like control structures. +We are essentially writing a for loop. +The System V AMD64 ABI specifies RAX is for the return value, so we can just use it directly as the counter. +RDI points to the string to measure, and RSI gives the maximum length. +We initialize RAX to 0, and then check if the current character is NULL, or the count has exceeded the maximum length. +If so, we are done; if not, we increment RAX and repeat. +Finally, because we are *replacing* the semantics of the `CALL` instruction, we tell the emulator to skip the current instruction. + +For the complete specification of Sleigh, see the Semantic Section in the [Sleigh documentation](../../../Ghidra/Features/Decompiler/src/main/doc/sleigh.xml). +The emulator adds a few userops: + +* `emu_skip_decoded()`: Skip the current instruction. +* `emu_exec_decoded()`: Execute the current instruction. +* `emu_swi()`: Interrupt, as in a breakpoint. + +Some control flow is required in the Sleigh injection, otherwise, the emulator may never advance past the current instruction. +An explicit call to `emu_exec_decoded()` allows you to insert logic before and/or after the original instruction; however, if the original instruction branches, then the logic you placed *after* will not be reached. +An explicit call to `emu_skip_decoded()` allows you to omit the original instruction altogether. +It immediately falls through to the next instruction. +The `emu_swi()` userop allows you to maintain breakpoint behavior, perhaps to debug your injection. + +After you have written your Sleigh code: + +1. Click OK on the Set Injection dialog. +1. In the menus, select **Debugger → Configure Emulator → Invalidate Emulator Cache**. +1. Click ![resume button](images/resume.png) Resume. + +Stubbing any remaining external calls is left as an exercise. +You are successful when the emulator crashes with `pc = 00000000`. + +Clear or disable your breakpoint and invalidate the emulator cache again before proceeding to the next technique. + +#### Target Override Technique + +The target override technique is most thorough, but also the most involved. +It will handle all calls to the external function, e.g., `strnlen`, no matter the call site. +If the call goes through a program linkage table (PLT), then you are in luck, because the call target will be visible in the Dynamic listing. +The PLT entry usually contains a single `JMP` instruction to the actual `strnlen`. +For real target processes, the `JMP` instruction will transfer control to a lazy linker the first time `strnlen` is called from `termmines`. +The linker then finds `strnlen` and patches the table. +In contrast, the Ghidra loader immediately patches the table to point to a fake `::strnlen` symbol. +The `EXTERNAL` block is not visible in the Dynamic listing, so we will override the `JMP` in the PLT. + +The Sleigh code is nearly identical, but we must code an x86 `RET` into it. +Because we allow the `CALL` to execute normally, we must restore the stack. +Furthermore, we must return control back to the caller, just like a real x86 subroutine would. +We also no longer need `emu_skip_decoded()`, because the `RET` will provide the necessary control transfer. + +```sleigh {.numberLines} +RAX = 0; + +if (*:1 (RDI+RAX) == 0 || RAX >= RSI) goto ; +RAX = RAX + 1; +goto ; + +RIP = *:8 RSP; +RSP = RSP + 8; +return [RIP]; +``` + +Notice that we cannot just write `RET`, but instead must write the Sleigh code to mimic a `RET`. +As with the `CALL` override technique, you must now invalidate the emulator cache and resume. +Stubbing any remaining external functions is left as an exercise. +You are successful when the emulator crashes with `pc = 00000000`. + +### Wrapping Up + +As you can see, depending on the scope of emulation, and the particulars of the target function, emulating a program image can be quite involved. +Whatever technique you choose, once you have successfully returned from the command-line argument parser, you should check for the expected effects. + +In the Static listing, navigate to the variable that stores the board's dimensions. +(Finding that variable is a task in the Beginner portion, but it can be found pretty easily with some manual static analysis.) +In the Dynamic listing, you should notice that the values have changed to reflect the Advanced skill level. + +### Optional Exercise: Patch the Placement Algorithm + +In this exercise, you will use emulation to devise an assembly patch to `termmines` to change the mine placement algorithm. +Instead of random placement, please have them placed left to right, top to bottom. +We recommend you devise your patch using the Assembler (Patch Instruction action) in the Static listing, then test and debug your patch using the Emulator. +Perhaps patch the Dynamic listing to try quick tweaks before committing them to the Static listing. +Once you have it, export the patched binary and run it in a proper terminal. + +## Debugging P-code Semantics + +The last use case for emulation we will cover in this course is debugging p-code semantics. +This use case is a bit niche, so we will not cover it too deeply. +It is useful for debugging processor modules. +It is also useful in system modeling, since a lot of that is accomplished using Sleigh p-code. +Perhaps the most useful case related to this module is to debug Sleigh injections. + +Ghidra has a dedicated panel for stepping the emulator one p-code operation at a time. +This panel is not included in the default Debugger tool, so it must be configured: + +1. If you have not already, open the Debugger tool. +1. In the menus, select **File → Configure**. +1. Click the "Configure All Plugins" button in the top right of the dialog. +1. Activate the `DebuggerPcodeStepperPlugin` +1. Click OK +1. Click Close + +The stepper should appear stacked over the Threads panel in the bottom right. +Yours will probably still be empty, but here is what it looks like populated: + +![P-code stepper](images/Emulation_PcodeStepper.png) + +To populate it, you will need a session, either emulated or connected to a back-end debugger. +Use the buttons in the local toolbar to step p-code operations. +The first p-code op of any instruction is to decode the instruction. +Once decoded, the p-code listing (left panel) will populate with the ops of the decoded instruction. +If the current instruction is overridden by a Sleigh breakpoint, the listing will populate with the injected ops instead. +You can then step forward and backward within those. +As you step, the other windows that display machine state will update. + +In addition to registers and memory, p-code has "unique" variables. +These are temporary variables used only within an instruction's implementation. +They are displayed in the right panel. +The table of variables works similarly to the Registers pane. +The columns are: + +* The **Unique** column gives the variable's name and size in bytes. +* The **Bytes** column gives the variable's value in bytes. +* The **Value** column gives the variable's value as an integer, an interpretation of the bytes in the machine's byte order. +* The **Type** column allows you to assign a type. This is ephemeral. +* The **Repr** column gives the variable's value according to the assigned type. + +As you step, you may notice the schedule changes. +It is displayed in the stepper's subtitle as well as the Threads panel's subtitle. +P-code stepping is denoted by the portion of the schedule following the dot. +**NOTE**: You cannot mix instruction steps with p-code op steps. +The instruction steps always precede the p-code ops. +If you click Step Into from the global toolbar in the middle of an instruction, the trailing p-code op steps will be removed and replaced with a single instruction step. +In most cases, this intuitively "finishes" the partial instruction. diff --git a/GhidraDocs/GhidraClass/Debugger/B3-Scripting.html b/GhidraDocs/GhidraClass/Debugger/B3-Scripting.html new file mode 100644 index 0000000000..04c7700543 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B3-Scripting.html @@ -0,0 +1,547 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

Debugger Scripting

+

This module assumes you have completed the Beginner portion of this +course, as well as the Scripting module of the Intermediate course.

+

As with Ghidra Scripting, the primary use case we consider in this +module is automation. It also permits some one-off analysis of a live +target or interacting with the dynamic target. There are also some +extension points useful for Modeling that +are easily accessed in scripts for prototyping.

+

The script development environment is set up exactly the same as it +is for the rest of Ghidra.

+
+

The Debugger Scripting API

+

To create a Debugger script, do as you normally would then append +implements FlatDebuggerAPI to the script’s class +declaration, e.g.:

+
import ghidra.app.script.GhidraScript;
+import ghidra.debug.flatapi.FlatDebuggerAPI;
+
+public class DemoDebuggerScript extends GhidraScript implements FlatDebuggerAPI {
+    @Override
+    protected void run() throws Exception {
+    }
+}
+

Technically, the Debugger’s “deep” API is accessible to scripts; +however, the flat API is preferred for scripting. Also, the flat API is +usually more stable than the deep API. However, because the dynamic +analysis flat API is newer, it may not be as stable as the static +analysis flat API. It is also worth noting that the +FlatDebuggerAPI interface adds the flat API to +your script. The static analysis flat API is still available, and it +will manipulate the static portions of the Debugger tool, just as they +would in the CodeBrowser tool. In this tutorial, we will explore reading +machine state, setting breakpoints, waiting for conditions, and +controlling the target.

+
+
+

Dumping the Game Board

+

We will write a script that assumes the current session is for +termmines and dumps the game board to the console, allowing +you to cheat. You can label your variables however you would like but, +for this tutorial, we will assume you have labeled them +width, height, and cells. If you +have not already located and labeled these variables, do so now.

+
+

Checking the Target

+

First, we will do some validation. Check that we have an active +session (trace):

+
Trace trace = getCurrentTrace();
+if (trace == null) {
+    throw new AssertionError("There is no active session");
+}
+

Now, check that the current program is termmines:

+
if (!"termmines".equals(currentProgram.getName())) {
+    throw new AssertionError("The current program must be termmines");
+}
+
+
+

Checking the Module Map

+

Now, check that termmines is actually part of the +current trace. There is not a great way to do this directly in the flat +API, but we are going to need to map some symbols from the +termmines module, anyway. In this step, we will both verify +that the user has placed the required labels, as well as verify that +those symbols can be mapped to the target:

+
List<Symbol> widthSyms = getSymbols("width", null);
+if (widthSyms.isEmpty()) {
+    throw new AssertionError("Symbol 'width' is required");
+}
+List<Symbol> heightSyms = getSymbols("height", null);
+if (heightSyms.isEmpty()) {
+    throw new AssertionError("Symbol 'height' is required");
+}
+List<Symbol> cellsSyms = getSymbols("cells", null);
+if (cellsSyms.isEmpty()) {
+    throw new AssertionError("Symbol 'cells' is required");
+}
+
+Address widthDyn = translateStaticToDynamic(widthSyms.get(0).getAddress());
+if (widthDyn == null) {
+    throw new AssertionError("Symbol 'width' is not mapped to target");
+}
+Address heightDyn = translateStaticToDynamic(heightSyms.get(0).getAddress());
+if (heightDyn == null) {
+    throw new AssertionError("Symbol 'height' is not mapped to target");
+}
+Address cellsDyn = translateStaticToDynamic(cellsSyms.get(0).getAddress());
+if (cellsDyn == null) {
+    throw new AssertionError("Symbol 'cells' is not mapped to target");
+}
+

The getSymbols() method is part of the static flat API, +so it returns symbols from the current static listing. The +translateStaticToDynamic() is part of the dynamic flat API. +This allows us to locate that symbol in the dynamic context.

+
+
+

Reading the Data

+

Now, we want to read the dimensions and the whole board to the trace. +You should know from earlier exercises that the board is allocated 32 +cells by 32 cells, so we will want to read at least 1024 bytes. Note +that this will implicitly capture the board to the trace:

+
byte[] widthDat = readMemory(widthDyn, 4, monitor);
+byte[] heightDat = readMemory(heightDyn, 4, monitor);
+byte[] cellsData = readMemory(cellsDyn, 1024, monitor);
+
+
+

Dumping the Board

+

Beyond this, everything is pretty standard Java / Ghidra scripting. +We will need to do some quick conversion of the bytes to integers, and +then we can iterate over the cells and print the mines’ locations:

+
int width = ByteBuffer.wrap(widthDat).order(ByteOrder.LITTLE_ENDIAN).getInt();
+int height = ByteBuffer.wrap(heightDat).order(ByteOrder.LITTLE_ENDIAN).getInt();
+for (int y = 0; y < height; y++) {
+    for (int x = 0; x < width; x++) {
+        if ((cellsData[(y + 1) * 32 + x + 1] & 0x80) == 0x80) {
+            println("Mine at (%d,%d)".formatted(x, y));
+        }
+    }
+}
+
+
+

Test the Script

+

To test, run termmines in a proper terminal and attach +to it from Ghidra using GDB. Now, run the script. Resume and play the +game. Once you win, check that the script output describes the actual +board.

+
+
+

Exercise: Remove the Mines

+

Write a script that will remove the mines from the board. +NOTE: The writeMemory() and related +methods are all subject to the current control mode. If the mode is +read-only, the script cannot modify the target’s machine state using +those methods.

+
+
+
+

Waiting on / Reacting to Events

+

Most of the Debugger is implemented using asynchronous event-driven +programming. This will become apparent if you browse any deeper beyond +the flat API. Check the return value carefully. A method that might +intuitively return void may actually return +CompletableFuture<Void>. Java’s completable futures +allow you to register callbacks and/or chain additional futures onto +them.

+

However, Ghidra’s scripting system provides a dedicated thread for +each execution of a script, so it is acceptable to use the +.get() methods instead, essentially converting to a +synchronous style. Most of the methods in the flat API will do this for +you. See also the flat API’s waitOn() method. The most +common two methods to use when waiting for a condition is +waitForBreak() and flushAsyncPipelines(). The +first simply waits for the target to enter the STOPPED state. Once that +happens, the framework and UI will get to work interrogating the +back-end debugger to update the various displays. Unfortunately, if a +script does not wait for this update to complete, it may be subject to +race conditions. Thus, the second method politely waits for everything +else to finish. Sadly, it may slow your script down.

+

The general template for waiting on a condition is a bit klunky, but +conceptually straightforward:

+
    +
  1. Set up your instrumentation, e.g., breakpoints.
  2. +
  3. Get the target running, and then wait for it to break.
  4. +
  5. Flush the pipelines.
  6. +
  7. Check if the expected conditions are met, esp., that the program +counter is where you expect.
  8. +
  9. If the conditions are not met, then let the target run again and +repeat.
  10. +
  11. Once the conditions are met, perform the desired actions.
  12. +
  13. Optionally remove your instrumentation and/or let the target +run.
  14. +
+
+

Exercise: Always Win in 0 Seconds

+

NOTE: The solution to this exercise is given as a +tutorial below, but give it an honest try before peeking. If you are not +already familiar with Eclipse’s searching and discovery features, try +pressing Ctrl-O twice in the editor for your script. +You should now be able to type patterns, optionally with wildcards, to +help you find applicable methods.

+

Your task is to write a script that will wait for the player to win +then patch the machine state, so that the game always prints a score of +0 seconds. Some gotchas to consider up front:

+
    +
  • You may want to verify and/or correct the target’s execution state. +See getExecutionState() and interrupt(). You +will not likely be able to place or toggle breakpoints while the target +is running.
  • +
  • Methods like writeMemory() are subject to the current +control mode. You may want to check and/or correct this at the top of +your script.
  • +
  • If you require the user to mark code locations with a label, note +that those labels will likely end up in the containing function’s +namespace. You will need to provide that namespace to +getSymbols().
  • +
  • If you need to set breakpoints, you should try to toggle an existing +breakpoint at that location before adding a new one. Otherwise, you may +generate a pile of breakpoints and/or needlessly increment GDB’s +breakpoint numbers.
  • +
+

You are successful when you can attach to a running +termmines and execute your script. Then, assuming you win +the game, the game should award you a score of 0 seconds. It is OK if +you have to re-execute your script after each win.

+
+
+

Solution: Always Win in 0 Seconds

+

As in the previous scripting tutorial, we will do some verifications +at the top of the script. Your level of pedantry may vary.

+
Trace trace = getCurrentTrace();
+if (trace == null) {
+    throw new AssertionError("There is no active session");
+}
+
+if (!"termmines".equals(currentProgram.getName())) {
+    throw new AssertionError("The current program must be termmines");
+}
+
+if (getExecutionState(trace).isRunning()) {
+    monitor.setMessage("Interrupting target and waiting for STOPPED");
+    interrupt();
+    waitForBreak(3, TimeUnit.SECONDS);
+}
+flushAsyncPipelines(trace);
+
+if (!getControlService().getCurrentMode(trace).canEdit(getCurrentDebuggerCoordinates())) {
+    throw new AssertionError("Current control mode is read-only");
+}
+

The first two blocks check that there is an active target with +termmines as the current program. As before, the +association of the current program to the current target will be +implicitly verified when we map symbols. The second block will interrupt +the target if it is running. We then allow everything to sync up before +checking the control mode. We could instead change the control mode to +Target w/Edits, but I prefer to keep the user aware +that the script needs to modify target machine state.

+

Next, we retrieve and map our symbols. This works pretty much the +same as in the previous scripting tutorial, but with attention to the +containing function namespace. The way termmines computes +the score is to record the start time of the game. Then, when the player +wins, it subtracts the recorded time from the current time. This script +requires the user to label the start time variable timer, +and to label the instruction that computes the score +reset_timer. The function that prints the score must be +named print_win.

+
List<Symbol> timerSyms = getSymbols("timer", null);
+if (timerSyms.isEmpty()) {
+    throw new AssertionError("Symbol 'timer' is required");
+}
+List<Function> winFuncs = getGlobalFunctions("print_win");
+if (winFuncs.isEmpty()) {
+    throw new AssertionError("Function 'print_win' is required");
+}
+List<Symbol> resetSyms = getSymbols("reset_timer", winFuncs.get(0));
+if (resetSyms.isEmpty()) {
+    throw new AssertionError("Symbol 'reset_timer' is required");
+}
+
+Address timerDyn = translateStaticToDynamic(timerSyms.get(0).getAddress());
+if (timerDyn == null) {
+    throw new AssertionError("Symbol 'timer' is not mapped to target");
+}
+Address resetDyn = translateStaticToDynamic(resetSyms.get(0).getAddress());
+if (resetDyn == null) {
+    throw new AssertionError("Symbol 'reset_timer' is not mapped to target");
+}
+
+

Toggling and Setting Breakpoints

+

The first actual operation we perform on the debug session is to +toggle or place a breakpoint on the reset_timer label. The +API prefers to specify breakpoints in the static context, but you can do +either. To establish that context, you must use a +ProgramLocation. For static context, use the current +(static) program as the program. For dynamic context, use the current +(dynamic) trace view as the program — see +getCurrentView().

+

To avoid creating a pile of breakpoints, we will first attempt to +enable an existing breakpoint at the desired location. Technically, the +existing breakpoints may not be execute breakpoints, but we will blindly +assume they are. Again, your level of pedantry may vary. The +breakpointsEnable method will return the existing +breakpoints, so we can check that and create a new breakpoint, if +necessary:

+
ProgramLocation breakLoc =
+    new ProgramLocation(currentProgram, resetSyms.get(0).getAddress());
+Set<LogicalBreakpoint> breaks = breakpointsEnable(breakLoc);
+if (breaks == null || breaks.isEmpty()) {
+    breakpointSetSoftwareExecute(breakLoc, "reset timer");
+}
+
+
+

Waiting to Hit the Breakpoint

+

This next loop is quite extensive, but it follows the template given +earlier for waiting on conditions. It is an indefinite loop, so we +should check the monitor for cancellation somewhat frequently. This +implies we should use relatively short timeouts in our API calls. In our +case, we just want to confirm that the cause of breaking was hitting our +breakpoint. We do not need to be precise in this check; it suffices to +check the program counter:

+
while (true) {
+    monitor.checkCanceled();
+
+    TargetExecutionState execState = getExecutionState(trace);
+    switch (execState) {
+        case STOPPED:
+            resume();
+            break;
+        case TERMINATED:
+        case INACTIVE:
+            throw new AssertionError("Target terminated");
+        case ALIVE:
+            println(
+                "I don't know whether or not the target is running. Please make it RUNNING.");
+            break;
+        case RUNNING:
+            /**
+             * Probably timed out waiting for break. That's fine. Give the player time to
+             * win.
+             */
+            break;
+        default:
+            throw new AssertionError("Unrecognized state: " + execState);
+    }
+    try {
+        monitor.setMessage("Waiting for player to win");
+        waitForBreak(1, TimeUnit.SECONDS);
+    }
+    catch (TimeoutException e) {
+        // Give the player time to win.
+        continue;
+    }
+    flushAsyncPipelines(trace);
+    Address pc = getProgramCounter();
+    println("STOPPED at pc = " + pc);
+    if (resetDyn.equals(pc)) {
+        break;
+    }
+}
+

The “center” of this loop is a call to waitForBreak(). +This is the simplest primitive for waiting on the target to meet any +condition. Because we expect the user to take more than a second to win +the game, we should expect a timeout exception and just keep waiting. +Using a timeout of 1 second ensures we can terminate promptly should the +user cancel the script.

+

Before waiting, we need to make sure the target is running. Because +we could repeat the loop while the target is already running, we should +only call resume() if the target is stopped. There are +utility methods on TargetExecutionState like +isRunning(), which you might prefer to use. Here, we +exhaustively handle every kind of state using a switch statement, which +does make the code a bit verbose.

+

When the target does break, we first allow the UI to finish +interrogating the target. We can then reliably retrieve and check the +program counter. If the PC matches the dynamic location of +reset_timer, then the player has won, and we need to reset +the start time.

+
+
+

Patching the Start Time

+

When the player has won, this particular compilation of +termmines first calls time to get the current +time and moves it into ECX. It then subtracts, using a +memory operand, the recorded start time. There are certainly other +strategies, but this script expects the user to label that +SUB instruction reset_timer. We would like the +result of that computation to be 0, so we will simply copy the value of +ECX over the recorded start time:

+
int time = readRegister("ECX").getUnsignedValue().intValue();
+if (!writeMemory(timerDyn,
+    ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(time).array())) {
+    throw new AssertionError("Could not write over timer. Does control mode allow edits?");
+}
+
+resume();
+

The final resume() simply allows the target to finish +printing the score, which ought to be 0 now!

+
+
+
+
+

Learning More

+

For another demonstration of the flat API, see DemoDebuggerScript, +or just ask Eclipse for all the implementations of +FlatDebuggerAPI. If you want a list of methods with +explanations, you should refer to the documentation in the +FlatDebuggerAPI interface.

+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/B3-Scripting.md b/GhidraDocs/GhidraClass/Debugger/B3-Scripting.md new file mode 100644 index 0000000000..7d1234c02f --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B3-Scripting.md @@ -0,0 +1,363 @@ + +# Debugger Scripting + +This module assumes you have completed the Beginner portion of this course, as well as the Scripting module of the Intermediate course. + +As with Ghidra Scripting, the primary use case we consider in this module is automation. +It also permits some one-off analysis of a live target or interacting with the dynamic target. +There are also some extension points useful for [Modeling](B4-Modeling.md) that are easily accessed in scripts for prototyping. + +The script development environment is set up exactly the same as it is for the rest of Ghidra. + +## The Debugger Scripting API + +To create a Debugger script, do as you normally would then append `implements FlatDebuggerAPI` to the script's class declaration, e.g.: + +```java {.numberLines} +import ghidra.app.script.GhidraScript; +import ghidra.debug.flatapi.FlatDebuggerAPI; + +public class DemoDebuggerScript extends GhidraScript implements FlatDebuggerAPI { + @Override + protected void run() throws Exception { + } +} +``` + +Technically, the Debugger's "deep" API is accessible to scripts; however, the flat API is preferred for scripting. +Also, the flat API is usually more stable than the deep API. +However, because the dynamic analysis flat API is newer, it may not be as stable as the static analysis flat API. +It is also worth noting that the `FlatDebuggerAPI` interface *adds* the flat API to your script. +The static analysis flat API is still available, and it will manipulate the static portions of the Debugger tool, just as they would in the CodeBrowser tool. +In this tutorial, we will explore reading machine state, setting breakpoints, waiting for conditions, and controlling the target. + +## Dumping the Game Board + +We will write a script that assumes the current session is for `termmines` and dumps the game board to the console, allowing you to cheat. +You can label your variables however you would like but, for this tutorial, we will assume you have labeled them `width`, `height`, and `cells`. +If you have not already located and labeled these variables, do so now. + +### Checking the Target + +First, we will do some validation. +Check that we have an active session (trace): + +```java {.numberLines} +Trace trace = getCurrentTrace(); +if (trace == null) { + throw new AssertionError("There is no active session"); +} +``` + +Now, check that the current program is `termmines`: + +```java {.numberLines} +if (!"termmines".equals(currentProgram.getName())) { + throw new AssertionError("The current program must be termmines"); +} +``` + +### Checking the Module Map + +Now, check that `termmines` is actually part of the current trace. +There is not a great way to do this directly in the flat API, but we are going to need to map some symbols from the `termmines` module, anyway. +In this step, we will both verify that the user has placed the required labels, as well as verify that those symbols can be mapped to the target: + +```java {.numberLines} +List widthSyms = getSymbols("width", null); +if (widthSyms.isEmpty()) { + throw new AssertionError("Symbol 'width' is required"); +} +List heightSyms = getSymbols("height", null); +if (heightSyms.isEmpty()) { + throw new AssertionError("Symbol 'height' is required"); +} +List cellsSyms = getSymbols("cells", null); +if (cellsSyms.isEmpty()) { + throw new AssertionError("Symbol 'cells' is required"); +} + +Address widthDyn = translateStaticToDynamic(widthSyms.get(0).getAddress()); +if (widthDyn == null) { + throw new AssertionError("Symbol 'width' is not mapped to target"); +} +Address heightDyn = translateStaticToDynamic(heightSyms.get(0).getAddress()); +if (heightDyn == null) { + throw new AssertionError("Symbol 'height' is not mapped to target"); +} +Address cellsDyn = translateStaticToDynamic(cellsSyms.get(0).getAddress()); +if (cellsDyn == null) { + throw new AssertionError("Symbol 'cells' is not mapped to target"); +} +``` + +The `getSymbols()` method is part of the static flat API, so it returns symbols from the current static listing. +The `translateStaticToDynamic()` is part of the dynamic flat API. +This allows us to locate that symbol in the dynamic context. + +### Reading the Data + +Now, we want to read the dimensions and the whole board to the trace. +You should know from earlier exercises that the board is allocated 32 cells by 32 cells, so we will want to read at least 1024 bytes. +Note that this will implicitly capture the board to the trace: + +```java {.numberLines} +byte[] widthDat = readMemory(widthDyn, 4, monitor); +byte[] heightDat = readMemory(heightDyn, 4, monitor); +byte[] cellsData = readMemory(cellsDyn, 1024, monitor); +``` + +### Dumping the Board + +Beyond this, everything is pretty standard Java / Ghidra scripting. +We will need to do some quick conversion of the bytes to integers, and then we can iterate over the cells and print the mines' locations: + +```java {.numberLines} +int width = ByteBuffer.wrap(widthDat).order(ByteOrder.LITTLE_ENDIAN).getInt(); +int height = ByteBuffer.wrap(heightDat).order(ByteOrder.LITTLE_ENDIAN).getInt(); +for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + if ((cellsData[(y + 1) * 32 + x + 1] & 0x80) == 0x80) { + println("Mine at (%d,%d)".formatted(x, y)); + } + } +} +``` + +### Test the Script + +To test, run `termmines` in a proper terminal and attach to it from Ghidra using GDB. +Now, run the script. +Resume and play the game. +Once you win, check that the script output describes the actual board. + +### Exercise: Remove the Mines + +Write a script that will remove the mines from the board. +**NOTE**: The `writeMemory()` and related methods are all subject to the current control mode. +If the mode is read-only, the script cannot modify the target's machine state using those methods. + +## Waiting on / Reacting to Events + +Most of the Debugger is implemented using asynchronous event-driven programming. +This will become apparent if you browse any deeper beyond the flat API. +Check the return value carefully. +A method that might intuitively return `void` may actually return `CompletableFuture`. +Java's completable futures allow you to register callbacks and/or chain additional futures onto them. + +However, Ghidra's scripting system provides a dedicated thread for each execution of a script, so it is acceptable to use the `.get()` methods instead, essentially converting to a synchronous style. +Most of the methods in the flat API will do this for you. +See also the flat API's `waitOn()` method. +The most common two methods to use when waiting for a condition is `waitForBreak()` and `flushAsyncPipelines()`. +The first simply waits for the target to enter the STOPPED state. +Once that happens, the framework and UI will get to work interrogating the back-end debugger to update the various displays. +Unfortunately, if a script does not wait for this update to complete, it may be subject to race conditions. +Thus, the second method politely waits for everything else to finish. +Sadly, it may slow your script down. + +The general template for waiting on a condition is a bit klunky, but conceptually straightforward: + +1. Set up your instrumentation, e.g., breakpoints. +1. Get the target running, and then wait for it to break. +1. Flush the pipelines. +1. Check if the expected conditions are met, esp., that the program counter is where you expect. +1. If the conditions are not met, then let the target run again and repeat. +1. Once the conditions are met, perform the desired actions. +1. Optionally remove your instrumentation and/or let the target run. + +### Exercise: Always Win in 0 Seconds + +**NOTE**: The solution to this exercise is given as a tutorial below, but give it an honest try before peeking. +If you are not already familiar with Eclipse's searching and discovery features, try pressing **Ctrl-O** twice in the editor for your script. +You should now be able to type patterns, optionally with wildcards, to help you find applicable methods. + +Your task is to write a script that will wait for the player to win then patch the machine state, so that the game always prints a score of 0 seconds. +Some gotchas to consider up front: + +* You may want to verify and/or correct the target's execution state. + See `getExecutionState()` and `interrupt()`. + You will not likely be able to place or toggle breakpoints while the target is running. +* Methods like `writeMemory()` are subject to the current control mode. + You may want to check and/or correct this at the top of your script. +* If you require the user to mark code locations with a label, note that those labels will likely end up in the containing function's namespace. + You will need to provide that namespace to `getSymbols()`. +* If you need to set breakpoints, you should try to toggle an existing breakpoint at that location before adding a new one. + Otherwise, you may generate a pile of breakpoints and/or needlessly increment GDB's breakpoint numbers. + +You are successful when you can attach to a running `termmines` and execute your script. +Then, assuming you win the game, the game should award you a score of 0 seconds. +It is OK if you have to re-execute your script after each win. + +### Solution: Always Win in 0 Seconds + +As in the previous scripting tutorial, we will do some verifications at the top of the script. +Your level of pedantry may vary. + +```java {.numberLines} +Trace trace = getCurrentTrace(); +if (trace == null) { + throw new AssertionError("There is no active session"); +} + +if (!"termmines".equals(currentProgram.getName())) { + throw new AssertionError("The current program must be termmines"); +} + +if (getExecutionState(trace).isRunning()) { + monitor.setMessage("Interrupting target and waiting for STOPPED"); + interrupt(); + waitForBreak(3, TimeUnit.SECONDS); +} +flushAsyncPipelines(trace); + +if (!getControlService().getCurrentMode(trace).canEdit(getCurrentDebuggerCoordinates())) { + throw new AssertionError("Current control mode is read-only"); +} +``` + +The first two blocks check that there is an active target with `termmines` as the current program. +As before, the association of the current program to the current target will be implicitly verified when we map symbols. +The second block will interrupt the target if it is running. +We then allow everything to sync up before checking the control mode. +We could instead change the control mode to **Target w/Edits**, but I prefer to keep the user aware that the script needs to modify target machine state. + +Next, we retrieve and map our symbols. +This works pretty much the same as in the previous scripting tutorial, but with attention to the containing function namespace. +The way `termmines` computes the score is to record the start time of the game. +Then, when the player wins, it subtracts the recorded time from the current time. +This script requires the user to label the start time variable `timer`, and to label the instruction that computes the score `reset_timer`. +The function that prints the score must be named `print_win`. + +```java {.numberLines} +List timerSyms = getSymbols("timer", null); +if (timerSyms.isEmpty()) { + throw new AssertionError("Symbol 'timer' is required"); +} +List winFuncs = getGlobalFunctions("print_win"); +if (winFuncs.isEmpty()) { + throw new AssertionError("Function 'print_win' is required"); +} +List resetSyms = getSymbols("reset_timer", winFuncs.get(0)); +if (resetSyms.isEmpty()) { + throw new AssertionError("Symbol 'reset_timer' is required"); +} + +Address timerDyn = translateStaticToDynamic(timerSyms.get(0).getAddress()); +if (timerDyn == null) { + throw new AssertionError("Symbol 'timer' is not mapped to target"); +} +Address resetDyn = translateStaticToDynamic(resetSyms.get(0).getAddress()); +if (resetDyn == null) { + throw new AssertionError("Symbol 'reset_timer' is not mapped to target"); +} +``` + +#### Toggling and Setting Breakpoints + +The first actual operation we perform on the debug session is to toggle or place a breakpoint on the `reset_timer` label. +The API prefers to specify breakpoints in the static context, but you can do either. +To establish that context, you must use a `ProgramLocation`. +For static context, use the current (static) program as the program. +For dynamic context, use the current (dynamic) trace view as the program — see `getCurrentView()`. + +To avoid creating a pile of breakpoints, we will first attempt to enable an existing breakpoint at the desired location. +Technically, the existing breakpoints may not be execute breakpoints, but we will blindly assume they are. +Again, your level of pedantry may vary. +The `breakpointsEnable` method will return the existing breakpoints, so we can check that and create a new breakpoint, if necessary: + +```java {.numberLines} +ProgramLocation breakLoc = + new ProgramLocation(currentProgram, resetSyms.get(0).getAddress()); +Set breaks = breakpointsEnable(breakLoc); +if (breaks == null || breaks.isEmpty()) { + breakpointSetSoftwareExecute(breakLoc, "reset timer"); +} +``` + +#### Waiting to Hit the Breakpoint + +This next loop is quite extensive, but it follows the template given earlier for waiting on conditions. +It is an indefinite loop, so we should check the monitor for cancellation somewhat frequently. +This implies we should use relatively short timeouts in our API calls. +In our case, we just want to confirm that the cause of breaking was hitting our breakpoint. +We do not need to be precise in this check; it suffices to check the program counter: + +```java {.numberLines} +while (true) { + monitor.checkCanceled(); + + TargetExecutionState execState = getExecutionState(trace); + switch (execState) { + case STOPPED: + resume(); + break; + case TERMINATED: + case INACTIVE: + throw new AssertionError("Target terminated"); + case ALIVE: + println( + "I don't know whether or not the target is running. Please make it RUNNING."); + break; + case RUNNING: + /** + * Probably timed out waiting for break. That's fine. Give the player time to + * win. + */ + break; + default: + throw new AssertionError("Unrecognized state: " + execState); + } + try { + monitor.setMessage("Waiting for player to win"); + waitForBreak(1, TimeUnit.SECONDS); + } + catch (TimeoutException e) { + // Give the player time to win. + continue; + } + flushAsyncPipelines(trace); + Address pc = getProgramCounter(); + println("STOPPED at pc = " + pc); + if (resetDyn.equals(pc)) { + break; + } +} +``` + +The "center" of this loop is a call to `waitForBreak()`. +This is the simplest primitive for waiting on the target to meet any condition. +Because we expect the user to take more than a second to win the game, we should expect a timeout exception and just keep waiting. +Using a timeout of 1 second ensures we can terminate promptly should the user cancel the script. + +Before waiting, we need to make sure the target is running. +Because we could repeat the loop while the target is already running, we should only call `resume()` if the target is stopped. +There are utility methods on `TargetExecutionState` like `isRunning()`, which you might prefer to use. +Here, we exhaustively handle every kind of state using a switch statement, which does make the code a bit verbose. + +When the target does break, we first allow the UI to finish interrogating the target. +We can then reliably retrieve and check the program counter. +If the PC matches the dynamic location of `reset_timer`, then the player has won, and we need to reset the start time. + +#### Patching the Start Time + +When the player has won, this particular compilation of `termmines` first calls `time` to get the current time and moves it into `ECX`. +It then subtracts, using a memory operand, the recorded start time. +There are certainly other strategies, but this script expects the user to label that `SUB` instruction `reset_timer`. +We would like the result of that computation to be 0, so we will simply copy the value of `ECX` over the recorded start time: + +```java {.numberLines} +int time = readRegister("ECX").getUnsignedValue().intValue(); +if (!writeMemory(timerDyn, + ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(time).array())) { + throw new AssertionError("Could not write over timer. Does control mode allow edits?"); +} + +resume(); +``` + +The final `resume()` simply allows the target to finish printing the score, which ought to be 0 now! + +## Learning More + +For another demonstration of the flat API, see [DemoDebuggerScript](../../../Ghidra/Debug/Debugger/ghidra_scripts/DemoDebuggerScript.java), or just ask Eclipse for all the implementations of `FlatDebuggerAPI`. +If you want a list of methods with explanations, you should refer to the documentation in the `FlatDebuggerAPI` interface. diff --git a/GhidraDocs/GhidraClass/Debugger/B4-Modeling.html b/GhidraDocs/GhidraClass/Debugger/B4-Modeling.html new file mode 100644 index 0000000000..4eff47a23e --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B4-Modeling.html @@ -0,0 +1,1202 @@ + + + + + + + Ghidra Debugger + + + + + + +
+

Ghidra Debugger

+
+ +
+

P-code Modeling

+

This module assumes you have completed the Emulation and Scripting portions of this course. It also +assumes you have fairly deep knowledge of Ghidra’s low p-code.

+

Modeling is another one of those loaded terms. Here we are going to +focus on its use in what we will call augmented emulation. This +is used for things like dynamic taint analysis and concolic execution. +The idea is to leverage the emulator for concrete execution while +augmenting it with some auxiliary model, e.g., taint labels or symbolic +expressions. Ghidra’s abstract emulator implementations facilitate the +composition of independent models so, if careful attention is given to +your implementation, the auxiliary model can be re-used for other cases, +perhaps even in static analysis.

+

This module will address the following aspects of modeling:

+
    +
  • Environment, i.e., p-code userops and stubbing.
  • +
  • Arithmetic operations.
  • +
  • Storage, addressing, and memory operations.
  • +
  • Use in dynamic analysis.
  • +
  • Use in static analysis.
  • +
  • Integration with the GUI.
  • +
+

Modeling is definitely a development task. There is generally a +specific interface for each aspect, and Ghidra may provide abstract +implementations of them, which you may choose to use or ignore. If you +do not already have a development environment set up, you will need to +do that now. Either use the GhidraDev plugin for Eclipse and associate +it with an installation of Ghidra, or clone the ghidra +source repository and prepare it for development in Eclipse. When +prototyping, you may find it easiest to develop a script, which is what +this tutorial will do.

+
+

Modeling the Environment

+

There are different pieces to the environment. This covers the +implementation of p-code userops, which generally covers everything not +modeled by p-code. For example, the x86-64 SYSCALL +instruction just invokes the syscall() userop, which +provides a hook for implementing them. Modeling system calls is such a +common case that Ghidra provides a special programming interface for it. +Stubbing external functions is covered, in part, by the Emulation module. By providing common stubs +in a userop library, the user can stub the external function by placing +a Sleigh breakpoint that invokes the appropriate userop.

+
+

Modeling by Java Callbacks

+

A userop library is created by implementing the +PcodeUseropLibrary interface, most likely by extending +AnnotatedPcodeUseropLibrary. For example, to provide a stub +for strlen:

+
public static class JavaStdLibPcodeUseropLibrary<T> extends AnnotatedPcodeUseropLibrary<T> {
+    private final AddressSpace space;
+    private final Register regRSP;
+    private final Register regRAX;
+    private final Register regRDI;
+    private final Register regRSI;
+
+    public JavaStdLibPcodeUseropLibrary(SleighLanguage language) {
+        space = language.getDefaultSpace();
+        regRSP = language.getRegister("RSP");
+        regRAX = language.getRegister("RAX");
+        regRDI = language.getRegister("RDI");
+        regRSI = language.getRegister("RSI");
+    }
+
+    @PcodeUserop
+    public void __x86_64_RET(
+            @OpExecutor PcodeExecutor<T> executor,
+            @OpState PcodeExecutorState<T> state) {
+        PcodeArithmetic<T> arithmetic = state.getArithmetic();
+        T tRSP = state.getVar(regRSP, Reason.EXECUTE_READ);
+        long lRSP = arithmetic.toLong(tRSP, Purpose.OTHER);
+        T tReturn = state.getVar(space, lRSP, 8, true, Reason.EXECUTE_READ);
+        long lReturn = arithmetic.toLong(tReturn, Purpose.BRANCH);
+        state.setVar(regRSP, arithmetic.fromConst(lRSP + 8, 8));
+        ((PcodeThreadExecutor<T>) executor).getThread()
+                .overrideCounter(space.getAddress(lReturn));
+    }
+
+    @PcodeUserop
+    public void __libc_strlen(@OpState PcodeExecutorState<T> state) {
+        PcodeArithmetic<T> arithmetic = state.getArithmetic();
+        T tStr = state.getVar(regRDI, Reason.EXECUTE_READ);
+        long lStr = arithmetic.toLong(tStr, Purpose.OTHER);
+        T tMaxlen = state.getVar(regRSI, Reason.EXECUTE_READ);
+        long lMaxlen = arithmetic.toLong(tMaxlen, Purpose.OTHER);
+
+        for (int i = 0; i < lMaxlen; i++) {
+            T tChar = state.getVar(space, lStr + i, 1, false, Reason.EXECUTE_READ);
+            if (arithmetic.toLong(tChar, Purpose.OTHER) == 0) {
+                state.setVar(regRAX, arithmetic.fromConst(Integer.toUnsignedLong(i), 8));
+                break;
+            }
+        }
+    }
+}
+

Here, we implement the stub using Java callbacks. This is more useful +when modeling things outside of Ghidra’s definition of machine state, +e.g., to simulate kernel objects in an underlying operating system. +Nevertheless, it can be used to model simple state changes as well. A +user would place a breakpoint at either the call site or the call +target, have it invoke __libc_strlen(), and then invoke +either emu_skip_decoded() or __x86_64_RET() +depending on where the breakpoint was placed.

+
+
+

Modeling by Sleigh Semantics

+

The advantage to Java callbacks is that things are relatively +intuitive to do, but the temptation, which we intentionally demonstrate +here, is to make everything concrete. You may notice the library uses a +type parameter T, which specifies the type of all variables +in the emulator’s state. Leaving it as T indicates the +library is compatible with any type. For a concrete emulator, +T = byte[], and so there is no loss in making things +concrete, and then converting back to T using the +arithmetic object. However, if the emulator has been augmented, as we +will discuss below, the model may become confused, because values +computed by a careless userop will appear to the model a literal +constant. To avoid this, you should keep everything a T and use the +arithmetic object to perform any arithmetic operations. Alternatively, +you can implement the userop using pre-compiled Sleigh code:

+
public static class SleighStdLibPcodeUseropLibrary<T> extends AnnotatedPcodeUseropLibrary<T> {
+    private static final String SRC_RET = """
+            RIP = *:8 RSP;
+            RSP = RSP + 8;
+            return [RIP];
+            """;
+    private static final String SRC_STRLEN = """
+            __result = 0;
+            <loop>
+            if (*:1 (str+__result) == 0 || __result >= maxlen) goto <exit>;
+            __result = __result + 1;
+            goto <loop>;
+            <exit>
+            """;
+    private final Register regRAX;
+    private final Register regRDI;
+    private final Register regRSI;
+    private final Varnode vnRAX;
+    private final Varnode vnRDI;
+    private final Varnode vnRSI;
+
+    private PcodeProgram progRet;
+    private PcodeProgram progStrlen;
+
+    public SleighStdLibPcodeUseropLibrary(SleighLanguage language) {
+        regRAX = language.getRegister("RAX");
+        regRDI = language.getRegister("RDI");
+        regRSI = language.getRegister("RSI");
+        vnRAX = new Varnode(regRAX.getAddress(), regRAX.getMinimumByteSize());
+        vnRDI = new Varnode(regRDI.getAddress(), regRDI.getMinimumByteSize());
+        vnRSI = new Varnode(regRSI.getAddress(), regRSI.getMinimumByteSize());
+    }
+
+    @PcodeUserop
+    public void __x86_64_RET(@OpExecutor PcodeExecutor<T> executor,
+            @OpLibrary PcodeUseropLibrary<T> library) {
+        if (progRet == null) {
+            progRet = SleighProgramCompiler.compileUserop(executor.getLanguage(),
+                "__x86_64_RET", List.of(), SRC_RET, PcodeUseropLibrary.nil(), List.of());
+        }
+        progRet.execute(executor, library);
+    }
+
+    @PcodeUserop
+    public void __libc_strlen(@OpExecutor PcodeExecutor<T> executor,
+            @OpLibrary PcodeUseropLibrary<T> library) {
+        if (progStrlen == null) {
+            progStrlen = SleighProgramCompiler.compileUserop(executor.getLanguage(),
+                "__libc_strlen", List.of("__result", "str", "maxlen"),
+                SRC_STRLEN, PcodeUseropLibrary.nil(), List.of(vnRAX, vnRDI, vnRSI));
+        }
+        progStrlen.execute(executor, library);
+    }
+}
+

At construction, we capture the varnodes we need to use. We could +just use them directly in the source, but this demonstrates the ability +to alias them, which makes the Sleigh source more re-usable across +target architectures. We then lazily compile each userop upon its first +invocation. These are technically still Java callbacks, but our +implementation delegates to the executor, giving it the compiled p-code +program.

+

The advantage here is that the code will properly use the underlying +arithmetic appropriately. However, for some models, that may actually +not be desired. Some symbolic models might just like to see a literal +call to strlen().

+
+
+

Modeling by Structured Sleigh

+

The disadvantage to pre-compiled p-code is all the boilerplate and +manual handling of Sleigh compilation. Additionally, when stubbing C +functions, you have to be mindful of the types, and things may get +complicated enough that you pine for more C-like control structures. The +same library can be implemented using an incubating feature we call +Structured Sleigh:

+
public static class StructuredStdLibPcodeUseropLibrary<T>
+        extends AnnotatedPcodeUseropLibrary<T> {
+    public StructuredStdLibPcodeUseropLibrary(CompilerSpec cs) {
+        new MyStructuredPart(cs).generate(ops);
+    }
+
+    public static class MyStructuredPart extends StructuredSleigh {
+        protected MyStructuredPart(CompilerSpec cs) {
+            super(cs);
+        }
+
+        @StructuredUserop
+        public void __x86_64_RET() {
+            Var RSP = lang("RSP", type("void **"));
+            Var RIP = lang("RIP", type("void *"));
+            RIP.set(RSP.deref());
+            RSP.addiTo(8);
+            _return(RIP);
+        }
+
+        @StructuredUserop
+        public void __libc_strlen() {
+            Var result = lang("RAX", type("long"));
+            Var str = lang("RDI", type("char *"));
+            Var maxlen = lang("RSI", type("long"));
+
+            _for(result.set(0), result.ltiu(maxlen).andb(str.index(result).deref().eq(0)),
+                result.inc(), () -> {
+                });
+        }
+    }
+}
+

This is about as succinct as we can get specifying p-code behaviors +in Java. While these may appear like callbacks into Java methods that +use a special API for state manipulation, that is not entirely accurate. +The Java method is invoked once as a way to “transpile” the Structured +Sleigh into standard Sleigh semantic code. That code is then compiled to +p-code, which will be executed whenever the userop is called. In a +sense, Structured Sleigh is a DSL hosted in Java….

+

Unfortunately, we cannot overload operators in Java, so we are stuck +using method invocations. Another disadvantage is the dependence on a +compiler spec for type resolution. Structured Sleigh is not the best +suited for all circumstances, e.g., the implementation of +__x86_64_RET is odd to express. Arguably, there is no real +need to ascribe high-level types to RSP and +RIP when expressing low-level operations. Luckily, these +implementation techniques can be mixed. A single library can implement +the RET using pre-compiled Sleigh, but strlen +using Structured Sleigh.

+
+
+

Modeling System Calls

+

We will not cover this in depth, but here are some good examples:

+ +

More can be obtained by finding all implementations of +EmuSyscallLibrary in your IDE. The Linux system call +libraries are incomplete. They only provide a few simple file +operations, but it is sufficient to demonstrate the simulation of an +underlying operating system. They can also be extended and/or composed +to provide additional system calls.

+
+
+

Using Custom Userop Libraries

+

The use of a custom library in a stand-alone emulation script is +pretty straightforward:

+
public class CustomLibraryScript extends GhidraScript {
+    @Override
+    protected void run() throws Exception {
+        PcodeEmulator emu = new PcodeEmulator(currentProgram.getLanguage()) {
+            @Override
+            protected PcodeUseropLibrary<byte[]> createUseropLibrary() {
+                return super.createUseropLibrary()
+                        .compose(new ModelingScript.StructuredStdLibPcodeUseropLibrary<>(
+                            currentProgram.getCompilerSpec()));
+            }
+        };
+        emu.inject(currentAddress, """
+                __libc_strlen();
+                __X86_64_RET();
+                """);
+        // TODO: Initialize the emulator's memory from the current program
+        PcodeThread<byte[]> thread = emu.newThread();
+        // TODO: Initialize the thread's registers
+
+        while (true) {
+            monitor.checkCancelled();
+            thread.stepInstruction(100);
+        }
+    }
+}
+

The key is to override createUseropLibrary() in an +anonymous extension of the PcodeEmulator. It is polite to +compose your library with the one already provided by the super class, +lest you remove userops and cause unexpected crashes later. For the sake +of demonstration, we have included an injection that uses the custom +library, and we have included a monitored loop to execute a single +thread indefinitely. The initialization of the machine and its one +thread is left to the script writer. The emulation is not +implicitly associated with the program! You must copy the program image +into its state, and you should choose a different location for the +injection. Refer to the example scripts in Ghidra’s +SystemEmulation module.

+

If you would like to (temporarily) override the GUI with a custom +userop library, you can by overriding the GUI’s emulator factory:

+
public class InstallCustomLibraryScript extends GhidraScript implements FlatDebuggerAPI {
+    public static class CustomBytesDebuggerPcodeEmulator extends BytesDebuggerPcodeEmulator {
+        private CustomBytesDebuggerPcodeEmulator(PcodeDebuggerAccess access) {
+            super(access);
+        }
+
+        @Override
+        protected PcodeUseropLibrary<byte[]> createUseropLibrary() {
+            return super.createUseropLibrary()
+                    .compose(new ModelingScript.SleighStdLibPcodeUseropLibrary<>(
+                        (SleighLanguage) access.getLanguage()));
+        }
+    }
+
+    public static class CustomBytesDebuggerPcodeEmulatorFactory
+            extends BytesDebuggerPcodeEmulatorFactory {
+        @Override
+        public DebuggerPcodeMachine<?> create(PcodeDebuggerAccess access) {
+            return new CustomBytesDebuggerPcodeEmulator(access);
+        }
+    }
+
+    @Override
+    protected void run() throws Exception {
+        getEmulationService().setEmulatorFactory(new CustomBytesDebuggerPcodeEmulatorFactory());
+    }
+}
+

This will make your custom userops available in Sleigh injections. +NOTE: There is currently no way to introduce custom +userops to Watches or the Go To dialog.

+
+
+
+

Modeling Arithmetic Operations

+

The remaining sections deal in modeling things other than concrete +emulation. In most dynamic analysis cases, we will augment a +concrete emulator with some other abstract execution model, e.g., for +dynamic taint analysis or concolic emulation. Ghidra’s emulation +framework favors the composition of execution models. This allows you to +focus on the abstract execution model and later compose it with the +concrete model to form the full augmented model. This also facilitates +the creation of re-usable components, but that still requires some +forethought.

+

Modeling the arithmetic is fairly straightforward. For demonstration +we will develop a model for building up symbolic expressions. The idea +is that after doing some number of steps of emulation, the user can +examine not only the concrete value of a variable, but the expression +that generated it in terms of the variables at the start of the stepping +schedule. We will not attempt to simplify or otherwise analyze +these expressions. For that, you would want to use a proper SMT, which +is beyond the scope of this tutorial.

+
+

The Model

+

We will represent constants as literals, and then build up expression +trees as each operation is applied. The number of operators can get +extensive, and your particular use case / target may not require all of +them. That said, if you intend for your model to be adopted broadly, you +should strive for as complete an implementation as reasonably possible. +At the very least, strive to provide extension points where you predict +the need to alter or add features. In this tutorial, we will elide all +but what is necessary to illustrate the implementation.

+

If it is not already provided to you by your dependencies, you will +need to devise the actual model. These need not extend from nor +implement any Ghidra-specific interface, but they can.

+
public class ModelingScript extends GhidraScript {
+    interface Expr {
+    }
+
+    interface UnExpr extends Expr {
+        Expr u();
+    }
+
+    interface BinExpr extends Expr {
+        Expr l();
+
+        Expr r();
+    }
+
+    record LitExpr(BigInteger val, int size) implements Expr {
+    }
+
+    record VarExpr(Varnode vn) implements Expr {
+        public VarExpr(AddressSpace space, long offset, int size) {
+            this(space.getAddress(offset), size);
+        }
+
+        public VarExpr(Address address, int size) {
+            this(new Varnode(address, size));
+        }
+    }
+
+    record InvExpr(Expr u) implements UnExpr {
+    }
+
+    record AddExpr(Expr l, Expr r) implements BinExpr {
+    }
+
+    record SubExpr(Expr l, Expr r) implements BinExpr {
+    }
+
+    @Override
+    protected void run() throws Exception {
+        // TODO Auto-generated method stub
+
+    }
+}
+

It should be fairly apparent how you could add more expression types +to complete the model. There is some odd nuance in the naming of p-code +operations, so do read the documentation carefully. If you are not +entirely certain what an operation does, take a look at OpBehaviorFactory. +You can also examine the concrete implementation on byte arrays BytesPcodeArithmetic.

+
+
+

Mapping the Model

+

Now, to map the model to p-code, we implement the +PcodeArithmetic interface. In many cases, the +implementation can be an enumeration: one for big endian and one for +little endian. Rarely, it can be a singleton. Conventionally, you should +also include static methods for retrieving an instance by endianness or +processor language:

+
public enum ExprPcodeArithmetic implements PcodeArithmetic<Expr> {
+    BE(Endian.BIG), LE(Endian.LITTLE);
+
+    public static ExprPcodeArithmetic forEndian(Endian endian) {
+        return endian.isBigEndian() ? BE : LE;
+    }
+
+    public static ExprPcodeArithmetic forLanguage(Language language) {
+        return language.isBigEndian() ? BE : LE;
+    }
+
+    private final Endian endian;
+
+    private ExprPcodeArithmetic(Endian endian) {
+        this.endian = endian;
+    }
+
+    @Override
+    public Endian getEndian() {
+        return endian;
+    }
+
+    @Override
+    public Expr unaryOp(int opcode, int sizeout, int sizein1, Expr in1) {
+        return switch (opcode) {
+            case PcodeOp.INT_NEGATE -> new InvExpr(in1);
+            default -> throw new UnsupportedOperationException(PcodeOp.getMnemonic(opcode));
+        };
+    }
+
+    @Override
+    public Expr binaryOp(int opcode, int sizeout, int sizein1, Expr in1, int sizein2,
+            Expr in2) {
+        return switch (opcode) {
+            case PcodeOp.INT_ADD -> new AddExpr(in1, in2);
+            case PcodeOp.INT_SUB -> new SubExpr(in1, in2);
+            default -> throw new UnsupportedOperationException(PcodeOp.getMnemonic(opcode));
+        };
+    }
+
+    @Override
+    public Expr modBeforeStore(int sizeout, int sizeinAddress, Expr inAddress, int sizeinValue,
+            Expr inValue) {
+        return inValue;
+    }
+
+    @Override
+    public Expr modAfterLoad(int sizeout, int sizeinAddress, Expr inAddress, int sizeinValue,
+            Expr inValue) {
+        return inValue;
+    }
+
+    @Override
+    public Expr fromConst(byte[] value) {
+        if (endian.isBigEndian()) {
+            return new LitExpr(new BigInteger(1, value), value.length);
+        }
+        byte[] reversed = Arrays.copyOf(value, value.length);
+        ArrayUtils.reverse(reversed);
+        return new LitExpr(new BigInteger(1, reversed), reversed.length);
+    }
+
+    @Override
+    public Expr fromConst(BigInteger value, int size, boolean isContextreg) {
+        return new LitExpr(value, size);
+    }
+
+    @Override
+    public Expr fromConst(long value, int size) {
+        return fromConst(BigInteger.valueOf(value), size);
+    }
+
+    @Override
+    public byte[] toConcrete(Expr value, Purpose purpose) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public long sizeOf(Expr value) {
+        throw new UnsupportedOperationException();
+    }
+}
+

We have implemented two arithmetic models: one for big-endian +languages and one for little-endian. The endianness comes into play when +we encode constant values passed to fromConst(). We must +convert the byte[] value to a big integer accordingly. The +choice of BigInteger is merely a matter of preference; you +could easily just have LitExpr encapsulate the +byte[] and worry about how to interpret them later. We also +override all implementations of fromConst() to avoid the +back-and-forth conversion between BigInteger and +byte[].

+

The implementations of unaryOp() and +binaryOp() are straightforward. Just switch on the opcode +and construct the appropriate expression. This is a place where you +might want to provide extensibility.

+

NOTE: If you would like to capture location +information, i.e., what instruction performed this operation, then you +can override the default unaryOp() and +binaryOp() methods, which receive the actual +PcodeOp object. You can get both the opcode and the +sequence number (address, index) from that PcodeOp. The +ones with signatures taking the integer opcode can just throw an +AssertionError.

+

The implementations of modBeforeStore() and +modAfterLoad() are stubs. They provide an opportunity to +capture dereferencing information. We do not need that information, so +we just return the value. The mod methods tread a bit into +storage and addressing, which we cover more thoroughly later, but they +model memory operations to the extent they do not actually require a +storage mechanism. For example, were this a dynamic taint analyzer, we +could use modAfterLoad() to record that a value was +retrieved via a tainted address. The inValue parameter +gives the Expr actually retrieved from the emulator’s +storage, and inAddress gives the address (really just the +Expr piece) used to retrieve it. Conversely, in +modBeforeStore(), inValue gives the value +about to be stored, and inAddress gives the address used to +store it.

+

We implement neither toConcrete() nor +sizeOf(). Since we will be augmenting a concrete emulator, +these methods will be provided by the concrete piece. If this model is +ever to be used in static analysis, then it may be worthwhile to +implement these methods, so the model may be used independently of the +concrete emulator. In that case, the methods should attempt to do as +documented but may throw an exception upon failure.

+
+
+
+

Modeling Storage, Addressing, and Memory Operations

+

The emulator’s storage model is a PcodeExecutorState. +Since we desire an augmented emulator, we will need to provide it a +PcodeExecutorState<Pair<byte[], Expr>>. This +tells Java the state is capable of working with pairs of concrete state +and the abstract model state. Addresses in that state are also pairs. +For augmented emulation, the storage model often borrows the concrete +addressing model; thus, we will use only the byte[] element +for our addressing.

+

The composition of states with the same addressing model is common +enough that Ghidra provides abstract components to facilitate it. The +relevant interface is PcodeExecutorStatePiece, which is the +one we actually implement, by extending from +AbstractLongOffsetPcodeExecutorStatePiece.

+

NOTE: If you do not desire a concrete address model, +then you should implement PcodeExecutorState<Expr> +directly. A “state” is also “state piece” whose address model is the +same as its value model, so states can still be composed. On one hand, +the abstractly-addressed state provides a component that is readily used +in both static and dynamic analysis; whereas, the concretely-addressed +piece is suited only for dynamic analysis. On the other hand, you may +have some difficulty correlating concrete and abstract pieces during +dynamic analysis when aliasing and indirection is involved.

+

Now for the code. Be mindful of all the adjectives. If you are not +already familiar with Java naming conventions for “enterprise +applications” or our particular implementation of them, you are about to +see it on full display.

+
public static class ExprSpace {
+    protected final NavigableMap<Long, Expr> map;
+    protected final AddressSpace space;
+
+    protected ExprSpace(AddressSpace space, NavigableMap<Long, Expr> map) {
+        this.space = space;
+        this.map = map;
+    }
+
+    public ExprSpace(AddressSpace space) {
+        this(space, new TreeMap<>());
+    }
+
+    public void clear() {
+        map.clear();
+    }
+
+    public void set(long offset, Expr val) {
+        // TODO: Handle overlaps / offcut gets and sets
+        map.put(offset, val);
+    }
+
+    public Expr get(long offset, int size) {
+        // TODO: Handle overlaps / offcut gets and sets
+        Expr expr = map.get(offset);
+        return expr != null ? expr : new VarExpr(space, offset, size);
+    }
+}
+
+public static abstract class AbstractExprPcodeExecutorStatePiece<S extends ExprSpace> extends
+        AbstractLongOffsetPcodeExecutorStatePiece<byte[], Expr, S> {
+
+    protected final AbstractSpaceMap<S> spaceMap = newSpaceMap();
+
+    public AbstractExprPcodeExecutorStatePiece(Language language) {
+        super(language, BytesPcodeArithmetic.forLanguage(language),
+            ExprPcodeArithmetic.forLanguage(language));
+    }
+
+    protected abstract AbstractSpaceMap<S> newSpaceMap();
+
+    @Override
+    public MemBuffer getConcreteBuffer(Address address, Purpose purpose) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void clear() {
+        for (S space : spaceMap.values()) {
+            space.clear();
+        }
+    }
+
+    @Override
+    protected S getForSpace(AddressSpace space, boolean toWrite) {
+        return spaceMap.getForSpace(space, toWrite);
+    }
+
+    @Override
+    protected void setInSpace(ExprSpace space, long offset, int size, Expr val) {
+        space.set(offset, val);
+    }
+
+    @Override
+    protected Expr getFromSpace(S space, long offset, int size, Reason reason) {
+        return space.get(offset, size);
+    }
+
+    @Override
+    protected Map<Register, Expr> getRegisterValuesFromSpace(S s, List<Register> registers) {
+        throw new UnsupportedOperationException();
+    }
+}
+
+public static class ExprPcodeExecutorStatePiece
+        extends AbstractExprPcodeExecutorStatePiece<ExprSpace> {
+    public ExprPcodeExecutorStatePiece(Language language) {
+        super(language);
+    }
+
+    @Override
+    protected AbstractSpaceMap<ExprSpace> newSpaceMap() {
+        return new SimpleSpaceMap<ExprSpace>() {
+            @Override
+            protected ExprSpace newSpace(AddressSpace space) {
+                return new ExprSpace(space);
+            }
+        };
+    }
+}
+
+public static class BytesExprPcodeExecutorState extends PairedPcodeExecutorState<byte[], Expr> {
+    public BytesExprPcodeExecutorState(PcodeExecutorStatePiece<byte[], byte[]> concrete) {
+        super(new PairedPcodeExecutorStatePiece<>(concrete,
+            new ExprPcodeExecutorStatePiece(concrete.getLanguage())));
+    }
+}
+

The abstract class implements a strategy where a dedicated object +handles each address space. Each object typically maintains of map of +offsets (type long) to the model type, i.e., +Expr. We provide that object type ExprSpace, +which is where we implement most of our actual storage.

+

WARNING: For the sake of simplicity in +demonstration, we have neglected many details. Notably, we have +neglected the possibility that writes overlap or that reads are offcut +from the variables actually stored there. This may not seem like a huge +problem, but it is actually quite common, esp., since x86 registers are +structured. A write to RAX followed by a read from +EAX will immediately demonstrate this issue. Nevertheless, +we leave those details as an exercise.

+

The remaining parts are mostly boilerplate. We implement the “state +piece” interface by creating another abstract class. An abstract class +is not absolutely necessary, but it will be useful when we integrate the +model with traces and the Debugger GUI later. We are given the language +and applicable arithmetics, which we just pass to the super constructor. +We need not implement a concrete buffer. This would only be required if +we needed to decode instructions from the abstract storage model. For +dynamic analysis, we would bind concrete buffers from the concrete +piece, not the abstract. For static analysis, you would need to decide +whether to just use the statically disassembled instructions or to try +decoding from the abstract model. The clear() method is +implemented by clearing the map of address spaces. Note that the +abstract implementation does not provide that map for us, so we must +provide it and the logic to clear it. The next three methods are for +getting spaces from that map and then setting and getting values in +them. The last method getRegisterValuesFromSpace() is more +for user inspection, so it need not be implemented, at least not +yet.

+

Finally, we complete the implementation of the state piece with +ExprPcodeExecutorStatePiece, which provides the actual map +and an ExprSpace factory method newSpace(). +The implementation of ExprPcodeExecutorState is simple. It +takes the concrete piece and pairs it with a new piece for our +model.

+
+
+

Model-Specific Userops

+

We do not cover this deeply, but there are two examples in +Ghidra:

+ +

The first provides a means of marking variables with taint. Unlike +our Expr model, which automatically generates a +VarExpr whenever a variable is read for the first time, the +taint analyzer assumes no state is tainted. You may notice the library +does not use a generic T, but instead requires +T=Pair<byte[], TaintVec>. This will ensure the +library is only used with a taint-augmented emulator.

+

The second demonstrates the ability to extend Ghidra’s system call +libraries, not only with additional calls, but also with additional +models.

+
+
+

Constructing the Augmented Emulator

+

Ghidra supports the construction of augmented emulators through the +AuxEmulatorPartsFactory<Expr> interface. These are +typically singletons.

+
public enum BytesExprEmulatorPartsFactory implements AuxEmulatorPartsFactory<Expr> {
+    INSTANCE;
+
+    @Override
+    public PcodeArithmetic<Expr> getArithmetic(Language language) {
+        return ExprPcodeArithmetic.forLanguage(language);
+    }
+
+    @Override
+    public PcodeUseropLibrary<Pair<byte[], Expr>> createSharedUseropLibrary(
+            AuxPcodeEmulator<Expr> emulator) {
+        return PcodeUseropLibrary.nil();
+    }
+
+    @Override
+    public PcodeUseropLibrary<Pair<byte[], Expr>> createLocalUseropStub(
+            AuxPcodeEmulator<Expr> emulator) {
+        return PcodeUseropLibrary.nil();
+    }
+
+    @Override
+    public PcodeUseropLibrary<Pair<byte[], Expr>> createLocalUseropLibrary(
+            AuxPcodeEmulator<Expr> emulator, PcodeThread<Pair<byte[], Expr>> thread) {
+        return PcodeUseropLibrary.nil();
+    }
+
+    @Override
+    public PcodeExecutorState<Pair<byte[], Expr>> createSharedState(
+            AuxPcodeEmulator<Expr> emulator, BytesPcodeExecutorStatePiece concrete) {
+        return new BytesExprPcodeExecutorState(concrete);
+    }
+
+    @Override
+    public PcodeExecutorState<Pair<byte[], Expr>> createLocalState(
+            AuxPcodeEmulator<Expr> emulator, PcodeThread<Pair<byte[], Expr>> thread,
+            BytesPcodeExecutorStatePiece concrete) {
+        return new BytesExprPcodeExecutorState(concrete);
+    }
+}
+
+public class BytesExprPcodeEmulator extends AuxPcodeEmulator<Expr> {
+    public BytesExprPcodeEmulator(Language language) {
+        super(language);
+    }
+
+    @Override
+    protected AuxEmulatorPartsFactory<ModelingScript.Expr> getPartsFactory() {
+        return BytesExprEmulatorPartsFactory.INSTANCE;
+    }
+}
+

Lots of boilerplate. Essentially, all the parts factory does is give +us a flat interface for providing all the parts necessary to construct +our augmented emulator: the model arithmetic, userop libraries for the +machine and threads, state for the machine and threads. For the +arithmetic, we trivially provide the arithmetic for the given language. +For the userop libraries, we just provide the empty library. If you had +custom libraries and/or model-specific libraries, you would compose them +here. Finally, for the states, we just take the provided concrete state +and construct our augmented state.

+
+
+

Use in Dynamic Analysis

+

What we have constructed so far is suitable for constructing and +using our augmented emulator in a script. Using it is about as +straightforward as the plain concrete emulator. The exception may be +when accessing its state, you will need to be cognizant of the +pairing.

+
public class ModelingScript extends GhidraScript {
+
+    // ...
+
+    @Override
+    protected void run() throws Exception {
+        BytesExprPcodeEmulator emu = new BytesExprPcodeEmulator(currentProgram.getLanguage());
+        // TODO: Initialize the machine
+        PcodeExecutorState<Pair<byte[], Expr>> state = emu.getSharedState();
+        state.setVar(currentAddress, 4, true,
+            Pair.of(new byte[] { 1, 2, 3, 4 }, new VarExpr(currentAddress, 4)));
+        PcodeThread<Pair<byte[], Expr>> thread = emu.newThread();
+        // TODO: Initialize the thread
+        while (true) {
+            monitor.checkCancelled();
+            thread.stepInstruction(100);
+        }
+    }
+}
+

NOTE: When accessed as a paired state, all sets will +affect both pieces. If you use the arithmetic to generate them, remember +that it will use fromConst on both arithmetics to generate +the pair, so you may be setting the right side to a +LitExpr. To modify just one side of the pair, cast the +state to PairedPcodeExecutorState, and then use +getLeft(), and getRight() to retrieve the +separate pieces.

+
+
+

Use in Static Analysis

+

We do not go into depth here, especially since this is not +formalized. There are many foundational utilities not factored out yet. +Nevertheless, for an example where the PcodeArithmetic and +PcodeExecutorState interfaces are used in static analysis, +see the Debugger’s stack unwinder. While unwinding a full stack +technically qualifies as dynamic analysis, the analysis of each +individual function to recover stack frame information is purely static. +See UnwindAnalysis +and its sibling files.

+
+
+

GUI Integration

+

This part is rather tedious. It is mostly boilerplate, and the only +real functionality we need to provide is a means of serializing +Expr to the trace database. Ideally, this serialization is +also human readable, since that will make it straightforward to display +in the UI. Typically, there are two more stages of integration. First is +integration with traces, which involves the aforementioned +serialization. Second is integration with targets, which often does not +apply to abstract models, but could. Each stage involves an extension to +the lower stage’s state. Java does not allow multiple inheritance, so we +will have to be clever in our factoring, but we generally cannot escape +the boilerplate.

+
public static class ExprTraceSpace extends ExprSpace {
+    protected final PcodeTracePropertyAccess<String> property;
+
+    public ExprTraceSpace(AddressSpace space, PcodeTracePropertyAccess<String> property) {
+        super(space);
+        this.property = property;
+    }
+
+    @Override
+    protected Expr whenNull(long offset, int size) {
+        String string = property.get(space.getAddress(offset));
+        return deserialize(string);
+    }
+
+    public void writeDown(PcodeTracePropertyAccess<String> into) {
+        if (space.isUniqueSpace()) {
+            return;
+        }
+
+        for (Entry<Long, Expr> entry : map.entrySet()) {
+            // TODO: Ignore and/or clear non-entries
+            into.put(space.getAddress(entry.getKey()), serialize(entry.getValue()));
+        }
+    }
+
+    protected String serialize(Expr expr) {
+        return Unfinished.TODO();
+    }
+
+    protected Expr deserialize(String string) {
+        return Unfinished.TODO();
+    }
+}
+
+public static class ExprTracePcodeExecutorStatePiece
+        extends AbstractExprPcodeExecutorStatePiece<ExprTraceSpace>
+        implements TracePcodeExecutorStatePiece<byte[], Expr> {
+    public static final String NAME = "Taint";
+
+    protected final PcodeTraceDataAccess data;
+    protected final PcodeTracePropertyAccess<String> property;
+
+    public ExprTracePcodeExecutorStatePiece(PcodeTraceDataAccess data) {
+        super(data.getLanguage());
+        this.data = data;
+        this.property = data.getPropertyAccess(NAME, String.class);
+    }
+
+    @Override
+    public PcodeTraceDataAccess getData() {
+        return data;
+    }
+
+    @Override
+    protected AbstractSpaceMap<ExprTraceSpace> newSpaceMap() {
+        return new CacheingSpaceMap<PcodeTracePropertyAccess<String>, ExprTraceSpace>() {
+            @Override
+            protected PcodeTracePropertyAccess<String> getBacking(AddressSpace space) {
+                return property;
+            }
+
+            @Override
+            protected ExprTraceSpace newSpace(AddressSpace space,
+                    PcodeTracePropertyAccess<String> backing) {
+                return new ExprTraceSpace(space, property);
+            }
+        };
+    }
+
+    @Override
+    public ExprTracePcodeExecutorStatePiece fork() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void writeDown(PcodeTraceDataAccess into) {
+        PcodeTracePropertyAccess<String> property = into.getPropertyAccess(NAME, String.class);
+        for (ExprTraceSpace space : spaceMap.values()) {
+            space.writeDown(property);
+        }
+    }
+}
+

Because we do not need any additional logic for target integration, +we do not need to extend the state pieces any further. The concrete +pieces that we augment will contain all the target integration needed. +We have left the serialization as an exercise, though. Last, we +implement the full parts factory and use it to construct and install a +full Expr-augmented emulator factory:

+
public static class BytesExprDebuggerPcodeEmulator extends AuxDebuggerPcodeEmulator<Expr> {
+    public BytesExprDebuggerPcodeEmulator(PcodeDebuggerAccess access) {
+        super(access);
+    }
+
+    @Override
+    protected AuxDebuggerEmulatorPartsFactory<Expr> getPartsFactory() {
+        return BytesExprDebuggerEmulatorPartsFactory.INSTANCE;
+    }
+}
+
+public static class BytesExprDebuggerPcodeEmulatorFactory
+        implements DebuggerPcodeEmulatorFactory {
+
+    @Override
+    public String getTitle() {
+        return "Expr";
+    }
+
+    @Override
+    public DebuggerPcodeMachine<?> create(PcodeDebuggerAccess access) {
+        return new BytesExprDebuggerPcodeEmulator(access);
+    }
+}
+

The factory can then be installed using a script. The script will set +your factory as the current emulator factory for the whole tool; +however, your script-based factory will not be listed in the menus. +Also, if you change your emulator, you must re-run the script to install +those modifications. You might also want to invalidate the emulation +cache.

+
public class InstallExprEmulatorScript extends GhidraScript implements FlatDebuggerAPI {
+    @Override
+    protected void run() throws Exception {
+        getEmulationService()
+                .setEmulatorFactory(new ModelingScript.BytesExprDebuggerPcodeEmulatorFactory());
+    }
+}
+

Alternatively, and this is recommended once your emulator is +“production ready,” you should create a proper Module project using the +GhidraDev plugin for Eclipse. You will need to break all the nested +classes from your script out into separate files. So long as your +factory class is public, named with the suffix +DebuggerPcodeEmulatorFactory, implements the interface, and +included in Ghidra’s classpath, Ghidra should find and list it in the +Debugger → Configure Emulator menu.

+
+

Displaying and Manipulating Abstract State

+

Once you have an emulator factory, the bulk of the work is done. +However, at this point, users can only interact with the abstract +portion of the emulator’s state through scripts, or by invoking custom +userops in patch steps from the Go To Time dialog. To +display the abstract state in the UI, you need to develop two additional +components: one for display in the Dynamic Listing (for memory state) +and one for display in the Registers window (for register state). +(Display of custom state in the Watches or P-code Stepper panes is not +supported.) Unlike an emulator factory, these components cannot be +installed via a script. They must be provided as classes in a proper +Ghidra Module.

+

Since string-based serialization may be a common case, we may +eventually provide abstract implementations to make that case easy. For +now, we refer you to the implementations for the Taint-augmented +emulator:

+ +

Anything more than that would require completely custom providers, +plugins, etc.

+
+
+
+ + diff --git a/GhidraDocs/GhidraClass/Debugger/B4-Modeling.md b/GhidraDocs/GhidraClass/Debugger/B4-Modeling.md new file mode 100644 index 0000000000..2a491eb64b --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/B4-Modeling.md @@ -0,0 +1,936 @@ + +# P-code Modeling + +This module assumes you have completed the [Emulation](B2-Emulation.md) and [Scripting](B3-Scripting.md) portions of this course. +It also assumes you have fairly deep knowledge of Ghidra's low p-code. + +Modeling is another one of those loaded terms. +Here we are going to focus on its use in what we will call *augmented emulation*. +This is used for things like dynamic taint analysis and concolic execution. +The idea is to leverage the emulator for concrete execution while augmenting it with some auxiliary model, e.g., taint labels or symbolic expressions. +Ghidra's abstract emulator implementations facilitate the composition of independent models so, if careful attention is given to your implementation, the auxiliary model can be re-used for other cases, perhaps even in static analysis. + +This module will address the following aspects of modeling: + +* Environment, i.e., p-code userops and stubbing. +* Arithmetic operations. +* Storage, addressing, and memory operations. +* Use in dynamic analysis. +* Use in static analysis. +* Integration with the GUI. + +Modeling is definitely a development task. +There is generally a specific interface for each aspect, and Ghidra may provide abstract implementations of them, which you may choose to use or ignore. +If you do not already have a development environment set up, you will need to do that now. +Either use the GhidraDev plugin for Eclipse and associate it with an installation of Ghidra, or clone the `ghidra` source repository and prepare it for development in Eclipse. +When prototyping, you may find it easiest to develop a script, which is what this tutorial will do. + +## Modeling the Environment + +There are different pieces to the environment. +This covers the implementation of p-code userops, which generally covers everything not modeled by p-code. +For example, the x86-64 `SYSCALL` instruction just invokes the `syscall()` userop, which provides a hook for implementing them. +Modeling system calls is such a common case that Ghidra provides a special programming interface for it. +Stubbing external functions is covered, in part, by the [Emulation](B2-Emulation.md) module. +By providing common stubs in a userop library, the user can stub the external function by placing a Sleigh breakpoint that invokes the appropriate userop. + +### Modeling by Java Callbacks + +A userop library is created by implementing the `PcodeUseropLibrary` interface, most likely by extending `AnnotatedPcodeUseropLibrary`. +For example, to provide a stub for `strlen`: + +```java {.numberLines} +public static class JavaStdLibPcodeUseropLibrary extends AnnotatedPcodeUseropLibrary { + private final AddressSpace space; + private final Register regRSP; + private final Register regRAX; + private final Register regRDI; + private final Register regRSI; + + public JavaStdLibPcodeUseropLibrary(SleighLanguage language) { + space = language.getDefaultSpace(); + regRSP = language.getRegister("RSP"); + regRAX = language.getRegister("RAX"); + regRDI = language.getRegister("RDI"); + regRSI = language.getRegister("RSI"); + } + + @PcodeUserop + public void __x86_64_RET( + @OpExecutor PcodeExecutor executor, + @OpState PcodeExecutorState state) { + PcodeArithmetic arithmetic = state.getArithmetic(); + T tRSP = state.getVar(regRSP, Reason.EXECUTE_READ); + long lRSP = arithmetic.toLong(tRSP, Purpose.OTHER); + T tReturn = state.getVar(space, lRSP, 8, true, Reason.EXECUTE_READ); + long lReturn = arithmetic.toLong(tReturn, Purpose.BRANCH); + state.setVar(regRSP, arithmetic.fromConst(lRSP + 8, 8)); + ((PcodeThreadExecutor) executor).getThread() + .overrideCounter(space.getAddress(lReturn)); + } + + @PcodeUserop + public void __libc_strlen(@OpState PcodeExecutorState state) { + PcodeArithmetic arithmetic = state.getArithmetic(); + T tStr = state.getVar(regRDI, Reason.EXECUTE_READ); + long lStr = arithmetic.toLong(tStr, Purpose.OTHER); + T tMaxlen = state.getVar(regRSI, Reason.EXECUTE_READ); + long lMaxlen = arithmetic.toLong(tMaxlen, Purpose.OTHER); + + for (int i = 0; i < lMaxlen; i++) { + T tChar = state.getVar(space, lStr + i, 1, false, Reason.EXECUTE_READ); + if (arithmetic.toLong(tChar, Purpose.OTHER) == 0) { + state.setVar(regRAX, arithmetic.fromConst(Integer.toUnsignedLong(i), 8)); + break; + } + } + } +} +``` + +Here, we implement the stub using Java callbacks. +This is more useful when modeling things outside of Ghidra's definition of machine state, e.g., to simulate kernel objects in an underlying operating system. +Nevertheless, it can be used to model simple state changes as well. +A user would place a breakpoint at either the call site or the call target, have it invoke `__libc_strlen()`, and then invoke either `emu_skip_decoded()` or `__x86_64_RET()` depending on where the breakpoint was placed. + +### Modeling by Sleigh Semantics + +The advantage to Java callbacks is that things are relatively intuitive to do, but the temptation, which we intentionally demonstrate here, is to make everything concrete. +You may notice the library uses a type parameter `T`, which specifies the type of all variables in the emulator's state. +Leaving it as `T` indicates the library is compatible with any type. +For a concrete emulator, `T = byte[]`, and so there is no loss in making things concrete, and then converting back to `T` using the arithmetic object. +However, if the emulator has been augmented, as we will discuss below, the model may become confused, because values computed by a careless userop will appear to the model a literal constant. +To avoid this, you should keep everything a T and use the arithmetic object to perform any arithmetic operations. +Alternatively, you can implement the userop using pre-compiled Sleigh code: + +```java {.numberLines} +public static class SleighStdLibPcodeUseropLibrary extends AnnotatedPcodeUseropLibrary { + private static final String SRC_RET = """ + RIP = *:8 RSP; + RSP = RSP + 8; + return [RIP]; + """; + private static final String SRC_STRLEN = """ + __result = 0; + + if (*:1 (str+__result) == 0 || __result >= maxlen) goto ; + __result = __result + 1; + goto ; + + """; + private final Register regRAX; + private final Register regRDI; + private final Register regRSI; + private final Varnode vnRAX; + private final Varnode vnRDI; + private final Varnode vnRSI; + + private PcodeProgram progRet; + private PcodeProgram progStrlen; + + public SleighStdLibPcodeUseropLibrary(SleighLanguage language) { + regRAX = language.getRegister("RAX"); + regRDI = language.getRegister("RDI"); + regRSI = language.getRegister("RSI"); + vnRAX = new Varnode(regRAX.getAddress(), regRAX.getMinimumByteSize()); + vnRDI = new Varnode(regRDI.getAddress(), regRDI.getMinimumByteSize()); + vnRSI = new Varnode(regRSI.getAddress(), regRSI.getMinimumByteSize()); + } + + @PcodeUserop + public void __x86_64_RET(@OpExecutor PcodeExecutor executor, + @OpLibrary PcodeUseropLibrary library) { + if (progRet == null) { + progRet = SleighProgramCompiler.compileUserop(executor.getLanguage(), + "__x86_64_RET", List.of(), SRC_RET, PcodeUseropLibrary.nil(), List.of()); + } + progRet.execute(executor, library); + } + + @PcodeUserop + public void __libc_strlen(@OpExecutor PcodeExecutor executor, + @OpLibrary PcodeUseropLibrary library) { + if (progStrlen == null) { + progStrlen = SleighProgramCompiler.compileUserop(executor.getLanguage(), + "__libc_strlen", List.of("__result", "str", "maxlen"), + SRC_STRLEN, PcodeUseropLibrary.nil(), List.of(vnRAX, vnRDI, vnRSI)); + } + progStrlen.execute(executor, library); + } +} +``` + +At construction, we capture the varnodes we need to use. +We could just use them directly in the source, but this demonstrates the ability to alias them, which makes the Sleigh source more re-usable across target architectures. +We then lazily compile each userop upon its first invocation. +These are technically still Java callbacks, but our implementation delegates to the executor, giving it the compiled p-code program. + +The advantage here is that the code will properly use the underlying arithmetic appropriately. +However, for some models, that may actually not be desired. +Some symbolic models might just like to see a literal call to `strlen()`. + +### Modeling by Structured Sleigh + +The disadvantage to pre-compiled p-code is all the boilerplate and manual handling of Sleigh compilation. +Additionally, when stubbing C functions, you have to be mindful of the types, and things may get complicated enough that you pine for more C-like control structures. +The same library can be implemented using an incubating feature we call *Structured Sleigh*: + +```java {.numberLines} +public static class StructuredStdLibPcodeUseropLibrary + extends AnnotatedPcodeUseropLibrary { + public StructuredStdLibPcodeUseropLibrary(CompilerSpec cs) { + new MyStructuredPart(cs).generate(ops); + } + + public static class MyStructuredPart extends StructuredSleigh { + protected MyStructuredPart(CompilerSpec cs) { + super(cs); + } + + @StructuredUserop + public void __x86_64_RET() { + Var RSP = lang("RSP", type("void **")); + Var RIP = lang("RIP", type("void *")); + RIP.set(RSP.deref()); + RSP.addiTo(8); + _return(RIP); + } + + @StructuredUserop + public void __libc_strlen() { + Var result = lang("RAX", type("long")); + Var str = lang("RDI", type("char *")); + Var maxlen = lang("RSI", type("long")); + + _for(result.set(0), result.ltiu(maxlen).andb(str.index(result).deref().eq(0)), + result.inc(), () -> { + }); + } + } +} +``` + +This is about as succinct as we can get specifying p-code behaviors in Java. +While these may appear like callbacks into Java methods that use a special API for state manipulation, that is not entirely accurate. +The Java method is invoked once as a way to "transpile" the Structured Sleigh into standard Sleigh semantic code. +That code is then compiled to p-code, which will be executed whenever the userop is called. +In a sense, Structured Sleigh is a DSL hosted in Java.... + +Unfortunately, we cannot overload operators in Java, so we are stuck using method invocations. +Another disadvantage is the dependence on a compiler spec for type resolution. +Structured Sleigh is not the best suited for all circumstances, e.g., the implementation of `__x86_64_RET` is odd to express. +Arguably, there is no real need to ascribe high-level types to `RSP` and `RIP` when expressing low-level operations. +Luckily, these implementation techniques can be mixed. +A single library can implement the `RET` using pre-compiled Sleigh, but `strlen` using Structured Sleigh. + +### Modeling System Calls + +We will not cover this in depth, but here are some good examples: + +* [DemoSyscallLibrary](../../../Ghidra/Features/SystemEmulation/ghidra_scripts/DemoSyscallLibrary.java) +* [EmuLinuxAmd64SyscallUseropLibrary](../../../Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibrary.java) +* [EmuLinuxX86SyscallUseropLibrary](../../../Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibrary.java) + +More can be obtained by finding all implementations of `EmuSyscallLibrary` in your IDE. +The Linux system call libraries are incomplete. +They only provide a few simple file operations, but it is sufficient to demonstrate the simulation of an underlying operating system. +They can also be extended and/or composed to provide additional system calls. + +### Using Custom Userop Libraries + +The use of a custom library in a stand-alone emulation script is pretty straightforward: + +```java {.numberLines} +public class CustomLibraryScript extends GhidraScript { + @Override + protected void run() throws Exception { + PcodeEmulator emu = new PcodeEmulator(currentProgram.getLanguage()) { + @Override + protected PcodeUseropLibrary createUseropLibrary() { + return super.createUseropLibrary() + .compose(new ModelingScript.StructuredStdLibPcodeUseropLibrary<>( + currentProgram.getCompilerSpec())); + } + }; + emu.inject(currentAddress, """ + __libc_strlen(); + __X86_64_RET(); + """); + // TODO: Initialize the emulator's memory from the current program + PcodeThread thread = emu.newThread(); + // TODO: Initialize the thread's registers + + while (true) { + monitor.checkCancelled(); + thread.stepInstruction(100); + } + } +} +``` + +The key is to override `createUseropLibrary()` in an anonymous extension of the `PcodeEmulator`. +It is polite to compose your library with the one already provided by the super class, lest you remove userops and cause unexpected crashes later. +For the sake of demonstration, we have included an injection that uses the custom library, and we have included a monitored loop to execute a single thread indefinitely. +The initialization of the machine and its one thread is left to the script writer. +The emulation *is not* implicitly associated with the program! +You must copy the program image into its state, and you should choose a different location for the injection. +Refer to the example scripts in Ghidra's `SystemEmulation` module. + +If you would like to (temporarily) override the GUI with a custom userop library, you can by overriding the GUI's emulator factory: + +```java {.numberLines} +public class InstallCustomLibraryScript extends GhidraScript implements FlatDebuggerAPI { + public static class CustomBytesDebuggerPcodeEmulator extends BytesDebuggerPcodeEmulator { + private CustomBytesDebuggerPcodeEmulator(PcodeDebuggerAccess access) { + super(access); + } + + @Override + protected PcodeUseropLibrary createUseropLibrary() { + return super.createUseropLibrary() + .compose(new ModelingScript.SleighStdLibPcodeUseropLibrary<>( + (SleighLanguage) access.getLanguage())); + } + } + + public static class CustomBytesDebuggerPcodeEmulatorFactory + extends BytesDebuggerPcodeEmulatorFactory { + @Override + public DebuggerPcodeMachine create(PcodeDebuggerAccess access) { + return new CustomBytesDebuggerPcodeEmulator(access); + } + } + + @Override + protected void run() throws Exception { + getEmulationService().setEmulatorFactory(new CustomBytesDebuggerPcodeEmulatorFactory()); + } +} +``` + +This will make your custom userops available in Sleigh injections. +**NOTE**: There is currently no way to introduce custom userops to Watches or the Go To dialog. + +## Modeling Arithmetic Operations + +The remaining sections deal in modeling things other than concrete emulation. +In most dynamic analysis cases, we will *augment* a concrete emulator with some other abstract execution model, e.g., for dynamic taint analysis or concolic emulation. +Ghidra's emulation framework favors the composition of execution models. +This allows you to focus on the abstract execution model and later compose it with the concrete model to form the full augmented model. +This also facilitates the creation of re-usable components, but that still requires some forethought. + +Modeling the arithmetic is fairly straightforward. +For demonstration we will develop a model for building up symbolic expressions. +The idea is that after doing some number of steps of emulation, the user can examine not only the concrete value of a variable, but the expression that generated it in terms of the variables at the start of the stepping schedule. +We *will not* attempt to simplify or otherwise analyze these expressions. +For that, you would want to use a proper SMT, which is beyond the scope of this tutorial. + +### The Model + +We will represent constants as literals, and then build up expression trees as each operation is applied. +The number of operators can get extensive, and your particular use case / target may not require all of them. +That said, if you intend for your model to be adopted broadly, you should strive for as complete an implementation as reasonably possible. +At the very least, strive to provide extension points where you predict the need to alter or add features. +In this tutorial, we will elide all but what is necessary to illustrate the implementation. + +If it is not already provided to you by your dependencies, you will need to devise the actual model. +These need not extend from nor implement any Ghidra-specific interface, but they can. + +```java {.numberLines} +public class ModelingScript extends GhidraScript { + interface Expr { + } + + interface UnExpr extends Expr { + Expr u(); + } + + interface BinExpr extends Expr { + Expr l(); + + Expr r(); + } + + record LitExpr(BigInteger val, int size) implements Expr { + } + + record VarExpr(Varnode vn) implements Expr { + public VarExpr(AddressSpace space, long offset, int size) { + this(space.getAddress(offset), size); + } + + public VarExpr(Address address, int size) { + this(new Varnode(address, size)); + } + } + + record InvExpr(Expr u) implements UnExpr { + } + + record AddExpr(Expr l, Expr r) implements BinExpr { + } + + record SubExpr(Expr l, Expr r) implements BinExpr { + } + + @Override + protected void run() throws Exception { + // TODO Auto-generated method stub + + } +} +``` + +It should be fairly apparent how you could add more expression types to complete the model. +There is some odd nuance in the naming of p-code operations, so do read the documentation carefully. +If you are not entirely certain what an operation does, take a look at [OpBehaviorFactory](../../../Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcode/opbehavior/OpBehaviorFactory.java). +You can also examine the concrete implementation on byte arrays [BytesPcodeArithmetic](../../../Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/BytesPcodeArithmetic.java). + +### Mapping the Model + +Now, to map the model to p-code, we implement the `PcodeArithmetic` interface. +In many cases, the implementation can be an enumeration: one for big endian and one for little endian. +Rarely, it can be a singleton. +Conventionally, you should also include static methods for retrieving an instance by endianness or processor language: + +```java {.numberLines} +public enum ExprPcodeArithmetic implements PcodeArithmetic { + BE(Endian.BIG), LE(Endian.LITTLE); + + public static ExprPcodeArithmetic forEndian(Endian endian) { + return endian.isBigEndian() ? BE : LE; + } + + public static ExprPcodeArithmetic forLanguage(Language language) { + return language.isBigEndian() ? BE : LE; + } + + private final Endian endian; + + private ExprPcodeArithmetic(Endian endian) { + this.endian = endian; + } + + @Override + public Endian getEndian() { + return endian; + } + + @Override + public Expr unaryOp(int opcode, int sizeout, int sizein1, Expr in1) { + return switch (opcode) { + case PcodeOp.INT_NEGATE -> new InvExpr(in1); + default -> throw new UnsupportedOperationException(PcodeOp.getMnemonic(opcode)); + }; + } + + @Override + public Expr binaryOp(int opcode, int sizeout, int sizein1, Expr in1, int sizein2, + Expr in2) { + return switch (opcode) { + case PcodeOp.INT_ADD -> new AddExpr(in1, in2); + case PcodeOp.INT_SUB -> new SubExpr(in1, in2); + default -> throw new UnsupportedOperationException(PcodeOp.getMnemonic(opcode)); + }; + } + + @Override + public Expr modBeforeStore(int sizeout, int sizeinAddress, Expr inAddress, int sizeinValue, + Expr inValue) { + return inValue; + } + + @Override + public Expr modAfterLoad(int sizeout, int sizeinAddress, Expr inAddress, int sizeinValue, + Expr inValue) { + return inValue; + } + + @Override + public Expr fromConst(byte[] value) { + if (endian.isBigEndian()) { + return new LitExpr(new BigInteger(1, value), value.length); + } + byte[] reversed = Arrays.copyOf(value, value.length); + ArrayUtils.reverse(reversed); + return new LitExpr(new BigInteger(1, reversed), reversed.length); + } + + @Override + public Expr fromConst(BigInteger value, int size, boolean isContextreg) { + return new LitExpr(value, size); + } + + @Override + public Expr fromConst(long value, int size) { + return fromConst(BigInteger.valueOf(value), size); + } + + @Override + public byte[] toConcrete(Expr value, Purpose purpose) { + throw new UnsupportedOperationException(); + } + + @Override + public long sizeOf(Expr value) { + throw new UnsupportedOperationException(); + } +} +``` + +We have implemented two arithmetic models: one for big-endian languages and one for little-endian. +The endianness comes into play when we encode constant values passed to `fromConst()`. +We must convert the `byte[]` value to a big integer accordingly. +The choice of `BigInteger` is merely a matter of preference; you could easily just have `LitExpr` encapsulate the `byte[]` and worry about how to interpret them later. +We also override all implementations of `fromConst()` to avoid the back-and-forth conversion between `BigInteger` and `byte[]`. + +The implementations of `unaryOp()` and `binaryOp()` are straightforward. +Just switch on the opcode and construct the appropriate expression. +This is a place where you might want to provide extensibility. + +**NOTE**: If you would like to capture location information, i.e., what instruction performed this operation, then you can override the default `unaryOp()` and `binaryOp()` methods, which receive the actual `PcodeOp` object. +You can get both the opcode and the sequence number (address, index) from that `PcodeOp`. +The ones with signatures taking the integer opcode can just throw an `AssertionError`. + +The implementations of `modBeforeStore()` and `modAfterLoad()` are stubs. +They provide an opportunity to capture dereferencing information. +We do not need that information, so we just return the value. +The `mod` methods tread a bit into storage and addressing, which we cover more thoroughly later, but they model memory operations to the extent they do not actually require a storage mechanism. +For example, were this a dynamic taint analyzer, we could use `modAfterLoad()` to record that a value was retrieved via a tainted address. +The `inValue` parameter gives the `Expr` actually retrieved from the emulator's storage, and `inAddress` gives the address (really just the `Expr` piece) used to retrieve it. +Conversely, in `modBeforeStore()`, `inValue` gives the value about to be stored, and `inAddress` gives the address used to store it. + +We implement neither `toConcrete()` nor `sizeOf()`. +Since we will be augmenting a concrete emulator, these methods will be provided by the concrete piece. +If this model is ever to be used in static analysis, then it may be worthwhile to implement these methods, so the model may be used independently of the concrete emulator. +In that case, the methods should attempt to do as documented but may throw an exception upon failure. + +## Modeling Storage, Addressing, and Memory Operations + +The emulator's storage model is a `PcodeExecutorState`. +Since we desire an augmented emulator, we will need to provide it a `PcodeExecutorState>`. +This tells Java the state is capable of working with pairs of concrete state and the abstract model state. +Addresses in that state are also pairs. +For augmented emulation, the storage model often borrows the concrete addressing model; thus, we will use only the `byte[]` element for our addressing. + +The composition of states with the same addressing model is common enough that Ghidra provides abstract components to facilitate it. +The relevant interface is `PcodeExecutorStatePiece`, which is the one we actually implement, by extending from `AbstractLongOffsetPcodeExecutorStatePiece`. + +**NOTE**: If you do not desire a concrete address model, then you should implement `PcodeExecutorState` directly. +A "state" is also "state piece" whose address model is the same as its value model, so states can still be composed. +On one hand, the abstractly-addressed state provides a component that is readily used in both static and dynamic analysis; whereas, the concretely-addressed piece is suited only for dynamic analysis. +On the other hand, you may have some difficulty correlating concrete and abstract pieces during dynamic analysis when aliasing and indirection is involved. + +Now for the code. +Be mindful of all the adjectives. +If you are not already familiar with Java naming conventions for "enterprise applications" or our particular implementation of them, you are about to see it on full display. + +```java {.numberLines} +public static class ExprSpace { + protected final NavigableMap map; + protected final AddressSpace space; + + protected ExprSpace(AddressSpace space, NavigableMap map) { + this.space = space; + this.map = map; + } + + public ExprSpace(AddressSpace space) { + this(space, new TreeMap<>()); + } + + public void clear() { + map.clear(); + } + + public void set(long offset, Expr val) { + // TODO: Handle overlaps / offcut gets and sets + map.put(offset, val); + } + + public Expr get(long offset, int size) { + // TODO: Handle overlaps / offcut gets and sets + Expr expr = map.get(offset); + return expr != null ? expr : new VarExpr(space, offset, size); + } +} + +public static abstract class AbstractExprPcodeExecutorStatePiece extends + AbstractLongOffsetPcodeExecutorStatePiece { + + protected final AbstractSpaceMap spaceMap = newSpaceMap(); + + public AbstractExprPcodeExecutorStatePiece(Language language) { + super(language, BytesPcodeArithmetic.forLanguage(language), + ExprPcodeArithmetic.forLanguage(language)); + } + + protected abstract AbstractSpaceMap newSpaceMap(); + + @Override + public MemBuffer getConcreteBuffer(Address address, Purpose purpose) { + throw new UnsupportedOperationException(); + } + + @Override + public void clear() { + for (S space : spaceMap.values()) { + space.clear(); + } + } + + @Override + protected S getForSpace(AddressSpace space, boolean toWrite) { + return spaceMap.getForSpace(space, toWrite); + } + + @Override + protected void setInSpace(ExprSpace space, long offset, int size, Expr val) { + space.set(offset, val); + } + + @Override + protected Expr getFromSpace(S space, long offset, int size, Reason reason) { + return space.get(offset, size); + } + + @Override + protected Map getRegisterValuesFromSpace(S s, List registers) { + throw new UnsupportedOperationException(); + } +} + +public static class ExprPcodeExecutorStatePiece + extends AbstractExprPcodeExecutorStatePiece { + public ExprPcodeExecutorStatePiece(Language language) { + super(language); + } + + @Override + protected AbstractSpaceMap newSpaceMap() { + return new SimpleSpaceMap() { + @Override + protected ExprSpace newSpace(AddressSpace space) { + return new ExprSpace(space); + } + }; + } +} + +public static class BytesExprPcodeExecutorState extends PairedPcodeExecutorState { + public BytesExprPcodeExecutorState(PcodeExecutorStatePiece concrete) { + super(new PairedPcodeExecutorStatePiece<>(concrete, + new ExprPcodeExecutorStatePiece(concrete.getLanguage()))); + } +} +``` + +The abstract class implements a strategy where a dedicated object handles each address space. +Each object typically maintains of map of offsets (type `long`) to the model type, i.e., `Expr`. +We provide that object type `ExprSpace`, which is where we implement most of our actual storage. + +**WARNING**: For the sake of simplicity in demonstration, we have neglected many details. +Notably, we have neglected the possibility that writes overlap or that reads are offcut from the variables actually stored there. +This may not seem like a huge problem, but it is actually quite common, esp., since x86 registers are structured. +A write to `RAX` followed by a read from `EAX` will immediately demonstrate this issue. +Nevertheless, we leave those details as an exercise. + +The remaining parts are mostly boilerplate. +We implement the "state piece" interface by creating another abstract class. +An abstract class is not absolutely necessary, but it will be useful when we integrate the model with traces and the Debugger GUI later. +We are given the language and applicable arithmetics, which we just pass to the super constructor. +We need not implement a concrete buffer. +This would only be required if we needed to decode instructions from the abstract storage model. +For dynamic analysis, we would bind concrete buffers from the concrete piece, not the abstract. +For static analysis, you would need to decide whether to just use the statically disassembled instructions or to try decoding from the abstract model. +The `clear()` method is implemented by clearing the map of address spaces. +Note that the abstract implementation does not provide that map for us, so we must provide it and the logic to clear it. +The next three methods are for getting spaces from that map and then setting and getting values in them. +The last method `getRegisterValuesFromSpace()` is more for user inspection, so it need not be implemented, at least not yet. + +Finally, we complete the implementation of the state piece with `ExprPcodeExecutorStatePiece`, which provides the actual map and an `ExprSpace` factory method `newSpace()`. +The implementation of `ExprPcodeExecutorState` is simple. +It takes the concrete piece and pairs it with a new piece for our model. + +## Model-Specific Userops + +We do not cover this deeply, but there are two examples in Ghidra: + +* [TaintPcodeUseropLibrary](../../../Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/TaintPcodeUseropLibrary.java) +* [TaintFileReadsLinuxAmd64SyscallLibrary](../../../Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/lib/TaintFileReadsLinuxAmd64SyscallLibrary.java) + +The first provides a means of marking variables with taint. +Unlike our `Expr` model, which automatically generates a `VarExpr` whenever a variable is read for the first time, the taint analyzer assumes no state is tainted. +You may notice the library does not use a generic `T`, but instead requires `T=Pair`. +This will ensure the library is only used with a taint-augmented emulator. + +The second demonstrates the ability to extend Ghidra's system call libraries, not only with additional calls, but also with additional models. + +## Constructing the Augmented Emulator + +Ghidra supports the construction of augmented emulators through the `AuxEmulatorPartsFactory` interface. +These are typically singletons. + +```java {.numberLines} +public enum BytesExprEmulatorPartsFactory implements AuxEmulatorPartsFactory { + INSTANCE; + + @Override + public PcodeArithmetic getArithmetic(Language language) { + return ExprPcodeArithmetic.forLanguage(language); + } + + @Override + public PcodeUseropLibrary> createSharedUseropLibrary( + AuxPcodeEmulator emulator) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeUseropLibrary> createLocalUseropStub( + AuxPcodeEmulator emulator) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeUseropLibrary> createLocalUseropLibrary( + AuxPcodeEmulator emulator, PcodeThread> thread) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeExecutorState> createSharedState( + AuxPcodeEmulator emulator, BytesPcodeExecutorStatePiece concrete) { + return new BytesExprPcodeExecutorState(concrete); + } + + @Override + public PcodeExecutorState> createLocalState( + AuxPcodeEmulator emulator, PcodeThread> thread, + BytesPcodeExecutorStatePiece concrete) { + return new BytesExprPcodeExecutorState(concrete); + } +} + +public class BytesExprPcodeEmulator extends AuxPcodeEmulator { + public BytesExprPcodeEmulator(Language language) { + super(language); + } + + @Override + protected AuxEmulatorPartsFactory getPartsFactory() { + return BytesExprEmulatorPartsFactory.INSTANCE; + } +} +``` + +Lots of boilerplate. +Essentially, all the parts factory does is give us a flat interface for providing all the parts necessary to construct our augmented emulator: the model arithmetic, userop libraries for the machine and threads, state for the machine and threads. +For the arithmetic, we trivially provide the arithmetic for the given language. +For the userop libraries, we just provide the empty library. +If you had custom libraries and/or model-specific libraries, you would compose them here. +Finally, for the states, we just take the provided concrete state and construct our augmented state. + +## Use in Dynamic Analysis + +What we have constructed so far is suitable for constructing and using our augmented emulator in a script. +Using it is about as straightforward as the plain concrete emulator. +The exception may be when accessing its state, you will need to be cognizant of the pairing. + +```java {.numberLines} +public class ModelingScript extends GhidraScript { + + // ... + + @Override + protected void run() throws Exception { + BytesExprPcodeEmulator emu = new BytesExprPcodeEmulator(currentProgram.getLanguage()); + // TODO: Initialize the machine + PcodeExecutorState> state = emu.getSharedState(); + state.setVar(currentAddress, 4, true, + Pair.of(new byte[] { 1, 2, 3, 4 }, new VarExpr(currentAddress, 4))); + PcodeThread> thread = emu.newThread(); + // TODO: Initialize the thread + while (true) { + monitor.checkCancelled(); + thread.stepInstruction(100); + } + } +} +``` + +**NOTE**: When accessed as a paired state, all sets will affect both pieces. +If you use the arithmetic to generate them, remember that it will use `fromConst` on both arithmetics to generate the pair, so you may be setting the right side to a `LitExpr`. +To modify just one side of the pair, cast the state to `PairedPcodeExecutorState`, and then use `getLeft()`, and `getRight()` to retrieve the separate pieces. + +## Use in Static Analysis + +We do not go into depth here, especially since this is not formalized. +There are many foundational utilities not factored out yet. +Nevertheless, for an example where the `PcodeArithmetic` and `PcodeExecutorState` interfaces are used in static analysis, see the Debugger's stack unwinder. +While unwinding a full stack technically qualifies as dynamic analysis, the analysis of each individual function to recover stack frame information is purely static. +See [UnwindAnalysis](../../../Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/stack/UnwindAnalysis.java) and its sibling files. + +## GUI Integration + +This part is rather tedious. +It is mostly boilerplate, and the only real functionality we need to provide is a means of serializing `Expr` to the trace database. +Ideally, this serialization is also human readable, since that will make it straightforward to display in the UI. +Typically, there are two more stages of integration. +First is integration with traces, which involves the aforementioned serialization. +Second is integration with targets, which often does not apply to abstract models, but could. +Each stage involves an extension to the lower stage's state. +Java does not allow multiple inheritance, so we will have to be clever in our factoring, but we generally cannot escape the boilerplate. + +```java {.numberLines} +public static class ExprTraceSpace extends ExprSpace { + protected final PcodeTracePropertyAccess property; + + public ExprTraceSpace(AddressSpace space, PcodeTracePropertyAccess property) { + super(space); + this.property = property; + } + + @Override + protected Expr whenNull(long offset, int size) { + String string = property.get(space.getAddress(offset)); + return deserialize(string); + } + + public void writeDown(PcodeTracePropertyAccess into) { + if (space.isUniqueSpace()) { + return; + } + + for (Entry entry : map.entrySet()) { + // TODO: Ignore and/or clear non-entries + into.put(space.getAddress(entry.getKey()), serialize(entry.getValue())); + } + } + + protected String serialize(Expr expr) { + return Unfinished.TODO(); + } + + protected Expr deserialize(String string) { + return Unfinished.TODO(); + } +} + +public static class ExprTracePcodeExecutorStatePiece + extends AbstractExprPcodeExecutorStatePiece + implements TracePcodeExecutorStatePiece { + public static final String NAME = "Taint"; + + protected final PcodeTraceDataAccess data; + protected final PcodeTracePropertyAccess property; + + public ExprTracePcodeExecutorStatePiece(PcodeTraceDataAccess data) { + super(data.getLanguage()); + this.data = data; + this.property = data.getPropertyAccess(NAME, String.class); + } + + @Override + public PcodeTraceDataAccess getData() { + return data; + } + + @Override + protected AbstractSpaceMap newSpaceMap() { + return new CacheingSpaceMap, ExprTraceSpace>() { + @Override + protected PcodeTracePropertyAccess getBacking(AddressSpace space) { + return property; + } + + @Override + protected ExprTraceSpace newSpace(AddressSpace space, + PcodeTracePropertyAccess backing) { + return new ExprTraceSpace(space, property); + } + }; + } + + @Override + public ExprTracePcodeExecutorStatePiece fork() { + throw new UnsupportedOperationException(); + } + + @Override + public void writeDown(PcodeTraceDataAccess into) { + PcodeTracePropertyAccess property = into.getPropertyAccess(NAME, String.class); + for (ExprTraceSpace space : spaceMap.values()) { + space.writeDown(property); + } + } +} +``` + +Because we do not need any additional logic for target integration, we do not need to extend the state pieces any further. +The concrete pieces that we augment will contain all the target integration needed. +We have left the serialization as an exercise, though. +Last, we implement the full parts factory and use it to construct and install a full `Expr`-augmented emulator factory: + +```java {.numberLines} +public static class BytesExprDebuggerPcodeEmulator extends AuxDebuggerPcodeEmulator { + public BytesExprDebuggerPcodeEmulator(PcodeDebuggerAccess access) { + super(access); + } + + @Override + protected AuxDebuggerEmulatorPartsFactory getPartsFactory() { + return BytesExprDebuggerEmulatorPartsFactory.INSTANCE; + } +} + +public static class BytesExprDebuggerPcodeEmulatorFactory + implements DebuggerPcodeEmulatorFactory { + + @Override + public String getTitle() { + return "Expr"; + } + + @Override + public DebuggerPcodeMachine create(PcodeDebuggerAccess access) { + return new BytesExprDebuggerPcodeEmulator(access); + } +} +``` + +The factory can then be installed using a script. +The script will set your factory as the current emulator factory for the whole tool; however, your script-based factory will not be listed in the menus. +Also, if you change your emulator, you must re-run the script to install those modifications. +You might also want to invalidate the emulation cache. + +```java {.numberLines} +public class InstallExprEmulatorScript extends GhidraScript implements FlatDebuggerAPI { + @Override + protected void run() throws Exception { + getEmulationService() + .setEmulatorFactory(new ModelingScript.BytesExprDebuggerPcodeEmulatorFactory()); + } +} +``` + +Alternatively, and this is recommended once your emulator is "production ready," you should create a proper Module project using the GhidraDev plugin for Eclipse. +You will need to break all the nested classes from your script out into separate files. +So long as your factory class is public, named with the suffix `DebuggerPcodeEmulatorFactory`, implements the interface, and included in Ghidra's classpath, Ghidra should find and list it in the **Debugger → Configure Emulator** menu. + +### Displaying and Manipulating Abstract State + +Once you have an emulator factory, the bulk of the work is done. +However, at this point, users can only interact with the abstract portion of the emulator's state through scripts, or by invoking custom userops in patch steps from the **Go To Time** dialog. +To display the abstract state in the UI, you need to develop two additional components: one for display in the Dynamic Listing (for memory state) and one for display in the Registers window (for register state). +(Display of custom state in the Watches or P-code Stepper panes is not supported.) +Unlike an emulator factory, these components cannot be installed via a script. +They must be provided as classes in a proper Ghidra Module. + +Since string-based serialization may be a common case, we may eventually provide abstract implementations to make that case easy. +For now, we refer you to the implementations for the Taint-augmented emulator: + +* For memory state: [TaintFieldFactory](../../../Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/taint/gui/field/TaintFieldFactory.java) +* For regsiter state: [TaintDebuggerRegisterColumnFactory](../../../Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/taint/gui/field/TaintDebuggerRegisterColumnFactory.java) + +Anything more than that would require completely custom providers, plugins, etc. \ No newline at end of file diff --git a/GhidraDocs/GhidraClass/Debugger/Makefile b/GhidraDocs/GhidraClass/Debugger/Makefile new file mode 100644 index 0000000000..7f9213e501 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/Makefile @@ -0,0 +1,22 @@ + +PANDOC=pandoc + +default: all + +%.html: %.md + $(PANDOC) -B navhead.htm --section-divs --toc -c style.css -s --lua-filter=links-to-html.lua --syntax-definition=gdb_syntax.xml --syntax-definition=sleigh_syntax.xml --metadata title="Ghidra Debugger" $< -o $@ + +all: \ + A1-GettingStarted.html \ + A2-UITour.html \ + A3-Breakpoints.html \ + A4-MachineState.html \ + A5-Navigation.html \ + A6-MemoryMap.html \ + B1-RemoteTargets.html \ + B2-Emulation.html \ + B3-Scripting.html \ + B4-Modeling.html + +clean: + -rm *.html diff --git a/GhidraDocs/GhidraClass/Debugger/README.md b/GhidraDocs/GhidraClass/Debugger/README.md new file mode 100644 index 0000000000..2ce74d918b --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/README.md @@ -0,0 +1,24 @@ +# Debugger Ghidra Class + +This is the courseware for the Debugger training class. +It is meant to be viewed directly in GitHub or GitLab but can also be rendered for offline viewing in a classroom. +The courseware was developed with Linux user-space targets in mind, but many of the concepts and information apply to the other platforms. +There are differences in getting started, some subtleties in target behavior, and of course different instruction set architectures, but for the most part, the user interface is the same across the platforms. + +## Table of Contents + +### Beginner Material + +1. [Getting Started](A1-GettingStarted.md) +1. [A Tour of the UI](A2-UITour.md) +1. [Breakpoints](A3-Breakpoints.md) +1. [Machine State: Memory, Registers, and Variables](A4-MachineState.md) +1. [Navigation](A5-Navigation.md) +1. [Memory Map](A6-MemoryMap.md) + +### Advanced Material + +1. [Remote Targets](B1-RemoteTargets.md) +1. [Emulation](B2-Emulation.md) +1. [Scripting](B3-Scripting.md) +1. [Modeling](B4-Modeling.md) diff --git a/GhidraDocs/GhidraClass/Debugger/gdb_syntax.xml b/GhidraDocs/GhidraClass/Debugger/gdb_syntax.xml new file mode 100644 index 0000000000..8e2cc7fcfd --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/gdb_syntax.xml @@ -0,0 +1,43 @@ + + + + + + + + + target + remote + break + new-ui + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/CustomLibraryScript.java b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/CustomLibraryScript.java new file mode 100644 index 0000000000..0f14fa38c8 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/CustomLibraryScript.java @@ -0,0 +1,48 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import ghidra.app.script.GhidraScript; +import ghidra.pcode.emu.PcodeEmulator; +import ghidra.pcode.emu.PcodeThread; +import ghidra.pcode.exec.PcodeUseropLibrary; + +public class CustomLibraryScript extends GhidraScript { + @Override + protected void run() throws Exception { + PcodeEmulator emu = new PcodeEmulator(currentProgram.getLanguage()) { + @Override + protected PcodeUseropLibrary createUseropLibrary() { + return super.createUseropLibrary() + .compose(new ModelingScript.StructuredStdLibPcodeUseropLibrary<>( + currentProgram.getCompilerSpec())); + } + }; + emu.inject(currentAddress, """ + __libc_strlen(); + __X86_64_RET(); + """); + + // TODO: Initialize the emulator's memory from the current program + + PcodeThread thread = emu.newThread(); + + // TODO: Initialize the thread's registers + + while (true) { + monitor.checkCanceled(); + thread.stepInstruction(100); + } + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/DumpBoardScript.java b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/DumpBoardScript.java new file mode 100644 index 0000000000..9f6538745d --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/DumpBoardScript.java @@ -0,0 +1,85 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.List; + +import ghidra.app.script.GhidraScript; +import ghidra.debug.flatapi.FlatDebuggerAPI; +import ghidra.program.model.address.Address; +import ghidra.program.model.symbol.Symbol; +import ghidra.trace.model.Trace; + +public class DumpBoardScript extends GhidraScript implements FlatDebuggerAPI { + @Override + protected void run() throws Exception { + // -------------------------------- + Trace trace = getCurrentTrace(); + if (trace == null) { + throw new AssertionError("There is no active session"); + } + + // -------------------------------- + if (!"termmines".equals(currentProgram.getName())) { + throw new AssertionError("The current program must be termmines"); + } + + // -------------------------------- + List widthSyms = getSymbols("width", null); + if (widthSyms.isEmpty()) { + throw new AssertionError("Symbol 'width' is required"); + } + List heightSyms = getSymbols("height", null); + if (heightSyms.isEmpty()) { + throw new AssertionError("Symbol 'height' is required"); + } + List cellsSyms = getSymbols("cells", null); + if (cellsSyms.isEmpty()) { + throw new AssertionError("Symbol 'cells' is required"); + } + + Address widthDyn = translateStaticToDynamic(widthSyms.get(0).getAddress()); + if (widthDyn == null) { + throw new AssertionError("Symbol 'width' is not mapped to target"); + } + Address heightDyn = translateStaticToDynamic(heightSyms.get(0).getAddress()); + if (heightDyn == null) { + throw new AssertionError("Symbol 'height' is not mapped to target"); + } + Address cellsDyn = translateStaticToDynamic(cellsSyms.get(0).getAddress()); + if (cellsDyn == null) { + throw new AssertionError("Symbol 'cells' is not mapped to target"); + } + + // -------------------------------- + byte[] widthDat = readMemory(widthDyn, 4, monitor); + byte[] heightDat = readMemory(heightDyn, 4, monitor); + byte[] cellsData = readMemory(cellsDyn, 1024, monitor); + + // -------------------------------- + int width = ByteBuffer.wrap(widthDat).order(ByteOrder.LITTLE_ENDIAN).getInt(); + int height = ByteBuffer.wrap(heightDat).order(ByteOrder.LITTLE_ENDIAN).getInt(); + println("Width: " + width); + println("Height: " + height); + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + if ((cellsData[(y + 1) * 32 + x + 1] & 0x80) == 0x80) { + println("Mine at (%d,%d)".formatted(x, y)); + } + } + } + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallCustomLibraryScript.java b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallCustomLibraryScript.java new file mode 100644 index 0000000000..c991629623 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallCustomLibraryScript.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import ghidra.app.plugin.core.debug.service.emulation.*; +import ghidra.app.plugin.core.debug.service.emulation.data.PcodeDebuggerAccess; +import ghidra.app.plugin.processors.sleigh.SleighLanguage; +import ghidra.app.script.GhidraScript; +import ghidra.debug.flatapi.FlatDebuggerAPI; +import ghidra.pcode.exec.PcodeUseropLibrary; + +public class InstallCustomLibraryScript extends GhidraScript implements FlatDebuggerAPI { + public static class CustomBytesDebuggerPcodeEmulator extends BytesDebuggerPcodeEmulator { + private CustomBytesDebuggerPcodeEmulator(PcodeDebuggerAccess access) { + super(access); + } + + @Override + protected PcodeUseropLibrary createUseropLibrary() { + return super.createUseropLibrary() + .compose(new ModelingScript.SleighStdLibPcodeUseropLibrary<>( + (SleighLanguage) access.getLanguage())); + } + } + + public static class CustomBytesDebuggerPcodeEmulatorFactory + extends BytesDebuggerPcodeEmulatorFactory { + @Override + public DebuggerPcodeMachine create(PcodeDebuggerAccess access) { + return new CustomBytesDebuggerPcodeEmulator(access); + } + } + + @Override + protected void run() throws Exception { + getEmulationService().setEmulatorFactory(new CustomBytesDebuggerPcodeEmulatorFactory()); + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallExprEmulatorScript.java b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallExprEmulatorScript.java new file mode 100644 index 0000000000..c1dde686da --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/InstallExprEmulatorScript.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import ghidra.app.script.GhidraScript; +import ghidra.debug.flatapi.FlatDebuggerAPI; + +public class InstallExprEmulatorScript extends GhidraScript implements FlatDebuggerAPI { + @Override + protected void run() throws Exception { + getEmulationService() + .setEmulatorFactory(new ModelingScript.BytesExprDebuggerPcodeEmulatorFactory()); + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ModelingScript.java b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ModelingScript.java new file mode 100644 index 0000000000..9f1454da33 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ModelingScript.java @@ -0,0 +1,681 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.math.BigInteger; +import java.util.*; +import java.util.Map.Entry; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.tuple.Pair; + +import ghidra.app.plugin.core.debug.service.emulation.*; +import ghidra.app.plugin.core.debug.service.emulation.data.PcodeDebuggerAccess; +import ghidra.app.plugin.processors.sleigh.SleighLanguage; +import ghidra.app.script.GhidraScript; +import ghidra.lifecycle.Unfinished; +import ghidra.pcode.emu.DefaultPcodeThread.PcodeThreadExecutor; +import ghidra.pcode.emu.PcodeThread; +import ghidra.pcode.emu.auxiliary.AuxEmulatorPartsFactory; +import ghidra.pcode.emu.auxiliary.AuxPcodeEmulator; +import ghidra.pcode.exec.*; +import ghidra.pcode.exec.PcodeArithmetic.Purpose; +import ghidra.pcode.exec.PcodeExecutorStatePiece.Reason; +import ghidra.pcode.exec.debug.auxiliary.AuxDebuggerEmulatorPartsFactory; +import ghidra.pcode.exec.debug.auxiliary.AuxDebuggerPcodeEmulator; +import ghidra.pcode.exec.trace.*; +import ghidra.pcode.exec.trace.auxiliary.AuxTracePcodeEmulator; +import ghidra.pcode.exec.trace.data.PcodeTraceDataAccess; +import ghidra.pcode.exec.trace.data.PcodeTracePropertyAccess; +import ghidra.pcode.struct.StructuredSleigh; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressSpace; +import ghidra.program.model.lang.*; +import ghidra.program.model.mem.MemBuffer; +import ghidra.program.model.pcode.PcodeOp; +import ghidra.program.model.pcode.Varnode; + +public class ModelingScript extends GhidraScript { + + // ---------------------- + + public static class JavaStdLibPcodeUseropLibrary extends AnnotatedPcodeUseropLibrary { + private final AddressSpace space; + private final Register regRSP; + private final Register regRAX; + private final Register regRDI; + private final Register regRSI; + + public JavaStdLibPcodeUseropLibrary(SleighLanguage language) { + space = language.getDefaultSpace(); + regRSP = language.getRegister("RSP"); + regRAX = language.getRegister("RAX"); + regRDI = language.getRegister("RDI"); + regRSI = language.getRegister("RSI"); + } + + @PcodeUserop + public void __x86_64_RET( + @OpExecutor PcodeExecutor executor, + @OpState PcodeExecutorState state) { + PcodeArithmetic arithmetic = state.getArithmetic(); + T tRSP = state.getVar(regRSP, Reason.EXECUTE_READ); + long lRSP = arithmetic.toLong(tRSP, Purpose.OTHER); + T tReturn = state.getVar(space, lRSP, 8, true, Reason.EXECUTE_READ); + long lReturn = arithmetic.toLong(tReturn, Purpose.BRANCH); + state.setVar(regRSP, arithmetic.fromConst(lRSP + 8, 8)); + ((PcodeThreadExecutor) executor).getThread() + .overrideCounter(space.getAddress(lReturn)); + } + + @PcodeUserop + public void __libc_strlen(@OpState PcodeExecutorState state) { + PcodeArithmetic arithmetic = state.getArithmetic(); + T tStr = state.getVar(regRDI, Reason.EXECUTE_READ); + long lStr = arithmetic.toLong(tStr, Purpose.OTHER); + T tMaxlen = state.getVar(regRSI, Reason.EXECUTE_READ); + long lMaxlen = arithmetic.toLong(tMaxlen, Purpose.OTHER); + + for (int i = 0; i < lMaxlen; i++) { + T tChar = state.getVar(space, lStr + i, 1, false, Reason.EXECUTE_READ); + if (arithmetic.toLong(tChar, Purpose.OTHER) == 0) { + state.setVar(regRAX, arithmetic.fromConst(Integer.toUnsignedLong(i), 8)); + break; + } + } + } + } + + // ---------------------- + + public static class SleighStdLibPcodeUseropLibrary extends AnnotatedPcodeUseropLibrary { + private static final String SRC_RET = """ + RIP = *:8 RSP; + RSP = RSP + 8; + return [RIP]; + """; + private static final String SRC_STRLEN = """ + __result = 0; + + if (*:1 (str+__result) == 0 || __result >= maxlen) goto ; + __result = __result + 1; + goto ; + + """; + private final Register regRAX; + private final Register regRDI; + private final Register regRSI; + private final Varnode vnRAX; + private final Varnode vnRDI; + private final Varnode vnRSI; + + private PcodeProgram progRet; + private PcodeProgram progStrlen; + + public SleighStdLibPcodeUseropLibrary(SleighLanguage language) { + regRAX = language.getRegister("RAX"); + regRDI = language.getRegister("RDI"); + regRSI = language.getRegister("RSI"); + vnRAX = new Varnode(regRAX.getAddress(), regRAX.getMinimumByteSize()); + vnRDI = new Varnode(regRDI.getAddress(), regRDI.getMinimumByteSize()); + vnRSI = new Varnode(regRSI.getAddress(), regRSI.getMinimumByteSize()); + } + + @PcodeUserop + public void __x86_64_RET(@OpExecutor PcodeExecutor executor, + @OpLibrary PcodeUseropLibrary library) { + if (progRet == null) { + progRet = SleighProgramCompiler.compileUserop(executor.getLanguage(), + "__x86_64_RET", List.of(), SRC_RET, PcodeUseropLibrary.nil(), List.of()); + } + progRet.execute(executor, library); + } + + @PcodeUserop + public void __libc_strlen(@OpExecutor PcodeExecutor executor, + @OpLibrary PcodeUseropLibrary library) { + if (progStrlen == null) { + progStrlen = SleighProgramCompiler.compileUserop(executor.getLanguage(), + "__libc_strlen", List.of("__result", "str", "maxlen"), + SRC_STRLEN, PcodeUseropLibrary.nil(), List.of(vnRAX, vnRDI, vnRSI)); + } + progStrlen.execute(executor, library); + } + } + + // ---------------------- + + public static class StructuredStdLibPcodeUseropLibrary + extends AnnotatedPcodeUseropLibrary { + public StructuredStdLibPcodeUseropLibrary(CompilerSpec cs) { + new MyStructuredPart(cs).generate(ops); + } + + public static class MyStructuredPart extends StructuredSleigh { + protected MyStructuredPart(CompilerSpec cs) { + super(cs); + } + + @StructuredUserop + public void __x86_64_RET() { + Var RSP = lang("RSP", type("void **")); + Var RIP = lang("RIP", type("void *")); + RIP.set(RSP.deref()); + RSP.addiTo(8); + _return(RIP); + } + + @StructuredUserop + public void __libc_strlen() { + Var result = lang("RAX", type("long")); + Var str = lang("RDI", type("char *")); + Var maxlen = lang("RSI", type("long")); + + _for(result.set(0), result.ltiu(maxlen).andb(str.index(result).deref().eq(0)), + result.inc(), () -> { + }); + } + } + } + + // ---------------------- + + interface Expr { + } + + interface UnExpr extends Expr { + Expr u(); + } + + interface BinExpr extends Expr { + Expr l(); + + Expr r(); + } + + record LitExpr(BigInteger val, int size) implements Expr { + } + + record VarExpr(Varnode vn) implements Expr { + public VarExpr(AddressSpace space, long offset, int size) { + this(space.getAddress(offset), size); + } + + public VarExpr(Address address, int size) { + this(new Varnode(address, size)); + } + } + + record InvExpr(Expr u) implements UnExpr { + } + + record AddExpr(Expr l, Expr r) implements BinExpr { + } + + record SubExpr(Expr l, Expr r) implements BinExpr { + } + + // ---------------------- + + public enum ExprPcodeArithmetic implements PcodeArithmetic { + BE(Endian.BIG), LE(Endian.LITTLE); + + public static ExprPcodeArithmetic forEndian(Endian endian) { + return endian.isBigEndian() ? BE : LE; + } + + public static ExprPcodeArithmetic forLanguage(Language language) { + return language.isBigEndian() ? BE : LE; + } + + private final Endian endian; + + private ExprPcodeArithmetic(Endian endian) { + this.endian = endian; + } + + @Override + public Endian getEndian() { + return endian; + } + + @Override + public Expr unaryOp(int opcode, int sizeout, int sizein1, Expr in1) { + return switch (opcode) { + case PcodeOp.INT_NEGATE -> new InvExpr(in1); + default -> throw new UnsupportedOperationException(PcodeOp.getMnemonic(opcode)); + }; + } + + @Override + public Expr binaryOp(int opcode, int sizeout, int sizein1, Expr in1, int sizein2, + Expr in2) { + return switch (opcode) { + case PcodeOp.INT_ADD -> new AddExpr(in1, in2); + case PcodeOp.INT_SUB -> new SubExpr(in1, in2); + default -> throw new UnsupportedOperationException(PcodeOp.getMnemonic(opcode)); + }; + } + + @Override + public Expr modBeforeStore(int sizeout, int sizeinAddress, Expr inAddress, int sizeinValue, + Expr inValue) { + return inValue; + } + + @Override + public Expr modAfterLoad(int sizeout, int sizeinAddress, Expr inAddress, int sizeinValue, + Expr inValue) { + return inValue; + } + + @Override + public Expr fromConst(byte[] value) { + if (endian.isBigEndian()) { + return new LitExpr(new BigInteger(1, value), value.length); + } + byte[] reversed = Arrays.copyOf(value, value.length); + ArrayUtils.reverse(reversed); + return new LitExpr(new BigInteger(1, reversed), reversed.length); + } + + @Override + public Expr fromConst(BigInteger value, int size, boolean isContextreg) { + return new LitExpr(value, size); + } + + @Override + public Expr fromConst(long value, int size) { + return fromConst(BigInteger.valueOf(value), size); + } + + @Override + public byte[] toConcrete(Expr value, Purpose purpose) { + throw new UnsupportedOperationException(); + } + + @Override + public long sizeOf(Expr value) { + throw new UnsupportedOperationException(); + } + } + + // ---------------------- + + public static class ExprSpace { + protected final NavigableMap map; + protected final AddressSpace space; + + protected ExprSpace(AddressSpace space, NavigableMap map) { + this.space = space; + this.map = map; + } + + public ExprSpace(AddressSpace space) { + this(space, new TreeMap<>()); + } + + public void clear() { + map.clear(); + } + + public void set(long offset, Expr val) { + // TODO: Handle overlaps / offcut gets and sets + map.put(offset, val); + } + + public Expr get(long offset, int size) { + // TODO: Handle overlaps / offcut gets and sets + Expr expr = map.get(offset); + return expr != null ? expr : whenNull(offset, size); + } + + protected Expr whenNull(long offset, int size) { + return new VarExpr(space, offset, size); + } + } + + public static abstract class AbstractBytesExprPcodeExecutorStatePiece + extends + AbstractLongOffsetPcodeExecutorStatePiece { + + protected final AbstractSpaceMap spaceMap = newSpaceMap(); + + public AbstractBytesExprPcodeExecutorStatePiece(Language language) { + super(language, BytesPcodeArithmetic.forLanguage(language), + ExprPcodeArithmetic.forLanguage(language)); + } + + protected abstract AbstractSpaceMap newSpaceMap(); + + @Override + public MemBuffer getConcreteBuffer(Address address, Purpose purpose) { + throw new UnsupportedOperationException(); + } + + @Override + public void clear() { + for (S space : spaceMap.values()) { + space.clear(); + } + } + + @Override + protected S getForSpace(AddressSpace space, boolean toWrite) { + return spaceMap.getForSpace(space, toWrite); + } + + @Override + protected void setInSpace(ExprSpace space, long offset, int size, Expr val) { + space.set(offset, val); + } + + @Override + protected Expr getFromSpace(S space, long offset, int size, Reason reason) { + return space.get(offset, size); + } + + @Override + protected Map getRegisterValuesFromSpace(S s, List registers) { + throw new UnsupportedOperationException(); + } + } + + public static class ExprPcodeExecutorStatePiece + extends AbstractBytesExprPcodeExecutorStatePiece { + public ExprPcodeExecutorStatePiece(Language language) { + super(language); + } + + @Override + protected AbstractSpaceMap newSpaceMap() { + return new SimpleSpaceMap() { + @Override + protected ExprSpace newSpace(AddressSpace space) { + return new ExprSpace(space); + } + }; + } + } + + public static class BytesExprPcodeExecutorState extends PairedPcodeExecutorState { + public BytesExprPcodeExecutorState(PcodeExecutorStatePiece concrete) { + super(new PairedPcodeExecutorStatePiece<>(concrete, + new ExprPcodeExecutorStatePiece(concrete.getLanguage()))); + } + } + + // ---------------------- + + public enum BytesExprEmulatorPartsFactory implements AuxEmulatorPartsFactory { + INSTANCE; + + @Override + public PcodeArithmetic getArithmetic(Language language) { + return ExprPcodeArithmetic.forLanguage(language); + } + + @Override + public PcodeUseropLibrary> createSharedUseropLibrary( + AuxPcodeEmulator emulator) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeUseropLibrary> createLocalUseropStub( + AuxPcodeEmulator emulator) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeUseropLibrary> createLocalUseropLibrary( + AuxPcodeEmulator emulator, PcodeThread> thread) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeExecutorState> createSharedState( + AuxPcodeEmulator emulator, BytesPcodeExecutorStatePiece concrete) { + return new BytesExprPcodeExecutorState(concrete); + } + + @Override + public PcodeExecutorState> createLocalState( + AuxPcodeEmulator emulator, PcodeThread> thread, + BytesPcodeExecutorStatePiece concrete) { + return new BytesExprPcodeExecutorState(concrete); + } + } + + public class BytesExprPcodeEmulator extends AuxPcodeEmulator { + public BytesExprPcodeEmulator(Language language) { + super(language); + } + + @Override + protected AuxEmulatorPartsFactory getPartsFactory() { + return BytesExprEmulatorPartsFactory.INSTANCE; + } + } + + // ---------------------- + + public static class ExprTraceSpace extends ExprSpace { + protected final PcodeTracePropertyAccess property; + + public ExprTraceSpace(AddressSpace space, PcodeTracePropertyAccess property) { + super(space); + this.property = property; + } + + @Override + protected Expr whenNull(long offset, int size) { + String string = property.get(space.getAddress(offset)); + return deserialize(string); + } + + public void writeDown(PcodeTracePropertyAccess into) { + if (space.isUniqueSpace()) { + return; + } + + for (Entry entry : map.entrySet()) { + // TODO: Ignore and/or clear non-entries + into.put(space.getAddress(entry.getKey()), serialize(entry.getValue())); + } + } + + protected String serialize(Expr expr) { + return Unfinished.TODO(); + } + + protected Expr deserialize(String string) { + return Unfinished.TODO(); + } + } + + public static class BytesExprTracePcodeExecutorStatePiece + extends AbstractBytesExprPcodeExecutorStatePiece + implements TracePcodeExecutorStatePiece { + public static final String NAME = "Taint"; + + protected final PcodeTraceDataAccess data; + protected final PcodeTracePropertyAccess property; + + public BytesExprTracePcodeExecutorStatePiece(PcodeTraceDataAccess data) { + super(data.getLanguage()); + this.data = data; + this.property = data.getPropertyAccess(NAME, String.class); + } + + @Override + public PcodeTraceDataAccess getData() { + return data; + } + + @Override + protected AbstractSpaceMap newSpaceMap() { + return new CacheingSpaceMap, ExprTraceSpace>() { + @Override + protected PcodeTracePropertyAccess getBacking(AddressSpace space) { + return property; + } + + @Override + protected ExprTraceSpace newSpace(AddressSpace space, + PcodeTracePropertyAccess backing) { + return new ExprTraceSpace(space, property); + } + }; + } + + @Override + public BytesExprTracePcodeExecutorStatePiece fork() { + throw new UnsupportedOperationException(); + } + + @Override + public void writeDown(PcodeTraceDataAccess into) { + PcodeTracePropertyAccess property = into.getPropertyAccess(NAME, String.class); + for (ExprTraceSpace space : spaceMap.values()) { + space.writeDown(property); + } + } + } + + public static class BytesExprTracePcodeExecutorState + extends PairedTracePcodeExecutorState { + + public BytesExprTracePcodeExecutorState( + TracePcodeExecutorStatePiece concrete) { + super(new PairedTracePcodeExecutorStatePiece<>(concrete, + new BytesExprTracePcodeExecutorStatePiece(concrete.getData()))); + } + } + + enum BytesExprDebuggerEmulatorPartsFactory implements AuxDebuggerEmulatorPartsFactory { + INSTANCE; + + @Override + public PcodeArithmetic getArithmetic(Language language) { + return ExprPcodeArithmetic.forLanguage(language); + } + + @Override + public PcodeUseropLibrary> createSharedUseropLibrary( + AuxPcodeEmulator emulator) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeUseropLibrary> createLocalUseropStub( + AuxPcodeEmulator emulator) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeUseropLibrary> createLocalUseropLibrary( + AuxPcodeEmulator emulator, + PcodeThread> thread) { + return PcodeUseropLibrary.nil(); + } + + @Override + public PcodeExecutorState> createSharedState( + AuxPcodeEmulator emulator, + BytesPcodeExecutorStatePiece concrete) { + return new BytesExprPcodeExecutorState(concrete); + } + + @Override + public PcodeExecutorState> createLocalState( + AuxPcodeEmulator emulator, + PcodeThread> thread, + BytesPcodeExecutorStatePiece concrete) { + return new BytesExprPcodeExecutorState(concrete); + } + + @Override + public TracePcodeExecutorState> createTraceSharedState( + AuxTracePcodeEmulator emulator, + BytesTracePcodeExecutorStatePiece concrete) { + return new BytesExprTracePcodeExecutorState(concrete); + } + + @Override + public TracePcodeExecutorState> createTraceLocalState( + AuxTracePcodeEmulator emulator, + PcodeThread> thread, + BytesTracePcodeExecutorStatePiece concrete) { + return new BytesExprTracePcodeExecutorState(concrete); + } + + @Override + public TracePcodeExecutorState> createDebuggerSharedState( + AuxDebuggerPcodeEmulator emulator, + RWTargetMemoryPcodeExecutorStatePiece concrete) { + return new BytesExprTracePcodeExecutorState(concrete); + } + + @Override + public TracePcodeExecutorState> createDebuggerLocalState( + AuxDebuggerPcodeEmulator emulator, + PcodeThread> thread, + RWTargetRegistersPcodeExecutorStatePiece concrete) { + return new BytesExprTracePcodeExecutorState(concrete); + } + } + + public static class BytesExprDebuggerPcodeEmulator extends AuxDebuggerPcodeEmulator { + public BytesExprDebuggerPcodeEmulator(PcodeDebuggerAccess access) { + super(access); + } + + @Override + protected AuxDebuggerEmulatorPartsFactory getPartsFactory() { + return BytesExprDebuggerEmulatorPartsFactory.INSTANCE; + } + } + + public static class BytesExprDebuggerPcodeEmulatorFactory + implements DebuggerPcodeEmulatorFactory { + + @Override + public String getTitle() { + return "Expr"; + } + + @Override + public DebuggerPcodeMachine create(PcodeDebuggerAccess access) { + return new BytesExprDebuggerPcodeEmulator(access); + } + } + + // ---------------------- + + @Override + protected void run() throws Exception { + BytesExprPcodeEmulator emu = new BytesExprPcodeEmulator(currentProgram.getLanguage()); + // TODO: Initialize the machine + PcodeExecutorState> state = emu.getSharedState(); + state.setVar(currentAddress, 4, true, + Pair.of(new byte[] { 1, 2, 3, 4 }, new VarExpr(currentAddress, 4))); + PcodeThread> thread = emu.newThread(); + // TODO: Initialize the thread + while (true) { + monitor.checkCancelled(); + thread.stepInstruction(100); + } + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ZeroTimerScript.java b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ZeroTimerScript.java new file mode 100644 index 0000000000..f156d67526 --- /dev/null +++ b/GhidraDocs/GhidraClass/Debugger/ghidra_scripts/ZeroTimerScript.java @@ -0,0 +1,138 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.List; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +import ghidra.app.script.GhidraScript; +import ghidra.app.services.LogicalBreakpoint; +import ghidra.dbg.target.TargetExecutionStateful.TargetExecutionState; +import ghidra.debug.flatapi.FlatDebuggerAPI; +import ghidra.program.model.address.Address; +import ghidra.program.model.listing.Function; +import ghidra.program.model.symbol.Symbol; +import ghidra.program.util.ProgramLocation; +import ghidra.trace.model.Trace; + +public class ZeroTimerScript extends GhidraScript implements FlatDebuggerAPI { + @Override + protected void run() throws Exception { + // -------------------------------- + Trace trace = getCurrentTrace(); + if (trace == null) { + throw new AssertionError("There is no active session"); + } + + if (!"termmines".equals(currentProgram.getName())) { + throw new AssertionError("The current program must be termmines"); + } + + if (getExecutionState(trace).isRunning()) { + monitor.setMessage("Interrupting target and waiting for STOPPED"); + interrupt(); + waitForBreak(3, TimeUnit.SECONDS); + } + flushAsyncPipelines(trace); + + if (!getControlService().getCurrentMode(trace).canEdit(getCurrentDebuggerCoordinates())) { + throw new AssertionError("Current control mode is read-only"); + } + + // -------------------------------- + List timerSyms = getSymbols("timer", null); + if (timerSyms.isEmpty()) { + throw new AssertionError("Symbol 'timer' is required"); + } + List winFuncs = getGlobalFunctions("print_win"); + if (winFuncs.isEmpty()) { + throw new AssertionError("Function 'print_win' is required"); + } + List resetSyms = getSymbols("reset_timer", winFuncs.get(0)); + if (resetSyms.isEmpty()) { + throw new AssertionError("Symbol 'reset_timer' is required"); + } + + Address timerDyn = translateStaticToDynamic(timerSyms.get(0).getAddress()); + if (timerDyn == null) { + throw new AssertionError("Symbol 'timer' is not mapped to target"); + } + Address resetDyn = translateStaticToDynamic(resetSyms.get(0).getAddress()); + if (resetDyn == null) { + throw new AssertionError("Symbol 'reset_timer' is not mapped to target"); + } + + // -------------------------------- + ProgramLocation breakLoc = + new ProgramLocation(currentProgram, resetSyms.get(0).getAddress()); + Set breaks = breakpointsEnable(breakLoc); + if (breaks == null || breaks.isEmpty()) { + breakpointSetSoftwareExecute(breakLoc, "reset timer"); + } + + // -------------------------------- + while (true) { + monitor.checkCanceled(); + + TargetExecutionState execState = getExecutionState(trace); + switch (execState) { + case STOPPED: + resume(); + break; + case TERMINATED: + case INACTIVE: + throw new AssertionError("Target terminated"); + case ALIVE: + println( + "I don't know whether or not the target is running. Please make it RUNNING."); + break; + case RUNNING: + /** + * Probably timed out waiting for break. That's fine. Give the player time to + * win. + */ + break; + default: + throw new AssertionError("Unrecognized state: " + execState); + } + try { + monitor.setMessage("Waiting for player to win"); + waitForBreak(1, TimeUnit.SECONDS); + } + catch (TimeoutException e) { + // Give the player time to win. + continue; + } + flushAsyncPipelines(trace); + Address pc = getProgramCounter(); + println("STOPPED at pc = " + pc); + if (resetDyn.equals(pc)) { + break; + } + } + + // -------------------------------- + int time = readRegister("ECX").getUnsignedValue().intValue(); + if (!writeMemory(timerDyn, + ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(time).array())) { + throw new AssertionError("Could not write over timer. Does control mode allow edits?"); + } + + resume(); + } +} diff --git a/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_EmptyAfterLaunch.png b/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_EmptyAfterLaunch.png new file mode 100644 index 0000000000000000000000000000000000000000..d83ab47b05c1727ef54ee940ecad179b3e3a3468 GIT binary patch literal 14910 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_MissingModuleNote.png b/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_MissingModuleNote.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff7492afba3c823ca1c88a88ec3e2aa449611c6 GIT binary patch literal 17329 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 w81~xVBd_vCNRB_v9pg&ef4V#4-&?wT9&9Thst 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_SeedValueAfterBreakSRand.png b/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_SeedValueAfterBreakSRand.png new file mode 100644 index 0000000000000000000000000000000000000000..0da30f44134a22ee669389f52c0dd319b526364b GIT binary patch literal 48515 zcmZ^~1yoyI&@SA*6$+H%UZ6mM0-?ARr)Y5}K(SEV-Jvb+#ezeT;1=8|5TLjO*8;`8 z1h;$W`+oPocir``ti=lF>^+%1d!LzSo|zM>tSF6zL5A_*!2_%hG7_o}9z5)S@Zg`` zXHS7Eb2QIJA3XT{;Ddyiy1V|a9-2F$Br(?4S7C2dVIc$$36*ih!enq6i9~UfbJ4TM znnY-Da?cjM4qhn~Qa^rQkVU5s!&J?!!})dVML$$&x7g~#`g_8D_$<9Sy@9i;iq7eD zXkh>G6ErmZxZY13$?`qVJ2D>yM{_32)5rC4WkrIC>}E5!v|ftRaY3zlz6qNPf0O;f z@^mzqOs?*wyonB0US(;Ja>L{=<;#LWWu_%p5}y+I`z9lG_=0`Wv@f5=HrrPwtLxlV znM?ImGm*&b;alD?;kzaCqA?3DjS2AH20Kd9%pRn1X9AiyH+ktZWAbuhmp{Yu%L2W! zO{BpSrSIiUO1b=GZ5J-Fh6|K&h5Ez2>TMeYmLpae+`HTfWTzRjOQ*@Qk(cs0-9GuF zZa(>HalXi{t6R>;ek5#hzT?x*zvL}>?1{Lkavct>EwkWj-`#K1o>M6G5mwgvTYAP>TFc&VN62|?y557J!y%l@J z{UW6%?CG$+r1+0_#TEtKMov>BhaOhuh~^qD$6FmTZa<1hor)+a){oN0L}mH#@JVF7 zBsG^Wd;J%B(2OX)A13Sr83XHrjM@(qa*ORhY$vv-H;l6B z`f$ylz3inp7(?GG5#0 z>(hg;egK1Ab9m8f;~W-(s_kBIQX6ZJCA#}Yh0tNBJ}^Qh4lo>uIs8~?18ei>%KVtc50 z={n%L&2LlZYFj#-PpVfM+(%lqu2%N3VRMjoX*^lL%~q!tQlqDn5Z$C?FjfdAqImDB zj${*(B$6ZQXV3yoN!sSs<+Ug*QCdr6VRxGMbjs-5u>}OBQz@=>h-7CUhmCfW_V4|9 zm&1(39l$|PAGE*JX4l!|b}(kwuURk2rdNnI?L6<=Xn(?^*XogY`@~Lg1-A2xg5Uj= z-$mOs%=e`e*W%YLOCfdBp|oV0TB&ci%vxpNLE4qmFpZ1)D-<0|mnz{0B6+*GuGp?W zy#)O}Xwj-Qq}&D5?U3ExLL4)S|CmD1A7_JaJ=O(n7Va3rVQ2`)liJ95h$%+jIU6mkDIsc1 zUS7QI?Y`Wy7mbBkwPtWj3>T;M!?nGH=*1lab>;)5CXSb*2|+qxbb=p3R!?@OwpO~r z8-q#7$>p3jSaBEWqS{9tz@xySnRqHSQlraWy@T=z6Qn4<=^lGQoy1OXx}m4z^ovMO zpe0}^@LEFatn^jm5wG4%-M8AP0t+qZ-*e==H8whTK#;(Nt}%Y8!|yfUxloxE7V72w#b}84v-1tb(`1<>bYP= z9U>_=$UZvtC%AJo_{F&m$%!sU09k~Uyx5Nao6RrX6JqL>(u_t|Hpfhu zYC|MPQ}-Y)@GQZ=?+K`r>TDPAzBafW=qZ1R4tOgY$p`QGCk)ZQ_Q{ zJJCa3GaFa~oUVGksxQh(W^1j`^`iC_+4B=e8%7>Fd)+}A{UDrsnUmvXAkIeBXfbgq z<)O59j9#a^s6YLzYU`lntpu$~l`dIA>oFhgs;4jy#z-9b-2NEa;Gf0NjXvRp4>_;M zo*-44Nmp5*(c+9uFrDYQDLVcFrWQ%&GUS$#1t~n=-bD91J^u(#tFjfanfIB_BPV+H zdf4$Rz3G(QLRLcRnI%nq2E93r+a^Lg)pq((&uw1hY$sJX%nQNc*YlNNTnqo_6S6Z4 z!5oLUZgjFX%xrz9%QlQ zt^uuD>zOHNFBBuIUqx@TeQ(hDs(c-Fa7yHCFGV}czb_Cr+p_TQ`n@myjNb9zNbJql z!3I-#k$DQK1=`_MTUEo%YNh2?YUxi;3YXoM#?C}|^2*xvHk;@pB`$yMx5rZ(OEvu| zIlY*eatU7qL=FRZ|ccb$jJyu$iW}VNpBhDb^4CBgOi?5nB?NGg6 zJXSf81;1q^_F6KQ5L<+#}u9Z>|o)wW`TcJS@*6tC{<)=d^Fq;V}AV!Aj}* zO=pm;^9DJB67CgM&==n-Eo30`)Yh^%9^@jDUY`8yCGJ(D$HrTm*|U6l$5m(eM-9M9XF<6|~Bh@Oql~oD;?2Y0V#-p3c_zGlU%1DC1)@LWQcG8o9Sw z9R_&0ZNr77e7KFAUqjKVjlubQQ!2b5gkv(jC_~Lo7i5bP{(P<`{SO-P_wOt^Iqu4< z`jMkz??vY#b_(*t1?@k#>Z_#EOUTz)ji-$kWkI>ZU@B~#9UT(W6voMAUVSYy zhj<*$i}Qa+H>vI}sG2?aa^mda$KYwt@YVK4J99s+NPG(WTAm?K19^KuG?%a%QZ}Ar z*#33A#Dmk5^KNJSyVxVkS(Nl;rK`gBcopjj30HjM>8`j!N?mqQO>5S6O>1snre=1> z0b%wj#cYo*=#1(-E{u@Xh~Zmo1$AV~Fd^9!wK2l1#|!k()vw*?MLamltF7Z?zlwQn zcb1oRaw=Cx(2L5rM+mv>%qMEi2L)!b=6YB#bAHn1O9;D5hIhK|@Purh`ZE+1ty6qy zdXbsi%iL*m+GcK?OaEHDux|1&YsWfk@>kzsR@~imuB5hxFC|OJUMMq9DrL9>a2f`O zzQiP!E#_wS+)2T>?T(lgLMC_lM5W;Kxk6ykpSfliQ%l5!k@O@9v(Y$|E3p+qs3v+} z;CAI5Yf(A67B|aM#Ds3(=MV6-(okeZPX3mz!T_1Y``Wv5PMYW@1YY)}4nDtD*Pn0n z>uu)xuR?Z?f?YwXAT3L5N)oEwQgm&%L1sXhQZOX+W@s|tvHov1h33;64;|wE$e7@o zW7jW1mNdN9i)8!`r+7AFWbV=s^kpf^XUzM_=7Zq@IAmRpD`U!yKDNWf5LdB^u%^g<*6dGw{QrTm}msC^}8K zP6jCu-p?E8p?8)LkIl^BuV~!+^MAs>Bwg}yR)w>Ud(KqW^l@F+ z__CQ#+;6ZHUXxGe^DcU)hqc~OPK*asicc97nl!yoKQ1mWlszF+hv~Q!eS|ShSdAxz z5qM=f{vHq;C^B9fbs68o+En(iU@ z3%wAM&iG~g6f|{RtIsCqYNcYqJ+z(qtRE+v3wvGHJ|F(mw$J_nn|6VeMKS107)4OH zjeDpiiGB!sDZGSVXt$qZ&Q;UTSckKtlcI#XR)ahGK;@biju8K&#B&mO5sGfisYTzfAo%HWw;NxrT}C6T!mnhu>Ovco$6IyM>_%yFq(GH*U)& zvhd~t3N63EDkm5@5w>AJ?*Z&#)osO2P)mtNUJmzB>_WvVG$4#m8gilRw7UA(Q7Cfs zPZlPRj#mL&7##w)rw_6v41Y{qrme_YBQGZ=@8iOZb8A1*2TujcehvN`$mnrAdx+Mu|!+M$V0t1HNpN9 z6kF|kY>iIMxC=rWiDj0Q>oM>Ib1M{Mqx}t~#^$mjQ& zS`n}Ff_`TTi&~-50*#&)r8wN78OLPpQsa+j5QY$XXJ9HY4l^F zGGcCM`yc{~TScsnsnJ&{y-nVRn;I}lw^tx@9be#%lf?ZBD%p~IU z^8>MX2)fGSm!UA+vJluIh}*$Q14JFB3L4!DLnC2?!gU^vtKds&Asoj$a7KMRcN8Pm zOP9Wrri{qIBULQ=$I~#A*XrVFm6~eI}%EEIr))}u?nSs;a*HSyu zwd1z+qanC@`D}*Z=4!b5EIP~CbS}|($DQKRZTN2UFu<~U=f{U5%ia?KI7+3C<=@AL zEo|+oYbl>BMTW?;jRdBUDTWUpkAM9E&vUyl|Bc=yO8s!5qvP~c;6S-E2#Zn|)ZVLR zraG4U;R(ESc2zt&LR*$BP=#){a%V!O<~iU!*-S}_Lj9i`TVv@ZS@M5)Ci7lU&e*e< z?eL^Ly6=5MR3C?}Kyh0!XtYG6W{S)&qLi#lHT{>r@jjvaT^o+)^s^Z}mhb{Xcm{5$DYt;AS@Skee z;Yb~G7O0@<);qZRjFpNXh9#B62k7fi@*afzj9;~V2oWW*#6=Tvb-%Hc7MUgIFy2at zc7^53Mlb5WReJs6Wx6eUBYukvRAG;qqim2c-@!>{mNqbjyes{AROtm?oWdKXm_YB2o zz2PAQeGCXoy!=M?3_f6}mBD-!zdN?4CB`i*tR6UKQ)LvXE;+VoLD}!drJq4Z=ItKu z=&0Z?9Ia19S|rqN?2Yq2FqA#=Qh|8Yc}&>VVm`?PD~`Rt&`)AILVI7(IX2H6E27a) ztK-MyqaGA{zYSW{T%=!$4Pfv_rG%v2fa8Zsnjvc%R`6>reB@jFMAat>IBlZ{ChK99 zm>~^#T9YrDB&9GRuW6yfL1up7f*vGvrXux}(m@-vjMc~9@6RwaT2!h+ZwzJL?FK!} z0cWShq_~B$%Z1Pheq@9iHQDrlj%0tD?tM`RqcbGv7pcCXK@jlhbPTiZs=^hUFRO+UL(QMA5q3N zo|H>#fF6UeqH))gAXITr!;zQ2JPH6q4~P`a$``X(wdP?4sRX%6Au$A1HY7GX8bPLa z--26Ho1%+Yn#473S4)$w)U(rfs4VSalv3~#a6>FkCyJC4{Y!vy6qQIuqw^Nc7$LLD z*G13rH!WHvB;4l8BJGf^7oNL9{pTYZ@W&$x&v1WuK~JisCX$|3ePA~YhKtDO{n%9) z&`EH07FR@)wH<4fg>zgEYv;_pV#DOw#p5&*vnFp+eOMzL)$zcz6Qardm?C?3+ZtSa zS$w5FV=<4%?@4dV12XO6nF{ET1^JORNx08#N+H}gLL|v0?xQxQ0?ysYV{}e&_D=U* zJM#M-nYnH|1Ih^XUEq`3a2z!J`9wWvNVwjUoyx)gPHk_lGQGxC}%v+&TXTIP2iSAYke)_ z8UJJaDAt|s@z=sI*lu=0d3?PtsNeZT4)Sg>3u=U2pgAKyp1+)0UAB~8?Ja9X*0#qL z$uG*qkzy`EFzQAPcRp4G5n9v^mA#a9hEb}5j)~po$N82Lz4061S5B}=;xXY*HL3zCV z^K2%eR-DXkwPW2Q2Xf2t32P8iMk&OkFp7NZyh|6=8H9$qxx9LhLmoU&e65Met3xG+ zHPxm1C}3(KzX^`L*+Mln{TH%6qLR7WJsvLTPUJ4ItSM42mBR8oF0I=NB-Y2FV*Z?@ zSptrkt+o-@Xe*GKu$s)qNMJ^yQF)6V5O_|N32L2g*?C*Txm?>Jx;1D_0QJKFy|w`p z_4g3U*)KP)p-fZ%AwbEcu{~v(BFS?|=oS-;KkMWGFFEo1@$cJ3jx9n6&0hp|{ z<57D6+t>4Pist_J2ZXqK@N;vqqm{0$lc}Zef*yZDSkDY4@j?njyxV&y07V~D$2+MF z!NajXRf6w7m%#wcqM5D<&P3kEa5@%r%eQsBFn}rA7aXCP69TAz`1v$Dwpc(@ujQkX}RJTM&K)m;<=rzx-Gj zS8jECya)@>;r@n5I|GCfVC{fW5uy*m>HOP)Z;Jo#G!PV+-EPSD@c$WdE&+->&`xQw z`&Y_yzpqM&F;Z<1>HW_s8UCjUI{5E}cKd&b?!FggxkqS^pA@n?Y)+PvYZPlLMDjd|(ip4Tggzq)F48DgwYRUJ zG-V?R#TUly4~;WZj-fd~It>d+lX85@Wwn~j3)yROX=*}@5uWSwee_QT>o+=w>U(a{ z@jIe$?nW!x7!ZjKhv&!5sd0A?+8oE!3q zr;)@E0(Ehi4ZR7AYNf3`J7`mAaFpC4yxYk1Qg6Lh@w~kdS|K(q`TU9F6x$|ucFkhx`HS7LwGxY&(-8d33dI)lO{W_R{h3zhoqrlRn$Y#% z&88D+Zi|bnTGn#-Y;7M&^CY`nea_(G(G?-P+izYa7(aQO3YF)63pYa zWulhHsS~>PXRUuLCtA2N^xnLfzSPj1Zu##Y8w`-0svy7f<=l0lbmBSxr|J1reu6Nq zW-)*K@uCTfM#nYb8gmC(uSSuqxz__^`*v+YVx_tweP+<^=Qy0D3b{>gq1jx6W!lKe z7wlK(#@V#eA#XpvQm|iHIbM&%Z`ZB+g^s6DV3?Y3qnmA&aw?xBs$TJncCKzI_J13P z!{-u}QgCC8pHCT0=1O4ZA{^6dGl$d>ILDFondZZl$!Mo)7Sk&F5kCZ>76Vd#I>j zbaG{zgu`hbRO!ML8#ihEgtUT`gr-=$W2DE)F!o1+-NHI^O-geL@)4Gi_*KR|<6zzS z2K)^d*;m*B8nYQ5>oHg>-j~kvr-f?kkYtcHN2A+84BE4To}3_xF70%s+%|h^P3xtG zW6|Ob+XX21j&Ka6sPDhaoKouX@I9wUt!bOqB=yQqJ*3oFZuBf^($gvS{^@ieRdFk@ zX>ok>E;|9-ZO)58Dv8+O_ZYI_5qmR1kBP3Ow#H!j87)^c2swBFgTHNif8weyE>tE% zP!&Hc7$QKwp7pGl&8mLF+tgy9LQYOI=P81^%*uHetSf-nHTnqW0oT19GM3K}d>g5P zQh&%56r;cW3ZbolS&ytz9}YkAF4~GT;?7K&eCe=q{7XL#ycoSD<*z1)S01t{RE6OTl))qM_+l(UA=o_CC6^AYWr+mgeN#6jB?DjE-xbRGs(?Xn#J9r z#+8EGL|x$DFALNkDrzX_In6xyrxK44msVTGMcG05j5>JeC-JMSik*w1uwi| z(PLtks;Vzi@ZH6m5}eNlenM9TlVsadB4RePX?ew32WtJ${H~-_jH)1VVpOUBVC3Wo(4CJ~Owu&os@KIbbv{_Gm7)owZgXL~&myJ_grK(W?`;(Q;S2b^pZ zGZiFCXe^aE#wK3AN1J&6oT1c5<|6`@u9nU?pzZ5&z6R)A=E6H!=Z}T3&pnqSyin5 zgg&Zk*EMMAbEcPF!KT}kob-^>6vyNz&PM19s{KZAwi{uU+34C_PB5^TgVT0_o+e+s zq(Y2x98N8E|B2mmB9_MNwK*$eCs*M}wjg$L&7rsZlY1aK1Mu$N$JvMmlvv?dJd*|!Ji}yA$Kb+RNKR^{y)ziw1)y_84{vX-cp@Sr zCqfUl0Z@_0{F1|wV=r8oX_Fi7T`r?SCg59%^OI$crm*)+VXJejReLxVcbY9Mhd{!^ zY4y>D+rc7Cz-|8-P`6ICU1;nAkjc^d48Yd%0pp&6fr9C9BWmcNkF*A$WfZ-#cSM3t>(2o!)QF(;2^tHkcqUdJ z4!foYLAP|sD?db=!9UgiGjn1|Aj=qg4kST;c4w+q<{B83GICdYqLFapp3PyAyWAY< z=&=}D>3db^T(=f8Z^2b!BRddu+c|h*%Jqo6{CSK6V0*J~`gD!@k?%v_P6DO3XE6xr zA?j~9J>tPHM!!5lGrzmNsRn8=vsGr;dy6fp0B+M;QA+n3Sy|G=xRe03?=_twIT_Wq zjfmueIA!1n5}3-HWrgf;!ZRFT1)g8^@%v-xGOA(PQLE_}Lq`{rL~T;Q-JnM=~WX z@EjO^R+=|*#9k~#FzgmctOf6MeGvD4Chh(*w69R2Qi z19h*%TTM9UP?C^%T&i6abPt_9BLF-XOXdBh727I8t&2lE=sDyiMmZ)M$!7w&fq+2p zN&>ET$BVOG09O7d+6DfS!F6Ep&zQvnn-HpH-f<#+50UQNLY(%D<%|Yerth~j;MaNj zkBanjpwpUm`i#&`OWk^VYLkAbf&~+)68}64^w%alZg*t@HSmMs?+kAE$Lddk;7&Yd zMcR_ZW>t`hKexk*1g!9r;Ff(IxTDH@b@1BtsJmLkjRQ)&Ud>Utlm;kkxERelVpD zFPy{h$h}5U6Logni}LeS0P^QIGA&mx#yhtMnY-|oZeOxP9-9njEY!k22_6BOM`dy; zTt|^{w$m>r5q+(&KXROHIlwvDT~L~CD^nXT196=@t+PyaQutmbud{w+s;z2?)l*vH zt`82mYL?}mt#zWh8L4h~hURu)qLrs(=SQ=xRi`fw=V8&rDbn6yUVzd{D>~THp1s7u zCdc9BwhN7=3VGr}UD+iU@0_BPL3@$PZN<~XuRXdn%z(Vx;)cg#eU`Q0jnZCh_K52N zk-7p(Lar7%4n}wEni&NJPBPRR?tWx;yug-bvD%3es^;Aep_IZ71L2=l%4c$F+2W$H zVi<*BbtIwk_J=b=`R%4jsB4eH8=hH`;b4Tvdhkl{M_lucFTM|8k- zeT?ShXpL+u59L1q9Cq!|x6iAwwfEfUV)KOrZ?)$&M>%|MCc)cL_r@jRNMZO>5lR;> zpD8TVX4YHrg#m#l;byStT|U=k)*Gu4z>fZ`l6ygn6T)1?#SRvmZZzz7Ib^DtWV~OlTYTa%wkY9!G8%ldz#}pX& z2Ss*yw3nx?z39Ntw?P;^a?5Jb%nrBJVkp>Mo-@ilT8R4%afBf=}#bDXxH?(jw~>!A}U=q?IdEMmoS*U z#3Fgm3M5N~YHgzFe(1FVMBKZw!VRUj{5gV&QbiU?@>)M3z0XMM-_iiFnc1z5Iab5_I|ny3snU9e|0TXq3o)6xE3y` z1H$wt4j)M%B+g1^yT$=hsfhOpW@f4kV9Z)CwwL=8b86~e1`!;gNofE1@B~Qudr^cf zOi;_Tn9vU(UR!Gk6&2bOd-d^WEM;)&u2p}af8^e;Wrj+Ds9j^3aCmL!C1q1xSxtH? zqcuw#O^wyIFiHela-_{hwSq=m0pUPK^^iN%LRia?Ucb&ZJ*Q9&IReC&$8evkQ;`lHJAHkAA5X%r?!|1MtEb4m z1VZaS+06;eA^>8I9!VDMH%?o#FsM7;q%FW=|nh9fxl_A-y?3Y{VY#;0`%+9HcQhgFP`l5Sg%Cb zSBn7q@z+p6`owa*-$q#Cg?*k1?OMRAF$BWyB`^y%KiQi>Dp?I&Sud#~iy>aQWCz#6r#`Dle90nxm-h6rA(3 z$xjfWFi*j5nrJEmd2C9AdE}i-)3qfykkbqD^uJA|hr)zGw3@L!Oq<~ITKO4AltRnX z#)TxoYi+-I+A>+FFRV`hff?Pf~%BrT`s@la0?XS3m^d=+i`w(ab z0JWF=-dt;5H(2n?catcqKjNHlvc_r#brAJurbr&zaW*#hLl4j8K%qPy&Yy49X*EFF zsuCk1w9=*{s4Y@NZsyHZ@Z6eOC*F4JxN|D6T^=5t>@2VF_k=dQVeu-l^lG+c{=EJ5Buv0XZfB8{&V69yAc_# z4#Q5nwwz7zp53tvavzWMi7PDc{e}(evF5aQoGiCCFg<;@xpB_|mt+nbB0?s0aC6Hy zYH_J;q}?|?VHc6328Mw@sqDfgo+%(`#OE(fU8<30jfy3_$v{{IkX`6x33d+e;((H# zzt=SEnD-LtQm%EUYdO6skXoOg;o0{#oxvuyyKx|;Nx7to-+fbNw$T{d=2`gn;bQfw z4|cAUt4>NuYrMwZeJCz~vwHZ*E);f&u#pcx^T(BX6o77NFj=A?K$G)wy{qEUZ9Avg z(0e73o9c54UZb!KN~PWfFH{!5K!ydz{})DWk5MI)?Ns2y(mIQd+$~S{YeXUHR3LD7 ztT2tkrGwYB>!G9~CtnaIx))aNO16pApUiMdoNeY8_BD;}E4Chme zsFiSwH^$xaT)tyDR}aEfi2*#!SLd!VIB^`}EW=7vH~GgdY8p0o=zET>kQ#0k>h<6( zAZ3Y^`aNs&A&t#6N!Ec9Ouo3gsnb*=am=JowOsho?ii_sCUio`$c3V0C|@I4v$}D( z!cKZ>GVHI3>$)muiMh=I?uv)!I&N9WD5CBR2*|ltjfz4|&E~(^vlM~^u2GzW2KDOJ zW?pnn_hty`j1xEwlzO!MYrkc;Pkm=gE)Q_O9d%OMMqGRVvToMnPr#`fHD(AsD@`l~ zD-bgKK#Y4Fpl>c7-oQ=$-&DDW#?lB&N2R@g%r1r#Y0(=Cv;MCx-EPluI!w`DfiWU+eFQPniXVCG0)!Dv>Yt>e%K7rz;h6l$yI_YU}AT z{{^i3L~;p56y>~y9+3!q_Aw)QnZfYQmU@S=HL{HMrq(-wPo#*VCrU~!k{1t~>5xCt zI9o3|FISyb$4EWO;l%Z2daqaizY95OBrT`9N6^1);p(gDGaEw&@4LbhzjIlP zh4?{|hxq7o*IkGdGXxtJMCg+MTBzyf3ZLpMluG}ihma}sDaL}K6gC+Go~rOGNzf(l zkYqHWG(&u~mQ2cXX1Xt!xW<~3CY_zCEUsECB9ilBRnEC7XIX1itoYKS!&H-49>wk% zt6M9HVTaUC);tTCaH-(W)HKl<-4?EDtkv|UL5%IX;7R>z2mBtLoF;DcKE-v_-aLg( zB2TMPvs54(y-LB=u^9wp0RRZk=?VC2T6UrY{u4|d2h$CTfP6OZ-{8@DqX@82epDY0 z<)Gh&=81WUc{6>-)lc&sZGccK{cE_fD71&pj7pjBhToPCly`gdtrxttYt{Y*M~rP} zR5ZTO+&~t|YZWe#% z!gAZ5*9aIL3}i5u4{Ur$o{{BlBl8qHY8eTS_iufIK5e`LH`sYC3 zST%Tbf0J){P$`8&Eke$Bu0C|(os0U@?mo7R(49aBChk&Nn)HF-rEPA@ty*a5Y$$x( zg`5XdrCngv(pUN=yJZ^A18)7XBH#VmcSUkdFYa=bM2eaAC111@a}fkYvvbOacNu#d9h~-7>+! zB<>}S=e*kq-yt4x3X-fke2t2#TKY^4nV@lhW-dD6v|aE# zqRHqK)VMP8rr3f4cPpjFoPyU_wI6%=8xM-fFq^np?_>FpUgO-F8^UeTBQYqF#F&`X zLPNxD?&ZW2<0F^WLWUu3`t$DsYMv>7^tn{ms~Q7QM?aI9Q<~x99OMUXn1>=H&F4UtP)96&f6<1Y#Ifxv-T^4kId!&RtoAdxH%c zB1jB1TOD*^%*x2+IKMc0Av4R)Gba^0bWnlMuO9@nHCAs*^%uCr7AoZPIQj8NOn)6a zl$ZY1@{>WRiT_iE0*zv%^ID&e<>(3lx3&BGI_j1j7q(QccOM2*Gx09Ib(dIkN=Q^A z$!@#fzj58$7Ne$iaha>J@*8dTxIpM6g3s`b2#X42UM*Tv$QPe*@>-j}(vghl*1>#(jDV{%u3lLY%aCs&Z&)5+`DgvFl0o0uhnM#r8(d&)-%EH3t)pG!PrNiV+ZJMZ?E0Vdt;*&7|sDO zv(VdPqnvy@+|yF~?>YCOgZ9QrkF|I?SUGhe1PP4Lxm(yv*42>w9f(jyu67wFiAVT) zhgOIL=HLMPk1d|l^!o1!2}A4MueiHQCWj^F{m~q-F~A(pjnMzMtsK%wf(1RDYtymn zz0M5ChyS3qxKp$)_!TnJwDEg!1mM4I!2mDv0Z5P26{Hmlzg*uQ#(5_t;h^Ac)OYC7*%I~a#m`cY80=l^o@iD$Y1PNZ z>em$fT;Z;JWbcpHeGvEHwnY|5PO7$kq7%wRFes)thn5+%DecW=vJ;jIdSt)h8rLlN zk7u3~Y`7Y)T(e*gVg$g1tU(G` z!-VrEwk$|!a?v3MyAvTNco1PVn$3(FlRHnFrk!hWIzyC9su#M38wAje1FZZ&5Q{F4 zEsu4btr?@mnDj!O<`0R~iVFJoh+i7LwlWXm9A8jn(9~j6q=4vm3x2$&XbvyHh$e#q zHb0&$b*hF)zDp5&mvHYS;=cZ}$Yv(sbRO(;Qzw>YlS9i2Fzk4$m>jDke<^kbM^u`? zs*kzU{DvLpYL{n^2&TFmQJbTvZgM-|eEts=2W)`BKOLd_AA`)6H!+0+F$l9;eXaml z0t|@h;&>?Pb^w!ukLUEfD^lC2w=}IMjY7os+$RJ1y^!Pw&ndn2ov(;kePuFtk6(+s z!cs;l{>`dr?$N-1iOm0zs@}sspsstLaQ=nBe|bA*;CxP)=!ts&qcjU#9s2bajtFKy z6pOg;BLe72`qtNhtn$eV<(B%UFV`+U#J)y{$tCKiDK&gAt2X)o%RV3`-kC1Ch*0n6 zS>1La@9L9umnH|P)uw@$lofhDdEUpG1aMA?QO*I1Eu5~C6i6R{bp93DmWnaG^6!jC zkkSc&urrUN7sk4Xlku?423V`e)VffYr*NL{qqR0Y`VLVBz*`o1gGp8?OB$^=iqw{~ zB`|OWF@k5(SRKipoRJL>$>AbxhaKV7M#l4TZ-9i}{;69ioggLGWL9eJ?2PEdF+0yL z*qtaGxemOelkp)r))An?MBMgGt6r6+OeNjrE4GEOX)b?}J~bJft)}IWtuvZGmhNXnhzH8JRy|pAw}}xr7EU3g}FZ? z6U^s#*$HQRtTq@9Miod0==Va^EMo!0f=6W?{-@d+SuQbX7CvZhNP3C9BeO zuY7NN3}DKh`RT(_-rNP}4NCIWd$Bh07o4~eN16oNMdnha*5Uvz9ZQ{9flY38K=XDr zY&=^-m%8s&Eu6kAC8`%i(DD}QbxK8qDaxt~pQXupy#A6Vh`gOloW5! zUW@{|lDj*EB(~5{XX#3i99il+D-~TtBFi1^oAxf8U-gb~As_pz!PPD9H z^53h);AbnHkw|VP>t;{M{J?*hBxI znHkX%4g#v-v53v?i5?KQN)WGJk@1Vv zrrLdc8sA@2V}!VMRjD7#s!$5K#^Q)av=>^y&R&~AQ#_#BRi;%RRxyiucug*?Roo&L zifVCly6L(pGS~_zOl|bQ|&e} z+L&(Z0oABfO@N4F*ALM$l8T~KIw0~LwxF1otg2);c9{-gZ^Sz3@qb8(x57z2IiLxE z)Q;2utx!jHsqF$5BMu?4@-VtQ&(+Kik!b(p9|SySDqG$U3tyFNHVy!7Gm-^ZYhgCCS^p{bC45BB%0m+^Mp~O zNIjlMkDuv3u=uZ5M{QW`@mEp{Y+Gi3#*=w2)Qi@Vx{SPu78y-B{HLMDweoqqz>ZV{ zUhc0m`6BU*5Amoxxqt@&K_kRw!_mU!iW&LITwfFwV=1Wk%;PpwGWYRI!kc>h(5+@Zy#8^3r;8xv{IB4_ z4R@}kOcy{n`V^lypY`csSWvt#PA!?ViTk6Ny;>ZFY|%Y4-}sfDjm!Iw2eEha=eJZ1 zAjBu%iwnhL>fsEy7i#I~UH1-;mLVO+z66AyH40JbxYnl*hXBOreJSW3@{~$%ynr|R zUN%m5A551RClEM5eXktC+huwRc(6cF@zqtlG<$crpjtV#e)^yPDfO{lB$a zyKle)1m;*E^BP`5w>yJmxrL68dN<;dlK|51U%?!Le1f)9ieKt~XfUnZZ+D4h3zE$`Q99+K-*xN&fNraH{(?zAJJ-FwowcJI)!ufRM{FQ3 zPRePTeH2HjH+)zcgYt#rt$fVZ>MOCPN5*}E%m2Pt6bV6JVO9&-Id2=HiO@>JvAtfv zcD>m4R#SS;JYJ}45TILUQJ%j=HZP7avXOl*VEF8Ph}fCF>srAH#^a(B&CaNmA|Dm; zl2OKC-I{HK*<8Dk3b=dC?o@^kquru+W2tFrIqEo)%hZH3IpcLWEH%rOPRE7W^HJ+; zImXFH!6A>MAh2R8yB5O4^TK4-@0U{FjSeMl2B#fduN7dDX(9{)s?7W}l;Z9SKMcWS zBR^>)T$m<2AJa@6=K;MnCO^N$@K{IS%<S=g$O=lF@K+M^!1*(Nx8{`** zeWn~jy%Mz02n4oW2whT}s2J{2!O__Yug~T4yoLPAITyQeT-@#myJUI*X?XI}-j|H( z+C+0b7lA&m`ut4a+4W}X-8cVcE*!}jK+_<=`LMuWa(xPj{4r5-Q)3~_Jj`J=X-#7* z4o)LZm<|d4B6NifydmOmy1@=`R2>4m-RQ%A+MFQk+GI$wPN`wl3_BM;`8)=o#QTiI zT@Ez*l%A2Nwoyh?2K2#(_A>rg&OtT>E>$s0FZjK} zSq&BPI>X1$BICInLh&|zd#=1}yhPU8rdhuE<-&gEeev0jn??%~j#3s2whgBbxS&7qhuny4B z?G+BE#xfyfoyoK!g`%ed*BBvhl!KL74-htIK-YbWj() zTw{Ui-}LS1(~U!*EQCew-NfRw zCwlu%>w#*bjst*Ivf*Xw7it2!ufjh6e@#vTyV%i`NlQEy;&pzLkjxuBwB(7R%a}&P-UN_hWi+{TvQ%_lyMP;+ zBmdJrZ^?cni(ncP2rR0{BckJ_TIx?$8>VJqs`jN`(a31!yw9@7t=-<+lMEktXUrJQ zXTD8D=xjCG7FQ1CD*9}+Wx9Cyfq=kI$QJqS_!hB)UWIvc+HU73&v1RhexQT%gbjgb zaP(~%U}gdmaCBx$z6twyUT$Rijc-0~muGuDU>#ybf%jf(f03{)QnPf-Mu;0X@W;z0 z&xG4iMDA*LWKdev7ml9&nVh?Ik~{Og4>d3DX$=W)n-HrS-xgnQ1x*nhH#H?=8mJ3{ z{C6cZtZd2t#3o4~p`u6Lhv|r$@!M^3>Li>#CXKcV(%dsMIHJiRDRfIQ2|Xwv8OtHR zyr)zybO~fkSxOnJiyyHmmx!t;7ER`@UX5*2!uG5_&DB8zJfR{@E6>S!WfVnmE*o+G zfL`NBEVtGC?0w>zd|y%NMi+MPZL+z_e4~)U)wqz^HD(~#?}fcG35#g(%T#^tTm5#8 zQ#@!SeHtvZ%kB1+{7J@pSk*n)Xx7N?k^CHt1yPYka|N)$DFzDda0 z**ffKK&_Y3!v#>i@y9!fGn=hr}7$uJ$% zE10{{1_hgEq&As#t|#-wyjMzB&3W=N^n3a5pGL-Fs0sD-?q=5xo$8Lv(Fn$# z3o-Hk5Lb}m>O%z5>$|5hga8VF&Xj1S_|3VmY1aEdi+iwm3LGB(xe0la!Ih5>$;_I~ zJT6fd6R2r$E;oublEjGi<+P?n^^@S>)FC3tGdj~)Q)KgCM2bvgNW{2}rn2N%eVay4 zH0HtEy`M2$wg>uZUpNJxq7VG^F*>(zGFG;z?p;+gyOJFcvHv_~zG$s{26UlG?M{nj zS~(P^@|gVXX2}7lJ5qcmXoi%%J)1_Ujz*+uJ-X@F;*N#PrvJs*TgOG&eeI(>wj$Ef zAR-_zfV3cC5DL;Y#DD_=(%mJ}t;Eob(miwx^+-y0m*mi0L!OP#^L@|z{?70G&iQ9P zA7+Mo)_w22*Iw(ouC+D@G2g2LXStf`#Q zRor2erddw0Gp@11ZO|+w`?4mrmj7cUOo(Yf`D4);z8WgJ(w64Ed~5d9TQM*&1ow zZT9xZ&oX)|@8Wtq@ugN^Kf~Y868jsbnn>*AzjM>a=KSQqZf8y+Jcw~~2%x^o-P%|*Ez*w-v2xCckbJro11Kwc8v~z8yH<1Hho%?`X|j7m(KWk9#T2S zDBXX8Hw&N(pSR2#vUQfyxMZA}Q>PCUd#2CD$3dF{Ti{lvqtU;Fp@}%gC-~H?4FpiW zP;`B3dJzQDa;87|PF9G?ksbH*is>3w{Gf2({V zD_ZU2sJh-@PwPZT}_h*kG@G`^nqP%IXivH?>%;26u>^0ra zvo8%{VkeW+E&5d1CwZ%WB;p-0oSEUGC%>4wDF7$WiPo*9M{G}j@W*)^Qbz21{Aq_< zb~tZLd@^WeWPDMbW#pH*V_Jx<%D?wx(`f}*G(tc1T*MYf`)-j9LHP`ulFFU3D`4O_ zlw!6$Uvf*-gY*_W>))h(=xA2S~4c)cDz;`D!3W z$1A<1Td*?v`qVtjmoaZRFUml6x*oYJ8~+h)Ra~K91$~8fJ1wTYI2x|sAKtFG&+;~r zIFU-75Hy4b zTwwu8QlG*v&trU<7}AMkXwR-SoDsB`05{-m%!G(*4e1-P6DAGkV^bV129ibf*6_^8 zk%DYP|F3vC(nkDj3$(FXdtc@exTd99-$p&mf1C0f>+zzFRx*+0fhAuikDhns9{NF3 zX8oty6H0a=J9r;QCBu`RY}$sDWuK~mpc$4O9N(&#_#zu20-%Z64LC%#ER>v&V^$wA z{>Gbn?`Dy?+lLR_BC^2Ix+2Q2_8srr6L~8Eg+4>^(NEdB0tg4`c~$tFX$qVWnC_(D z7^Az^G(Tu&*ibcdq(x>^8MTGM)~~xFzs>uQi$xhP#2Nry)}6oJkUf1U;Lom~@xFoI zdiQ?9S&Mtanm9R196Hn$jm~oJoEx-yZLIdtPZjVxsS^si!q0xs(uH|SJqkS54CQ!At_;nl(=N>0}v=<6)8D>Y@ zs0XyN0QPBKSF`6|2atg{L)h(CPO1P1BitD<>Q1e}>WoyIbRBxNna7gmwdBIpS5ua_ zf|VQZrfX;rNT11fxX;#n=nuE{rJt{|QeiHs1aO$IW6*80{~P9NB9fo`1bs&Ju&ER3 z8INcBUz4Ex;m7kC&rE)LdOg`z#M($O*ZaG@Dp8a4S5-q4x@c9%5VK_Jr@42PI_H)L%x`L%%-nkA|KQ12}sZ z{yMZ`ZhqliC$DIf#@Hb5RfZJKrjmkD&deawar#!5J@OLr<`xxVn@wrK-316^p1$!5 z*#}57Ns)U+vSWLxhDw$Kyhw#&-Teg5CcekS)9?U99z%X*f<@xwh)0bVCc`J~8Oh;q zAgqc2*He@)oUNEq-2b5ubO$+@vAnvw>A55F`L_d1=Q<5lGsFOY;I(~Z&jR}^INerM zE}7ZO5Yq&aE7nVw&vFUXEH%)2Vt#MtRkRp3M9A(;WAt9FRxAJqIUoA@AAc}N0TPmX z6M0p*EaqrC-hb3I;ZU>FJ=USbrIK+Z+W}umt$NziP#Q6fb=*aMY#oa`RLH_JTm}LU zFu*Nxn~gt!@3$mi%@NP+#7j=95?b6VZA2N1+Ep4QXU3Xy%a5a0WUiiiARH#mRumGx z>_VALBtwCCkAP5INu2s#CX9tT@9fXiO3}4PGIOTC$3hl63}+ z98ati7O%df-m%Nnb!hsKInegAq@v%f>dPmCcE8J$PM=Byk?2v)jeyLfn%9tb$=1MA z?Vzmq-DW@t(a8JIaD3dl1Af_9UKl<|c~v24q2|=C+o;-Rhl=0HDj8;iB1x*}4jX|P zSA@E7xg&196p&flw)xrmNK{+DcOrPU*%-Zdch2jUv4B~Km5FWHd)M_Hxkc{3ML(lL4dL!?&Ku+Db4fK zxVDdX^-=#oDNwsKxgXfW`VXP{uh(5Y@*y@ zn@%0qx_t9E-Vh^xr57v(5@Oaf9m3fkj|!9)<+BgfX98LXLm$&BL@>#k#5gu@nMzc! z2}69W*|)!bwh&rqeol{GOI*Af|JL7~w=w{QrL8hpDy5&e zOonTsVLH9*+5ifPel1{5IzeDB{OQ-eS~-AFS9EmWE=8B>)74-u@28xMVhkeR9x=!w?b!9DPWi}gmIeE%68T4c?Adv3h^ zG7$7P(2w+({xai(bESt4_s)dxKj|~S4b(KE>W4=5_tp3b@cCptJ~1(!WtAWIwwK&c zFVN&%-923;sIHNu?BUyF33%W`j+;S6cadjyC0d)RWicqs4yq&M= zMr@FdSG^eL2<1uGhFn(TgZ2sOE}~p5VFhz5JeaZcvSN+s70y39fg20Lsb6CBxz3HN z*tjWGh9LQ`9B^xW`K1*C*oCqT-i!_L971_@V!eVLL;G+ zo~ZE1Mg~3yEv>Ovn_*!qcJCQU7VCsLkx; z)?&R7XZtX~y{(X~$rV8Wv#b3=z}ECrtw#KvJJYk80wPAS-aU;Z(>qUTS+~FYPvcGM zawDVh<{QZAns?y4;X9-G-OR_`FShytMrJmbIF|UIfdac+9aHl6J{-Z-_>Z^v>3Nki zddh>1Zt-7j;ohKzIYcmDhstE2jIp{S_I<`B@Pfv}2K2@U?^w6r5qErlVl_ zKYsjB$yQ>NP7>lX08DT^ukmAXMLm!nrd+TnXQTnA(%1Xr&2?$WZ9EG4mW1A+{ncDS z(7S6`kFplfn;%b@r&tjYhI&`#d~M#{fisCpYS(+fLcG035zm&YT@G0B$e(?dMnJM# z1sk?!8?&uu8(u@hXW}mCa(4)Gbi6|D!b*3z`7Z3kw)M z)hq>ap;}G+H(9@{gi79Jo$_55r>Q0Q8vw-8${FvuHvFcF4RGDhc3K~^|A7)nfNsA< zUdhXg2_aioFWsf3oyw+8t1#g(VkVAy)yOuOW1pBW(P28cJ(25|X#H#t0&6q6Wi&T{ zwl`fJ$|XBkA5*sbCQZHvt8{bWei$Ha*JJn7{;$ls}^{-4a!+U7ihWGzkqx}8lU*l+dwySP;Kfl~Oa1!)*dRKA0 z!V*cJDY#vR@8pbwmM#iKc|9+A2OUx$zBwOZb4Fso|Ec%o3xP~uDUEs$cL43lgjjND z6#G=e0h1@SVqe62`h=AHlU|%~v*3w5@l#Nz8hV_~@1q(Un9hdn{JaDsp1xSfu7wci`A7JhY0Or(?Y1gjHg3`{hJgh3( z<$%7-)ba(Oe}9si3>?N6mYLbhhDhZ6`np30MCW1xyJD3QJ@?h-1}d%fx!$N=LutDm zO*!gK#Nrd1+`^}Qzg4prMvJ-g6!rGoC70GA13^46fmOpESD4&=(g7- zV0UOXSrr%>n!ePPfNM!)-~ra!$ql-Y#>XL>x_?+e7LXbdH-OB6;Zfr9YXhf;hN!S@ z*Q-J=Dv%-Ij5}6J#&C#yrxmeKNV3#k<2Dc${llOF1~?AqI~$)l+B3^3Q0C+#vI(aw zcQ9{akZfC^C<-GUYII8!i{@7SlhbSxbd2b9Fi6;sUoM)g2=!s-T!Dyx2BAS)l z1Gtj`6!J-ZzSGP}H4Cs0#vm7PiG#Khb=bh2IUx3a;l27}98v~)>l1NZ8gZ*!JV>+u zT$g`CD9Eq3a+DpKy_@;C4gkvQyU$b1+=h;sz0_Kh6sU%OG&Oc~#PJN2QrJppH%lWG z4k*h$b(Fs?ntoiM3+lTjqW{u^{qhT~D+yLN2cq4fNbE;YMnU+@${$()WE`R&J~!JG z^^44H2S1yG#~6FA?gxM3-RZmT_Vzm4;(9b?-;i3)R&2wl$+ocp; zv;)~r*zPey{wjv!KLA@Zzpz+9eCbcND^>zV0c9ikCu}ZZCAPnNQ6^9ef>coAM;wY= zIGfgEvJl*}^@@3n~Tzo()$t>0J}!HK!eU=D4-^EL@D}z?H>ZvuFXj zIkFpY8&@6uY+m2{>#Mv%JU9=>%58Y$RJLTf#Xxe7TCN3|rQwx@Kil741--hihv_xW zdt=e9ZpF)LMNyXvtFrhhFK)^QLYeNZX$>qAXr;JI(r*AQ!&|1;!<>TRnrt1>3 zM?nGpxJ?ujf0fB9%&R06nI+mfi}uOt0L_JX!e5HHN(Z>rwxQ_Xjm#ZtdHngACVy{i7l$pnLst%iCR&4BaVgZoeXd@Km{ ze9TKOJ==~)twhp{j1xn=&p((^jI_kkPEEA%H^+75yf5Q0iN!7e3O}1jUyQuu8(cSt z@$)8++o#0YdZ35;0(GK3GQJWL&u|-bjDdRnHr6>VQwM+yausCXLsBAADDAgF3s{1O z@EE2me)E2UX6DPKs{)-$j`IAA%Xxh&pn~2!&;1j@@-@a<{zt51oNpEe>J(D^;^b-F zA0xwXTq4>nSWQTYL5Czj`$&*#`p3+ZEQss3@ke~`|DjVw066v70|?URJo1$* z>XNpz;bYBLWhH&Jnj68C4#qN)*_CS7pP(v{M#j@61JtO++IVJyj zPHTEBRM#eBP2cdZ?9@H%co)fZcZ}Kt69?TRWi`{kKI4pmQS$4Bz(fG9W{`u?#p6K= zyTBl?gze{%9iz>2rbV5}A}>P8xxVP>>4CW}|6A?~Qt3SIW!Af^C(WNMZ7@2bcNet_ zys!yxWB7lS#{q#%y0|(qleCYoC7EvjQ-F(1ZJHK|CsADB{Uc1g03PBP;|nx!MiIVjETyex5K{;jC8GX1x~H+QmE8aD_B`(9N3 zex^S_LrJ7gks zmyQZgRaVsAHb%5opXzUAmUcWRy}GiEASt3sHa=xoS@>%3%#v0!^OH@ncr;KUh2 z%eA##9IZ#8qXw%_y9Z45we*ERV#w)4h5Z(XH^e^0ShM~y+=dl0ki5+Dn&lwrsL5{E z=iTOaAyJEz*qD>UYQ6Xv)e)&53X7=M4-vwn8~&FUO&D%DU&fa75N$bMgLW}7f>*J9 zRk^WpuEhe2u!*-Sn&CQnv=uwtHF?f3iWHTi$BPuY7aV6;<366~4Q{)x^n{+;(T@76 z(1<#y_D7igxJeT7kh#B#>{QWX%0&VZ)A6L4BRy}XEc45F8B4t!Nbh%E2~o~tOO#@O zB@%2O;Vh^KRhjY^|Md*&3r;kB-gqPl?GJeAhV+`gC36vDWUbe6CwxiGT63S%ROe`2 z_jF)3oozW&L~Ni9UyP_D(Q{M6vHCvkgAdMcM@&6>m{)#>(XAXa&o|i}%H{_{QsuPr zZC!c^Mnr{AzZ7*^2wm=%NR&rToZaF|5;o2m%}nLNC@s~}1l5EkO8#S3HUb@@3=eEX zee1|BTxdt>>fR7<5BOH_DDWaALM&-6{%BgPnc+6Z3yDvrF#?n9-L+ZTi|2NF5a);7 zi$@l!zPEi8>@10|3X@DK*JRF=z~$n!o`1-dM1ExcZ6n|}O66TmeN$*c?IEu3Ypi;h zU;4PI%5_E9urO@0u&FZYTTfeI=khr0#=RrfW?zw+tyHAvsJyRgj)I5xtrYfD83B}i z#6ynM&QqbvFT-~r6w+#5Mtr(SMgsW>>d>;B*ri8{E676{*5dc=0g5ULwSKN1-FWQF zqecU@<-xCi&O%Ziw>bjM(JtH|)$&6~<_KrcXrdz;k9tlexl}hwE~5 zft*l|y1?XF_JG>nkh8-8+PT<>#TAK8W*m`s#qXbG?3nU5w?)-Y=hFDT)=+QqVH6i- zZjA7L;};}IqI}6UDI#Xv7o)SbpyQYn>uJ|QZN0fQiR&J8BT~rxU!$2Dx3p(snnYK+ zHFj@`NG-9G%yw@DPS|Lc?pMizRa#1bP%wN>fpDuU`tG;ZyMW3asm3sSl)UR?%hG{q zpXuvheoaErZfllVg-VQ$e`mb{qu!;C8IxUG!rJn!_i5~jhsSY#nq$)|8NU>u(LqmQ z_<^VBdkuXZH~R@H`Dur=h}!L}4_4mOQEBnHjV9MfMu@0L~g@hd4eVTp50}q zr|2D-r#u9Rlernci(=7f`%k0G1~$-S*CNYriwY<4!uGeOY=99aLpg&PU0o#hi!CH_ zQB(dUFjwn#q`82l$Mr6rbBhtAeO^xG+6xV|dtX-x>mCxnfvEkyPkLQgcxcA@uz6OY zCSSX;GeZ*Xv$xv4sT}^SnjLkTvUmkmlKYQ9jh>8dzP8lm-YSd>Q#Ntjzw@O}3!`PPGf?=$seA8Z^=9LUaL?IUtGoYloRRK#wEddm9+hVAWhi+z zY^G+jUM!3#l~*-aCuy^CkArZjc*2*TxyLT9EFq4wUrNKGhjOZmdivBw8LM4~`tM+I!7KSzzqU(FW4o zkaPuq#>*(st$}?`;Jbp`9hs@yfP?5-Qkv?IjNSsP2ItMZwJFh0f~bIMt@Z zf$jSwBae&mwd=46>1{KaiaO^h4p{ZTNu{On$maR}36*94l;h021-{|Tpi+$D(bVd} zb$79fNgFnIQCCs-%X#^IWRmN06-GC0+S3Lv?+4p7!u3>gXK&=z{asgAw0n`OyovL< zb5^Ka6e>vt6URo>7%{{1{5Cvrw<6>HskV0P&*q*X2MwUB-C1SHX|9bY&CsH?;q-A; zw9!1O%D5Hgs@3AMT5h+NFd{ozJSB2|zIj~*q-#BgUq%JW1`P(?E8Na;X2LbyMiVYQ z2C>CXT1y+8>eEQg)kC{ey`$v8-IF~9s-&m7FS5IN)U6x2c}jYZ4XwRahvd`4@DtM` znS&3P?BEn+F>f3zUc4DHP3yI^cp;AclB_P-?L3-&a_9Gn*4^EgGXoqn-ZQnTtAd$x2MoOEl9|8b)OO{e#oIA zSAV&6nkAQn-mFiMj%Fp*=sp8Rc5U@ofCshXm|Vb~25)2T7i`w5sEWHd+Hf>RtvH%B z<8{zmrVn(W(iB}>=tHTUzv(#bd_f2BLlXF3NU*7WRCaKn-4j4_LZXWu~3x z4d&-27*$xF8Ngt=><4^q8`Ty%-?#i@E=Q#Fo1TT9jn$jCT68Q{b=A0gpq7q|DnzDE zM{1KTfZbqs3dVPa=%BxBVqvZ>2dML@y3#@N``&OK7a;I2EAzkZhF zd`*|kxF=b-y^UqxWX~u;=m0zTKC*=E-kxs{?z@k6|M8W zwd1Mo)D1&?KY<2g-jciXtR{LzIy zDl;L|6xSKr9u#~TR#031%@th<*C^Axr<&sy!Kx z8|<@?st~c)G*`ylJn=X_$`hC#4PsRh*zZ!PEZolaJGMYYjd@+ui&sN58?ANStFn}ovzf6GJ z^$jeaVXp}}J?lAssI-4J*Hw|2aePdTat;@>4s%%lmEIA9YuuO8F_^N*;+P;dQQF}7 z;5W4o<2_Xm=@^D|jW9pPdcm@f6P0%(mxpI2nI5QHRh$gf*Dl%r`d$f-i&lM$y5I|? z)Jc%epK#J0VrAE`iKEnxT(y7hFjm}Q*P2w23!j*>^&=t@hOhSU=WDxelpQCfdxPj! z1)Cl4pkq!2tbgiIIx(HeSR8--B(Fm89}4NJ|7=wMJpyK}Hn4{d<*;l28xk+tWsg98 zR^MnH389_8siXMyW}^1+*B4#T$$8kSp>3^;nsQAZ!|wE%Nr&pnsi!l-v-9#T&gN_9ikA-^Uqn;{ zlu%x@BS-M7S0bX9siDIZ@6cu7_!a43bV=*U5Ys z+gJMCtu)KB>2lN>MewM3ea0&;Ej24dbtZWbTQ5^5!Yq=-8Z9+y%Qf99crUQDm)e$# z@s`U)t(U*c@_}wi@vLHEa_@}dq8<2qnz{}PSBF#mgNwob4Sz9D)YUKrK*~bb_B8gI zf^AL&Oa`HoH`L3c)u1{C)-yPD6FqCF$Q|<*)$6w^m)`B{h|>st-SG&}tYC__Uu4gk zNED9CveZp^J<#>JJ6VKn6ZVVl#IUWcO;7apH7Af70H3vmXL`}8Bvx&Q)HkUfvXU1l z{WM!rVN_vWosc$hWjBv=9S!x2p^EvuxqFGV?KkXFKc1(-!HL&{8G{OuvcdBr7f+Lw z!$xGiI>=5C7Dh|%MNn$F07?PHNt)z(>$4wHoQ|%~{T7*#1R}?e`ik@mTz>zRVm+^I zK2br;XD+=zq%KZD@zKqS_+WFxgvT=Sden>XRrAA?l$0#pdXH%y)NibQYnZB0j4Rk` z>le4O7|=bex%>xjK+9d4hV~H~wDT%@bz8+@Ew|ZQ-O4gsr}ktpMM4I}Nl-I=fy8%Z z*PWb2fx|ttq$&z5lBX`9wPI!KIvwh+V4?kxOIq>v4CUa~RRcDP91)mLEX7TuqqE#y zNA{9M0`>HS%?)i5aLI`5*CeBoHm15km*&^tL?0C+TsF15?**{xoRSU^FcoHO9z(8E zc*qEZiCt6I5uF|GQqnm zM;*UtZ+EQbl%0J-U+*MZv9^sgclIq5$7*>|`>A5u?tMIFpQ?FfS+^);gzd_BjJYzY zn98GLvutS2HbMrGPa-1xfOs!J9(}OxSKptnpG>xVWfyRRe+KpD=@DgdVIH*T@qtUR zfP1xp|FOe1CNuem6rF3s6m1yXc)fVUS+cH~tw%qab;UI#qyk$#L&#_Ry5)A&_-aFA z`?i1m1N?q(MGG&f57}>tgR@m(wuFI1g{k`<}622vEgLL^A9-V=} z8Dh#bmk&Pok?TGM(se#p601j%`+u}gqa;IJez*G4jngH;Mu@txSS|mzD}q^mS9Uyb zyp$fDR&|M1?cru*Y&PmC7XD8{?7O&8aarE!Yf$Ylje%gRgpIKNVx!2CkDeDiptYcL z24k)*0w~y81!eGng92<3mk zg~def3iL^l0fc0>lRppW2}9=n~b;SN(G=o-&Vx(W9Sz8T$XVp3ks8%>19nh3RWh`x0@U%g=Ul52$kSZnpW0o*pnoJT@cJz` z5Wqxbj_~D1n1U_6m?vajK=LPh=c0CgA&VQLa*X z(4R^y?e*^Dhl=O(_BIL@qlI4J85vY%W}_g4P3>NdR9jw4o*nn^#7Q;lu5rF#m(G<}ZN_bO zkPUJXuG72mr;XYugD*6w$V=GlGe|oUcoJ`#_IIMK1TgZHj&eIrLk^Erw-iLUL5FiX zDZ=fODx!UI$&`Xk?Z|WJrgjeDjj4wmY2)*)!BWYH-Fx?zVGJai@8e#N$i|B+zHmfO zbWWUDP4JrtxbhpsT9T2xmhX0tAc`QG97uRznIhJGnra;QyJfAjr-zL08E~>bes+QWiq z{RWy0#=O?G!M2W$)aGC^Wx!$qPa)N@TEaRCM$-1rd@++b(knj3|8_ZRRWT_nM%37E z(kTst@?+O|r0cjf_qpbavbosHlKDdqO*hFpoU}STvA&u>NiH=oFl2~q62p-lE7LGO ze`lIXmdKo3U%J4!Q`5z4UV|v2L@7(v9g?J~hyICE6zTChJj2e&M2;0OkM|h3AlElE z)B=N2v}xhvUn7y68R;hat^EddCDpeqb3N>M@j}DZ6JB>CLBCHhWhy19wzmAJEdHQ+ zO4$HnKE$tfkrLqi(n~Lxlw?**Wz)c{0qCnRnaT;ta0Y^^{)D zBY7H8I?`lE&*~`4M<#XVOrRWf+-kLy!zMLyY-d|nz}^q(RBAk#GO`rEC75Gb>P{b$ zR3kjMv_YwMT$L;Y?R>G#XUM3f=hiC_5Oyd;ouId$jBaXC%D0|xVvv_{b2>Cex+NwsaK9l(b#p~wenulKgo@=st&Mx(&ULOUY1F_2I&|~aA5=5y zUo;hBjOJqN;K|()+OV>Wx=!r4{pyFp4~{Fqv{C?a<(&Tw1^@R!=Klh-8hky*P!=c7 zEtEed{0D>;q(szt=(aUG26<*F8(HstC;(|rz_%;|R}Ea5wzki~>dgW?Z0ZUtNw>Ns)+Q5=eeI_@tLi+`Dmg*&lfTOl)iXv3>@xcXeq!I?Zx9 zpxj(}d#|IIpM&wgzA=`6dfEHg%iH+0pf=?g+jzN`RV@p!(@=odz7XC1ib-4q(4^(LZszHh=igJb@8BB4 zE$OBAI;`{_$j}n+0m(z@$g;2HM0x1k+#FbzBsop2AK@AR8n8}QlH0Qt4QI*hFoF7= zRz_VsWrN3Ay6sc~4Fs&x>ec<6q^OT)6M|Ns9Y9mh1b*|YBqxg~_p9%s<-|0-OXOtk z!t~)NI^JuXZH|)b}=Q@ z$8d`G(L;rhj(MecPowP9+C{)4WP=8*I(yQQf)MBTGPKN5JzBdzMmHuZ7_O#MAZY`U z+v;F;i{?K$FlvZo^!oUGCZ&LcDi(gR+jZt8eJTc)m9uIpd| zoaGqly2XheZ|f^w?Ss!D*p?e^-|*>zKn{^t?dZJy`;|4g$R42XQ;(0GH0wP?fPNz$ z!Ko_;z$N0JRaUdFN$&aX=AP8xOa3@Vv& zG$#FNcWX~pbLTMh{eE~lc@{Q$zJ z6W6M^d~^>^k;Y?mFH2^`R;5JkUhR=5h0bhDyynX(G%|JEUg^s3)+B0P6;iOS6O=33~3=BrZ3eLcZtY;W%Uo|*Ga$2lVg>hIdR9@z9zF^}%kN0?NFr%?r> z6k?%uGwv@*8o2);2s(6s`=8(YwEfi%)w?#abq$Yt!GvmCQt04RCf-<<4A#?+Jg{4D zFzWsOYX9eLy520s)FyhRwi;U9Cp>yh0gr!XH2U*mpJg_YjSS{%jg-q4Pv~wg)`7#5 z2diw2xVroUs$!hZ4@QC&&IXVdPs%%vpKWz;)!qpm@G2G6& zl>+Uj;3pV%7JrvdSP+ZIJ%Cz7Hh08k0^fkmDIzxNO+F7yAwaw`8BW}yjpR&bX2!Vs z>PBW{HVLdGx8xl>JCm4|13P^l*diOE`Y$HntOJvNTJ}%*K??%zUgr*nF41SjRnj z?YJ>6fiJxM`T4%7VHpyK0Q)@Vqa;1VTP5A(9t=yJk(l@zwXHniq?wK@<2gJ~bfSRC zeN!dC=&E(5eb{a%A|tA8+M09pX^2Tc^DpuR+$Oop;jx>{o64C z`;p;aI8S`iuOBBanxZllH8tt+oI6ev4UlzY%UwTLQZ_=pR_3(RaunxPfB;EaVE5kD zUEQM-MYgJENrS@8RCOI^31IlcOz8mln6`7tT%y zjg1cQCDsQrd+*#X&KHU0g}EAXQceeBJudgx;y z9keDrrdg&87Flje3U{_eEeY!DfsqJJ8Rlv5l+%3Z90z~@#rbKou)Ro~RfblDMat9z zUEg+ii$8A_&`?2^#z2jY(F2CfgPox~x0{g5_dcA1v(vQm!L~Y{=k__e^>w2?)3vVE zuJP0k)XBi+wBdZMfivvh)I{lcj70Fmz9h$K78leR=BK|q_8J|_WXtZ2&%JM;LLuIf z_&;7R+^HxM{_D{`FyGnqDL%34O9m;OG)(f*)>jrBoG83IGXC2?22Ck5`rT=|(VT~Y zH&%ZrO~I9MKEL%Zyn%yL==DEdd1qhLZOfA~$t7m-|Aq5X(65kpc4le^8sw&I4h}!R z3(x*Nn{1WNjDr(P58*pznsiIG2Jib74t|=h5oFh?flg}Tfj8jUgv7)QE-}xkadB|& z!?XKRByfYm!oZZKF1w3^(@yV`e(Q*phlgiq3%P`@4JLFfbj;GNF?Zk2mYVldVU7ZfR_vSb;XE+OQZ$dmkE&p=F0{B zx_W9>ME@^_+-m6e@kFr5keVe#e;6qNvF9~KO;j$i+-ZX!KAjxc#FUIoVSFy7)roo) z`Cx~3MbTTY>G!)Z86>1vN%>Z8^V0*?Hd=CbTix%e6mHS8 zvIYT>US@ZOVOM-#do)`!9BdX4#!oPfYl*})zNRu3-9C;2GeE82!mKR z+pNR8$zXq{8yYB9_~K?C9`DS3%S;z$u$wtQ)H2~RxCaw3CX(2gTmfvvTBG?y*3|k~ z)Q|fdh2UJA)$y|25n-I|mr#>sQM2?96M4(SYZEb_e!on?B@4K9|F`8ua=BuvHoeVp zAzP;(-d<^&c~|T!yS01?Z%LzH1S$BU+qS9K;&E_9MBj=o}25N7&<;eQS#B90uK1xy7WgnleebM*hO~FyCF4LgH(9FdWR_W*L$x*%Q z_!oE2GtA*`hxp2hID-^X?e-V+4bR!i;o}$F?gLd{Ty0P_yFo$|vLFW^$@}sDBL{D( z@X^xOTP|h!$T%%Etxhuq*ZaJC>uQL{2>uMQZ2WfBlaW3B)_{2agVHjKjTOdhkV?l8 zmzlk@+s_)$A)}KYtP?@%GUTYVkt)fHzS|!&T8$8o;jDJCWu0>Unm2Ce#} zj@PxE?b%1veu8Ddc)9(?bxYlfdbD$dYQh6fOOGwp+=u3zko{z%3|EovJECds7d2~r zi4;HU#HKkfY!r(g&xDU2Wc43Fw$N)Fnl(;Em1CC&k`2j%wtgVXm@fhaM%9yIzeYsNl^ETgGwV7&hLW< z5Pa(G_X#`xLP*>BlDW9#IO%E?=D1Vovui?6$mmyme}pMdZ_87=hkXvPaRG;QT6L zF*fJ@KB-znwy@#-MK;b~A|3PUItn8t!XNrd-gBet{$LUx)uBahSewL>8-2Y=)0 zxVhiOFYgMns1Vj}<8oSiHK^259)hqs6?A$I3ZoT~9vd5*V}1ha zsSY)lmR1H>lIt1c_BCqbr$d5MdG(V7_{|6~&(gnXRRjflgppf*>3LVDzpu$SCUZV? ze7)9m7$U9Cu?cq%@w5V<&4UMx*B(L25Rlni(gV8qpXC~T`7sd^t<* zb(&GG;-OT;5>l=J=RMw)IhSA-a!ZbQ;~l=clUfzYZ4|}^Io{?7cQN$9^C&;vq_>;|7 zIqG%0@G%e>P)+2@0DL#?mG`Ycs_U`rf_4FvxyBMp zs=vnEc0Zb&tz?p%pC4`V@A22Yf1gHnO!cjeiy>-_$}-uLIA@Mv>u;FNXPXD`yKpHo zH3Nzn8Y#R+tN#B0!){uEJT4_Ti!=>H4RUF|j5ty5gk*?S_;b(PCs`=Pew2}f`?=M0 zO#di|0@%PuV7r%l1HFcWGy3v>ydqNi)I%NAHJ%wrA8R`kFV}7F7UaCNUDB4K;un4s z7gsQGqpiG03?;*+W|u+C%wIX8RhIMOd_NNN0PpljK84S;W~=-<&NqBG#VrDa7p@&> zjzOlRHvA6A{|gC2l4{0nY&d$qG3bKsrUJcfkvn?RRkp6n!JOj?aJVQb$wKd!n*xfO z<3HIZu6^Ep{J1fqk$HCG2Bo?!b+bcQdfq@XeIUmZo$t-zkc^_CRwc7csI-hUPyULg zpiAQi5t~k#A}! zkEU34*bQY#$q3gZnHZ%|9W8-)uGDg;1><)W?t8XnXFoV%A|ox<)n(1Kl=_v5X8JQ^ zIl=BxB7ur{^AM*U8GzS;cU?f?(AO-8ibQHn2Zpf-u443y7-mwmP~+GL8E0we3K@Y7 zx)Uae+3EPKH(21BkIdUU$WL#0B)X)owB&f)QH5Ge2{j%6_SCr1TmWNW;pn#Itl8h! zW#K)_B zmaw$wK>S5Qw^iktb0V}_igH%#?9i=q^K)2tlBc#&ozUJeG9Jz|og6qz*IVg#6<=I% z@~qOUbYy+G5IkDg`PL!yv^6|3K~@c6)mELz>=JHRV=+FPLKk4T>QW=O*{ppuADask zVe`C6i8!0hV|%fOso)hohNa4F`(GpqPG5hvIlAMSa=X$NV}-&-P_h#B^!zF${}AD% z65Ww9!qOEt;KR)WJCXr)E96~CYZRK|?lkt}Bf@MoXM@?K#^a^!bJ*QQ{Gjg$b3?aZ z(J?$)#S0dw=?u_-{t!o@T*3_cZ~@(N-qF*RnU#~=M-t{?8)aCY^iEMVrOC!bA<($X zN=a?44YQhBe+?!I9mrJYyOtVp2d}Qzm#&LL`&i?KKg!m|BZPo8V^+(HOM09SAd!*v8NRrd z#9kgtopJ*aI0`!AW>6jBP0FKiR|JypAmp?a^BA99R~+)4YiU(<1-$&YyD*9k*ZWb&JxH}kZxQ)zyGr|k>H~KR8QCel=@4CA6`b#8U`kGM>jkfwjLH>7 z*|!57--Y1m%77$N$?p8qI3Ha7+jpf*#@vI!ulqo@$C;`2ZVuO+h)9Q&zNMDcnLJ`g zLhv@e2S@Vd+1`EYpJ73q{j)QVbAG1E$@o9$BK*N`Yv?{+?f7NHMni+8)W(1eEPe!7 z{DGYJ=8~D{?k%#}*-spman>y(=D#oey}(}p+$96Y$!udQILQN_+*8hWYJhrfmznwg zyvVgEd_pP&&X3PKw12hV_F=@q`Hbgda90Vx$Zyrk)cFa1`szKL@0E|aA%B6?$LD{f zeIS`BBpimX^n}-L)gI}fx9U!7mg2TdY`geI6nc_HSXfxvOevDSe7WWVDrx}b?vesZ z8eaSQ7F0Ju%QU7Wm_~^C?H)!SaeD^4BbdKN(_=i4AO(rT|?*H_`c^o@A;i`?ppW$ zch|a$wVnmTGf(X2+28%$pZIQ&b4)tA4CJbjt&|uKdnm3u!VxRP5XglLS#Ki=iAw`H zDl)f(qdJ$;)6;wBds7!q4%ZyfIHSgoSMAWSU7uGl#NMNEx7~42#-3r6TdJY~Dzrxn zpgHLa)59eu3o8{98LiZ=vZZG@IR%fU?3XWJ>`soH`Q49rK?ZHYKnTyV^gw}}5?sw&tPV_; zCiekOC!geTQnhs3@Dm~cjV1Mc2!XHS<*O%LBR>ocn4W!^Af)iLa96R{=`5}*v z5WB@TnMPNAB?jh$j*lSrhr~rMEIF2b){aMuoD2CDTo14tXwbR4qOaoD>6hMUTK* z?cIladSDeehc%8V+gQrwJRnk~hw$BgpqxcZ&FHc7jNf57TCL|iMC2zp;6wGI$ zfA)Gpi$#}r@g+wGONHb8i+nP0i_Ztu{0Q|ji9m`;=Ng9;$A4dMZ~m9RRSspcDyxV%*@=b@RR2aUI9;nZ&v4R)qlDpM1nZ2Ddh^r}&`; zG%yq1H15$vL`352>1k;`xI8FqE5!70J~g=cnc$dAq_p6C#Ml~ z>T&xUwq#;tq^Pe?58G%aJ}dHEIcQW38VEAcD8y>tVp+Q(!TNVF1oeW=tpX(4Nb_SNUakcW;9(EZZ)V_ z4k3&#B9H-L;jQQI&aYU|s035a5qJYYj^z7lUB;P{r3f&MN##paD85;qoK_$a2nIqpfp zX-eyLeE+osoNGkq-Q+}Bxmmx&7=6#g^@?lPuA3^4G2bNBrm;K`sPk3XOb%l1WtbD>1(4?ayIhEvFhdrwT$L!brxiX!JZ$iz6ElJ|ywi z$X>k%7N~rE&+ByhfXS1YwM&``x$E8x4SQ^4;Uk zH$YX+GTkHEfOR|9$tU;}+#s0LZQWCnK`i~qkn{afuwA-ArbBJ-@0~q;PN-8aCRQ4g ze`kVoeEWMp5xZj(KB6+*%3pE|>zc?dP>=o4%oD^DywS#sAi~NgTXVH4zL`^R=TDfi ztO;>?M=D$#jZ&qN`I4Z|!p727n(=ykCAFe|dN#~VJJ7n+pp#&9+bMyCM>d76siFtz zP1ZZR%Uv^ibW>J+lgIYNi`s{2PDtvi)Ya7mId7g`nz>^|K@aDJj?$m47bo{?$8qx! z=>=N%p9mRdt1^^nC^mf+>_TTA?cLSku%_oaUgpqzeGq)haf^8z=E|+YbN&|(hjGtQ zlDka>qi&^0Fsm->2!9JoNhx-2g2?J68w&?dR3gVoKJM3W&~?(DwoX~cIFej9MR>=N z3u9H1poG<6fzF>z%-0#K7-u<-yH!dQm@BN?|peU81j~@8D8W%t~ z3OSq}O^@ir!)@`gP7v3PCU+1^+ zB(%&`?dnJUVin+M4RZE23cH83sLgBc*!W7nxv`iFvv63(ih+W&;|99YltScfYjXk$9}Txzq;KSk3~~X;Vqfd&|J9E z(MJ-hSM{1qaSe+&X}32GceOA+vMP9CdyL|lsB{TX$*GKdd^)Opnh=}m>>MLQ*{y0J z$ksN4k@VPefqpJbG_Ef8HS{hr-&E6SZ6fkSRokKKd){}+Xy=w z(!*gg%sMy8BaN4S+#D!egQ3-!t%L0rl+?0}44v3B3k(uxvB=ta<-ropifow7c&hMn z>f~8v_S9;?E;_08J%gd-PWz#LZzEgjpS}=H-zK~&> zu6xgfL(njWO2}k?CDdxXf7Ukg&G#HSPN#ua6vZw+u8A=!J>sHq1Rm?SUoxn==N?Uc zZ*-K127-ee6l@i&7E;8JQBitFOql%4xWV@MFFMLW$P3crWWHi@$3gRG_r)JL6JfB{ zYmjZE-hKL}&5c%Hhvm0a4`=$XvS~V19A1m{!uS1A=$H^i$&WcLnzoHZ2!)|>xP2*G ztt26FtNI1=DLqC&gQa<;9Z;w)N6tK0#N_JnA-D;!&xg&1C#_dxUXNQ4-;qzdyA=FF z-i4qA8puwhyjW^jmPqlrzWkR=a)bZ@%j1Ma+a+^Ccig_%K@wopiixfOxeYvCLoHaQRAt&y5bF4xiP^CVQ3FH4freuVPo~PrABd z436$vO)vUxR`#8EG19C|=bG$?tbGr~S{$9W%ug%kYZgf2PHDIp1_q1tD_D1nFb~A| z5aj_wlhqXEFIkNeHns6s;j+6&xWm07lfBO-rUx}0N&GIr6+uw z`=l5E5tr@DE5CkX5Bc>#cfVcDqsc}?pMG5L0vlXv#B%42^rPd$_!5tXE99%cMd_wO7dn14QWF`NZmWIl`l1g>e^$Lua77cwEkQDxo>Ew02IE ziN1+Qd(V<~wrHKl4w5F1s`$!#!bTciNey$^tNj2yp_Zm;ET()4u%`=`^~k;U2y+YX z2fe*2vrYIq*<0(}(Kl}qHxiL#fEhy|+<)KF^Pl;WloDpRZD$#C)Px6Y$l>u6OnphV z%+=iEwSALl*CL{Mmln4=kxz^E2$q#WsH!!}IG)!US!qEBExAPa5FFx6WO(a%{loS+ zr=7HZ{C5#yLOdOzTX{QeIc(}FBN>*u%zXO?@+Vp2mN$AP1GbUJDE5=CqB!Da{bv3m* zsUBq<4pI&)vfb-5y-cWeH_|p2cpge@xtlIDRsVglLoWLNFb?=J~Dd@QF9A!E?jp6_&{Z1uva6R38b%H0Gg<&lHEmsVL65 zoA{8%8;wsys;%k$Wp?S<7Dk+OpFsWfe@dPZM(ibq9dhkPmNtz}-@G|JHDDlUppbKz zEPoiwba5o3UYJ@`DjoFUjq~~QEb~zQ1q#gqvdPS+ne8gUN$u-8M~*o;^UI zwMi~#6)X=0o@+lle`p~Ll(R3pnv9`i#k=(o)-m>gOnBY<9yE$!!<)|oa#^}Q=pajI zQ117+jJHo1#$CXpFnv}bXP;=PN#*COvEo1A zMwFC%=}*drx#y|mU3BAxRD4O^o2|)Bw}9z9cis-?*1|1KOd{DXEA+x}2?q8g_sez0 z+}-3mqY8Z%GHxETi6v>SFb~xAQsk(D{pm80MV~ck=tM4J%^cm=Ik@NlPRTX=WQTPH z1u^;-&=nmM1Kccx;OAUlAhCuvk3y3ChTxM@uhpi{a~sZ_Lba{Iv$ie>_W*Pp70@Go z+X>O{-MRf0ItI-tV(3 zdte~+bbhVDu|gwsRE;KPVCd85RoL_DFUOeOjPkbKOx=|S3%Y2_S`mTzo&HWsO|UXz z?grsLlJ)n??jKy$m9#;Y&r2?K6C zw4cb%qrS6tM|%S9net=0?*O`I?-F-mL-+2W-GJx00%s+JprSW{_(0ChGD|tmrFN|s z6>U7D3!_or5jb+Vfg!1htO%f~2^#yv@wqwb%jP~nH-qzaw!h+uZ=MYP(~yCHE{l2l zxa>NV#Z>>mzX3&yzlNaJU=FHA8 zJ^Fq#W%$8eb`m|V&%OiEp7PlG8xROWOg&cJNTJ0KJ4e1>9w8X4l9RUf_z8A)&0P|c zcD1)6@hL^EdSIv-*F9R$TC|)%ETB64GFNpS))B_!8_9Opyx(iSkJ0|>(phgfe;(qA zJKIHXxFBJdPsaTrTI1vwbZ3rrIO$Y&>xWjNS=(Z~(WBoxmi*rF|5V(s@yEpg-U#yX zjPoy%RAXfi&hqdWOi?Qs)Ww}#{qBV?zKdNtNSKl1**{5`d4Ey7VxoJF9tHx(*^T@> zlQH6*76Cv^nzHft123f@E(+`I3iS7XX@Un4x%#i9%KxNUz%<~@v%zIK7X7Da19E|t zzNt7l*>iGgDqAsC!WlzswXYk*F zKxk=!q~b5J#Po#5JqCuKj$pj~=>sGaLPzaS`ScnuoC!Z@UxCCHd|zJlU#Oyg-j&aM zQT!9eCmtrw1M|JBHhy8F=OI3v;PCta=uf*&=5C{qB-}6&?FdBdU#*!tt}*^8>d)=X zAG-)4Bxu)Bw;b6bS{dc(h1FTXOCPTp^%H#qdYS70;P?etpuU{UsA%5cANfl&iMka9 zOvjrY=QjlZpkqGj>*w_Qkt8tRz1vntIkj@UH)R^jQ&{yy7Jq6#ntmlE?Rq69k9D#9 zE!_aMur5dy!_{7hfMJ%cEc(f(f;diJq{FIRMNGx^uW}0v$bj0f{JgZqX#M&rz*Ro_ zgT{~|(*;;BCjfr$v$7JlpxJe#Ni4p6sd!we6vh6Sj6f(hzD6uAN$0pRk`i}7H0NV90i8KQ>D01M@JpVT~pL($9LXkE_CPM z(tab&UiD_wL)JLN4mqQVq0d}vKx+o7^fx2#v6JUI5>Qcg6a~+k!DQQU!gMUkNxr)u z{%%{Ow%70FFn3pj=e=o8ECgxh6FrXhcqE+4)6M#GOrcZN8Q1G(W3oGG=%(goQ0|1f3u=k-(e6J$lWs;rP>8R8|BBW?~97?#yEIOOh!u=HhgTS_*Vt05EC~ z{ZelK{TheNaX~l!78-$Bu0r(Uz?QK#WxA0`|D8MBKDN<)-}ALvo(W6#^|$b~IT8_# zSrkVdWlSQI>Rg#_ zX(%K_Vg@(M;`<{h`Ni>(sdWUc8HUD6QA6rET$b@?qyQ9MZ*jp8*A|w&k(s2lwL4J* zoF02m9*63xm$k!IpiE622q#s?Xb0SE7Y3x}h0YKNBMZo$>9v5Ynz?%(h6nk0?LUk& z{~UQF#Q)uh({WY?PmLYjHMDO+_FG8b9`=`H$vuV_AVnbf+*i&@<~}FFN7k!nHseK_ z3Elvkf#GssM3lj&;7p!s4bGJdx)dKadjBE3!Eq}ptl=9gGi$P$KprYBFOy+l);jMytk5$?GwZ_Ede*=98?JY>2`ZX%;8Zax@yVygMx6sSBgWv|r=ogFrDIBOtNLjd_# zc;5S-oUZn=L0y^b?1Bw;U|nWqpOVqEwtcwjSOmp3=#y@gNh=_>#CFY()MpP6-^-B3DM&l_i(2HYFKqF9US@LlNff6H4H|qK!xB zFjc5%e>?d>3`yoCjHHnF`VcmH?PFNs(sX(Jd(in`hywXnV@fG1{e~)U-DRe=pLgk4 z&(Vg1eXEmM@~v4ukjSsmVe~YJ3NJ%u?f`8a8D|Q0loC~7(}W^l+FK{667As%`&o1+ z`s1IJQGHj_kEt;sP|o$0htnHeG>~KlT2`(`J#A^OSLd%%kP@st{YUIMJN?K0%J6U3 zGIt682-KdN_&_`bx{gu&TK*oS3>_>E zql?2OOrV65XaYXr4=(@woW!mEzL?gV)oK@J=v z6$rzWzD2m=<^HQ6(X;4NkzL5ZW$hvh{>9B%Gj}1QYrR~9guqB#>W~jqhynMxBCMMaEffmJS26F@pyd4kC*4yRKQitlxe5!AIAv%+z&vRot7PN;kMcHftrP;kXNz z{=R8@&11JzqfS_=Le2v_QHJ6PQpWKlJg8*aZGTXhRWfd;rvYwcQ)sh(ah`w}FP!^h z`iH!e;LD>KsSgXi(r<)xMET~Z;7X+y5Avjlg`%cix_9Aoy4jfOvdpNoNeec(Jf@hj zw>Q;1mpXWB;9qowh7=cC0w?fxXBlz_r<`qG+?wKuFKEEljFVwA5Nk(6c^aVUkw5)c z(Y6ap3Ri4;Hlxl_Z68ZjTO8m{K&b}Vs;VkoTsg(JAE27$)LLoweDA`1V=+UkaMxp( zST(p?8NZf@x+t%xI{){@Q>WkWlev0qc7Oe>O13D2u))3$xq=L3Ag%qv6f@RIz3b}hddv?aLBCEJNH1Ny{OjrQxz z_OK4T%YyyJwQfRlC|Ju{{Yx!3*By<)eKa);7)*uSTIMcQnV`P4P~F)+-gkisDL5Hb zc6+XK&-_g@=)6uW#Nd8fr2;woqO)8n}GgwVIyAL zQ1}DQeUU-SO4UqOuy^o;>P;NMuC%_sHchEjoeJk4m-pW^f}d~#YfdB6JO3gPoawFK zvtCqI&}#A$UmC0_Z-G4@2iiaCB$<_oiGer)r;z!DOqhkLQyir^z?(MGqx{OXHU>`6 z9@X_jwWsyFh}>N!E_3lxx0+o+4=fE_FGm;uaL6FI7nBo!CK*i4Rc~nIpA@qG!q_;4 z`m{870~%B~HtEul~ka z6C?Ks8R2a0FeEC_7nusPn6*Icr=K8+se}~TQoc#<@AZyJ#c;HekRmGW8!t?(DY(Jv zgFdo%|5~xOaymgM#F1d{ok}DEp^1Nhe8T;af+pO+lhN`nu3(z3JkaudN)-j5cE?(< zYsg|mAws>}aSe;wSyXBbqA~-1nMoAHIEC_bEBa>pb|4SB;i`(BpwbmJ;4|B`(^HAu z7`Mhey1@i<*;;qLOcNk^?H4eA&FG$q_jsXt&YxU(yC&{mU3?wBwG?r|zCi{D%PK5f zl`&f;hJ>?S0hBQ0&cAL0SzglP7)arL>}U4t>kwLPI@V)O4|kdBx4)QnxAt*|fzCX! zkyj|ai}POCoLQYoAtIHc>Ia~bbCl^sz3=LR+aWU0nLRG@3ia7sz4i#i=?FS+yq>kc8hzn|D_dr^}4UIu@@dav)3C!fbU9%He=!a*6%xY#=#m`90la>8B= zwRE-TgSIc%&q3PxKc;&I_tcFKA_&kIQSqSb@6DsbyFiMd{GV(dlt!`h17*RDUHK{qVX*&rd2-P)Z zt(2PfdSrKrx}O;Jx^hmf7#Z$S6ZW3Xi+-g(@K`vDC=YKKPCy`yH-CT8V)%)t!`g|D z``)h!6z<*XervFY!ABFVSnhnkoks<)M|M4Z7B?AzX8Y`n5D^XUBFs98u9OtquPGaG zd;5E6;TUdT+YqSx?lXT+85;}ubIK7hl6s@mgnaR@TP|F0Z<9(T=P>u5oa@Wezz@XE zxESd21Fc8t_k+dK_JVP<6zZBsA+(nvXRkJ~^OXVZ9HWjA|0e==rUYGy%-=~j}XGEptu?Gkq{k395`No>xTaGHV{x1ek2c+fK|tAQXI`p z_ZtcLUc}1GoD3|D=9sL|Gn)os5t!(zs;m15w1R`(rRQeV0M)aZg@xe>z#Bps0!qdJ z*rOj%YAonhAD~=;oPcS6fUob(IvL8Kiy*@Rf4=EOUVH}7%phY1fDJ)B03cyg_@tlH z^MkJ-!bkqkOc zMn>s9oiW?lMMWaFgd6NwR7zV=Skbn&*DUPp{yWRQNR?db9nGkU3Ud`lX&C`v07&9a zbbQdadVRI*I%Gzr>Uzh$BsYmRa`MUjzghE>U`vVIQxm)g_x)Lb8LTBT8-QbJGpreJRfrgC8Vs2++ zCPe>JS|1-ZcXnt%M`omKY?#0F-6YY~D!-9DUL%a8ao?-hKqR}KY)nnu{xuw#A(xAU z1uVrr+=?~HcnG9mH>o54ga}^!{O=IKVcHIJ!lK4KMmH9M%uPMaUCDYI^qg&|l$1<% zGOf3bEr(xTp?vQ02nb54;H8esRLI;jXsw;y{!@Zpy8On)py`q|!ApuN``pU;x#up` zyiEJ@qVH?uc9cB0&f`FRZ|1rS?5mG)B)WWjW}F5R7K%sOv0S++y*1iaoidpgqh6#M z@B~$jvdcu9pfMPbO*U;QVi;Qfk)^k9q>b;{`v#_KPN953Er`AK4D9Q_ZZ`ehf2+}-ES$^# zQi>&@OmtJ_XO-b^)!s*oHN1;xm-d-+%c8pX)&VTyU#tsLcj29-R!&-az> zU^y6COjo}gs0UU-30!wpE z^fX?)5ZTz+03ye`Min5wiZbOjeI_9#oh0A^LdzT=cl#scH_ZD`pMB-Uy~bi^-0WHA z3s6p6Ea-!T*No^{4fOTJ*ND6g&Owqn!+rk>`ttHYg9tEoykI8QYpZMT?36tNvmhx- z_Zo@3;b%L4vRB_+V>(pva*CV!iiZ|#K-?i8fEf;A4jST3@{`m>t z?i>>3`(BAX#=uj)GXRM<#qDicJCM?wVu`zU?cxQ^3r`EKF%L&)~bT*zv-cdZt=(Id`z1nTb~uEf6iwg`#5;G zWUZ&fv|z%Ay?EMND>h-#O}-si<5P=d3A9ND~YnaL;aEsGmsTv+k(n*>iGe32NuFE@#w zQ6Z^W_#?;bj*IO1m|6zL{mq0TXGgoS&qFW7(Ux(UE zayl@rv}Rb9i>7P(Urf5#;o+A~?GqTyycmKshzZO5Fg}duzm1hqQ6BjDb~Ds^(1L&r zfk&pd5?NQNo+s%d1v8L67um8bfnWg>dr{{UYJ^^KV};$o^Gv8Q0e9B)4?L8iNwl%Ul9wYbScm#Fl4y5k<6= zSbwK5wbFPy(9?E1j-K2o&`J0ed2v}wrNyJi zv({U7F$rP81}vFxpS#`i4yF|Iza{tuU;K^F9ed-gszLh5hKaJ&lq!n=nOIiwEL8(k zK#YOU-1FR-hn!KiU!J(+9yN5>goQokz9@Z%Qk{Y-cxbQg5r&6jmh0jtMqW2={5hrm zP#3AYjv{aHZr%~qNvZdl%M$YoPH!<6t7|(FHCxcQ0>62VCJAaZ>DJeSxi74fsL)UQ zY9VT8h6{9fkQ<`E-X%Dw2mn64ZPM2L`Vwwa^!i_(Wp$P|;C_YKu2-Q{U|xlL(*a zN&Pb17(MucS>}QH3w7;>Ypx@Q`q%G$;1`D}y1jYl_7k=7jD(M;q4UCd#k&WAx) zVQzSv^<;M*X<+D{c`!dM;HD9SO7;kIE#4&3+Ld#&f~iROL~`(Z{~V>l$?c~7Ed`YB>r^;86~467Iz4=&N49eA zgYhThd%F@;pOv}|qzvN)Un*MrGBf8>^Na>Ki;2CAs~t3J=uaebJk3oePz(;gBcmfk zEse*|D>!K_CQjjWputs!zqcQ7Db9gfB#U$YTt{lUp4wy7Js)E)V{c<0V_#$Gcr#S3 z?+)LJz4f5$`9DI^6Vz=3=}F6Qef_rE1_3N2t)CyGZXc3)oEw+9xo+KqmkkDZh}1KA K@dD9T@BbGWQjp&O literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_SyncedAfterImportLibC.png b/GhidraDocs/GhidraClass/Debugger/images/Breakpoints_SyncedAfterImportLibC.png new file mode 100644 index 0000000000000000000000000000000000000000..55a28d5920312896db3ff784c14a2e8dc2253e13 GIT binary patch literal 211701 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Emulation_LazyStaleListing.png b/GhidraDocs/GhidraClass/Debugger/images/Emulation_LazyStaleListing.png new file mode 100644 index 0000000000000000000000000000000000000000..3beb8399fb674c939428c47eda4a9a3f757bb76c GIT binary patch literal 33984 zcmd432|Sd2+c&OM+9WMxuOwnn*2bD7MV7LYku>(DFc{0I6qOjF(b$(5`_5z=N{GQ^ z9gL+cV>k9O*7qD;+kHRxb3O0-Joo$l|1*913^V4O`TdUL_%6qBp09Pa)tL`-9%f)* zV7`6p#ytiGMmz(<9*=_ufZv$N9TsI^c*=15hKjxyWM<%y*Xb^r^5a)d0n!EO$G;9d zymaLV=l=T-AC|x@SY^+az4>vVJJmGg-l5}{LE#r(-4;u{VRGT@-t)&zo}WAS`o`Wp zsl}znBF;bVW%XF>^icf=Bbs4zXtZQRSQx%)XhR`EP;#jiEnik9ST@w$jMjd^#Ow9r z*+2ZZkC!?~Wq{pdAO6SR|9GbUQOWvL%i&}A-rio|v(s;^Ei#~Ltb^?C55;@^Yn)l8 zmKd&Wv;~f}x8J*Zr)s%fQw)NFAWUqWBg(YMrp-rW@)|3j(ms>TS`w;j2A^L%!dCf^ z^8P_yW#RYU>#FGD@3(uC&q6cRf_X#_dzCak^a*Acw_D7tGP3X!?KvT@nJN%Sj0HtN zBtZtEEQOtp=$|k%Jc`TER@8rs*(fj1c=F-<;$ddNte9-a#Xv)Ngn^c!X(fjvEW%)q zLv~X@j+li5rRCz7OKuUiJ|E((XXB(6CY=f6a?CNv@yEB7KW(~rdbQig(XsF|q%Kf6 z3#;GNen2(VUM~!Ll#5w9R5(k&q*TU`YpOU?rfN2`+`1^(+fFYh!V{rS{8;}`Gann% zc|d9(i91{DL6(7EK6V=0>w{?|dveY?U2$Yd_iWGS|0bWAL+R@~F+Yeb?RDrWExMgD z*j=wI+dJn-S~dUdk-mLinsd-#OZuBft&cT@)K}0kFPr1Jv+1cm6{KRzSI;z4`juq` z&XBlu78G>J;i};|kl9%f|L&c%@6iirOyb-8xB1+A*+39WlWx}7)!MbEIbtrNBS~Vi zS7+5f9ehs_*IylZ?0yyJaS(6W#2IRE5YKiH|LZQZhr_b>q7XkQNXr;vbXN-+9M$$k zO;fZxdq@bIitutggb+V<>XdQwhby&(&YC6TOfD<1_9uNv-J^IS#AjCJF4j{BPTQWT zRLFbly)vbC=+L1(HnC3*h+5orHX#Og |>r_M-6&o`ekHM`rDO!Y96=eCf4F?Jcs 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 aI`=b%Cz5AVoh=;tNc-HSAMj^?yz@Up{o~gF literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Emulation_ListingAfterResume.png b/GhidraDocs/GhidraClass/Debugger/images/Emulation_ListingAfterResume.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4952511de090ba788513b870678f54386d97e3 GIT binary patch literal 42533 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Emulation_PcodeStepper.png b/GhidraDocs/GhidraClass/Debugger/images/Emulation_PcodeStepper.png new file mode 100644 index 0000000000000000000000000000000000000000..19fe541ca8cfd500ab2b534198c6c4674df5b7d6 GIT binary patch literal 30344 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Emulation_WatchesForCmdline.png b/GhidraDocs/GhidraClass/Debugger/images/Emulation_WatchesForCmdline.png new file mode 100644 index 0000000000000000000000000000000000000000..51db1ca272495153032b125468d64480c3c2c8c8 GIT binary patch literal 19821 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

$8Hp5*TGM1g^Icgf8^u(wTS0 z=rStD)lxN!s&U^|_*TGi{za6+06(%;D47h3So(3?cjWS3A2Np=GqPZ%_lG7GAf|Y5 z_u^uoaIs(ocK^}*(*z>-@hM=lfL>F_K9^_V!rl0s&9w$yuZ&k{^2?0>b&+iIYlyNS z+&9%t<=epXG9_VpByyO@=k?@5Cr?kWRUL1>KU@?{7u@$sxbv@_IO7@OQEkhfde@;< zZdxmj*bV|()1N|=Z^yYJ-Lh{X9DK1Fw!rw@Lyx;(b@J6MCN}OGVssZ>YiH7L7G>wy zwUtr?D^I?>z19EW-w%;vS6IJZS2kvyj{-V)Y#tL%K~TV5O_e{#fWuIJC9oc@6TQ<@ zJn??Ts$m2g2rdUSboPEfFz)UKZ`oSadao-5#)b=cJp5tL>*Fo!i%WY3D*hk=zhMxGT>OtxX~7gC z=Kyi&Gi@_+1l>`cQ)_HXzsQBY`^ZGviftq_B>&-e{d^h|mRq!$T~~KQBk%CNtvaST z7FQ+uGyjw`|I^0<(A02Oubf_l(|hgyH=zRjip7*qX3u(5sgYzzSN6spKNmV@k<(RRAREqGLyV|L+@&4rl$L?sdKKS!cqgCxs*dQ8sMCwq5^?4NEZ;xc zmsUVfIT);fO1Vtyw{+PQsF(v4*-QS!Z0)fv5E|_>%RzrE-1pKSM!oYcdnxflXa(@xsV%*cJh&N{=iS({LfV*PT8}& z3%&OmR}Z@BQ9wC(i5Ijor-4&CvM=Y(aMNyUUs!H)i;Y zzKR)fAMVon?hgWU``vW`ouOFdbFu4)AIYj(H(B^_RW&)A3WfNA%ttt_6rt_V{J&OU zfRnz}!4wf=KUt?4UUJb_U-v940b|abL3A3oP0pQrH`M`}mzs31D%TQK7be8f_~V1B zq8l{45LDaau`F7}8o)rQZuCrC->f(V*9?5ES^#|Ib6Rd$xDvBgGEY!6mx<5f&6GNg za2&Qt=vkxuqi{R3Q{#y|M26%O;$)T$c+9BU|I>YeCrku@DJ+3wzE+!inQ}J1|?9tl-D+SK8c$r5D z5xMs7@e=yj&-qMH>e9H$2zjjDFl}Q6y4!8;&?ry0kt&V1pAM~D;vRkjS zS?cb5fus)bZmkB}1zsmZx^A5%TeBZamhr`8SyP)Pk9Z@|k>ovqPAy=#8r?L&O z{!^mvJ8Q_C8(HW5m@{Z$G?I2&NcK=uJtNt`<=`CuG~kN8P3=u@)uKQk5LwoWQB;j_ z)fpM)FHvn={RCKv;qy`H@2^muyUP@|LAj_J%vs7*@ydNXX2VM|0Im?wv-(cgoUQyD zDSOgzG@sZ?+jNK5$N;43yNzNCq9L-sDU=T9z~TcDe17)dn0D=lXgX0Qi9A4}M75Gr zQ41G6yJ@{|8+C_UX*lIJ$LONWn1ER1du&+vq`AMg~iq?e2X$nlfO=zLSpM zrL!yvkkOF5N(+MH8w08cT;(`rda#fMChA!)*B|a36yHFNd{Sa(ZR+Mm8swb! zV|~_G`iqU1MpY-57RwXrUTau$t9!JNWJ=$_RWbXvJvB~pTqzvYqi3Iqj`N2!^)2X5 zo;e`@)XW4tQ@4Bvi1jpbmyZ-^bM@4}Je$!)v4H-n55CW)d6UZ^Z)A4<`JMyOMmpo?V$Uw0L~LlDz-MtABc?Ocu4gU z8RQt|FUD=}lkyJ->Pn%$Z?pW#P^?}8zsYeSBcy5H7C!%nyLjh5I;|3Wn^XL?M#lyP zfZ!h=Pyr3t{slebkHsiPKWm6bPM?+L*{FZzcU>tQkK>jrYOH#;{zOL7=Itjg=y4_C zA?ZHJOvJC(EeZd`!-$gzAlgmry`ZWSA$bH~o*B}j^L^+2u4}IA^`7@V&+=b>|ND2}_wV-r)=LSX zN>W|CR>^*f$Xaflmvfst4>j%E9fEh*TR14EB?41D?`KYJ4_>CvSkWQF!NoKv1$44; z&UZCo#2?Ws$wt}X=Ynml2!HC zThD-Gve%|UZM0kq!axOgoJhg(BK7_p=4w_MS=(Hmo7@vrticCeo7yMf6v7+!oc)wf zunZJ`zm;kpvu?Mg)W@Ayz7do%T6-Yik=JvL##hLl1qf|DkHN`-X5`LIkt$#1Pr!%* zs2Qo4Cyyn$KS9sDcXy7uT|Nw`+9!jJI?|01!Df+i+`Py(J?7{?4*E9H_CBv6@71;S z3Iha~2VgC`1dz>Ox>LtCi{-2H@>f) zYfFpW5;FKRb-brCc}bl*iF@+^_Z@xh+lE{a1ct)bUxm!9-jJEqRx;*EY8kFr{a{MJ zY3>p?zfC%Zhut(9`F?eI@Y~i($OIwD#lx=WAf?tcaY|KkH>YWqy?7I73D{TnzM3R0 zUJa+ShjvpTA^leOiU0d8PQH~-I`z9MY{x%i2P|+#nMKHhwG-)^4WR%J3?l8@0@&A8 z+6uBs>+tK>+tx!_YA*Oc{M+Y- zqk-05E}qc4AApIq!Q`k@X2Y2csT>-8y~pe9w!jO>?SQUC3{U6_vvnrOFH^g(p7-<9 z4k*%z_txW%pSZ%V)&$LKeAa}uaY#Vi;MhY!+R7pMbPJGJ zQZo#$vukQf#rByz-_2=N9W4<3w6Tr{BBjOW3QSlzuFHenx5H0f_1(RXvg?-T? z|7W-E6W!q~#5vS-LxB9!E-b?&Ndq5r9Pq?@qyXs@`=+Zbup6`k-4vF;z1o_b^&I9| z60%DY|Iwp+=Ad(L_+H$a;oCK^-)h9T!TP9Q>^YfB~7^6~F@uEegq zUMC97RL@H~1Gh`AM{U0{_&nQ(sn1n!ki}#}DCK+h<&4OhY|%_d)Ki&+7(&Edg~?b1 zM}n4R)^Iv%!xXt|D4YG0RtME8unzw6T?1F%tMbQal;;U^VL6Q8>H4lE{P+vTuY8yL z-^ew4?Ji;r4BAjr^BS6(q*}ZR{f0%$-!F>XVBEAWlVdEt3YiPYvO^n^FN^s9UMw*5 zLNy#b##fml>_CDUb)Rhkk+?X+#(+K4z6oUrjeOr_z0JP()vwQ_gClivEvDQ0d9v-i+Vt(R15uM*cyk?*{qsDDd;d$upey~|&; zT%k9LV-IX}@|rV<_-NAjj}P+l0)3O78YvqkX_MC-9xqVn<8{uUr#|o&W6gq!Mad?< z;9t4-J+aSkloh#?a8S6}(RX+^b5d?B*N-gIZni%mL8|b&jvV=yBk1<|k(aHB z5%rR>=MFp%eW5hZ(R;{z4Ps^%Z>Y?}6E7&6UE74k>F8Z6{6+A>T!JZCwhbqGsvh#q zT?14}^lQO`m$aYsn|r_!@w<-Vov)_&?Ei}AyLn^S$b#(n{`Y<;;!XC=3?#dRkRMqw zS4Q6inFhm#BcA8`dUs#cWpCHZVF$d3amMiriwrF{ z!$BRBpqfjnue~Hyg{U_evUff?F5sdykX(YS4FjVO!+)2xvD`{a6q%YjixK;Wx4>La zi_y0Dn?p$GKXuPuoV-|fGa(+>01go&-;XDMZ@_Ki*}eb7@0>K+k6&|_ z&;iF3+(39px2oP85;++!L?12o&iP4X0)6p+u^z7LSrq+c{M7Q9sx;$$lf}RWISaDb zk#E1l61V?kbU;wa{qoGOsfr^xA{duTzx*%a(af%%4Y>GhwD_FVhu`@&Q7&`Y#}%mw zTYs%xKsnzjma<31fF8(PYj(kz==ZnR$G6*1zwg89j;$d-aSUDiwKf4A%}eQx8kTz! zR6Gh*)A#7+`tr-rz#lZe9p`Wb-XA*h(fHw3)H&CugT( z#w+DIGe5YKmpJu*coWTc+&p}s=K|UKMd%4*72^ugJ@$*5@4prXpu=h@CfMFfJYV8- zd)?g23aMmkQ&tx9kLy0JKvs_B|}rb+o;rFN`A_- z%tn*W6S(Xp+tK%faG(5j>HYVFKi)363l@N^!8+MmgIeA14P>*i0!gsgLHqUpl^8C}o8RYb42YhvG^E?J zEx2mDTKo=ob5bLX%-Bx(0 z>t!>_!@Qcd1q55*zxBV`z*$JivspP#|U&9wn}9M7rdvnf2>&x ztl1l~0)H>rdiJIHZw{V8h=)#}d4;|sm$KMsHMCasHtQePG01r?gJU@puW7Jx^|-|S z>W_~0NZM}3Ej^q3TQ1#efZp^H^U8JSI`W#M|5x#Sof<>%;m-HPd=5G1Juq-W7v^;J zZoIc8kb~yT4iI92DCOKSt1W?!V56>S7YRF&y?Z(<8n}>c0Tf0rrOwvjtBUy!aM)u^7~~2AUd9D+}5jMSkm7befBbJJ}X=5|@=H!2MRIM%NcKIrSf~z`T5jpTKvx%JSt= z?m6jXv^U!wdLydyriq{XVpq;@wuX`K^Y+;rS{g_Gskh3{@lct3v{=R3vi7xQ)`OW% z=g9N?Mnn*ms8iEj9VMqYnt6NT1i*qn?_*91Zypmb?BT5APa{sqm zhDn4ywTRlKd8O*DMHK(teMHSWyT&gdbT^;aPTi$>$KxfBDBJEpr#rjeDxJlJ-MmvK zuX*P}beuRbV2{%FVWpQwh;yD4@x3P_o0~-I6Ed(0s`$4HW>t*Ke%NH$_~DA3tp&Je zu{;``JEVAHth=0MlEhLDIlV2D7o;ynRPe{}C@o^dvpZUU)s$hJ^O8}~&6c6N9{|_m z8CO%;7;)Y{hQ}`bSSwG-B+sXbBIED>wXlv7Cz8+Gn{Urbq6zD~$1U z4*;zI96W~7NabvxGE3)=(u1L(7vsA#vRq}Ed!7b3sqP_O5K3#W#D~@n=2znM3Wx1w zGaL@TOQ^={I;JMzkD*1JKJ#5V`LG1Jyo+R@ZAt$FxFPr-epZ?-GK{aQ# zoC-G|nim57%i*~dAYi;|j;#>mE3A~K~mkn4HE_k0Lbx9yTw^r8hCI23uz z3@D9h4#rWBla6h2rn}l|ugw%k2Pe6lZB8Ht%Iu_oaZwi=Q5PfDKk%NdK)HI;et~x3 zQw#o3|MvW5BUHPxbyr-xRE;>YD1=~_mEJ#orM4F@5$HwGz;97H8R;fJO!@=C?dn+c z@vQn3Z99lvW!u+hitAWI^Mlx@^G5V}WRiT<-(}onvJkDma@&V6SyfVKuxp+ay5nRR4KISC8_EzJ?^Y|SlwYM;}$94F7g%-f0*2d5O z&33HpjVOAffW~1#TOM-H=Ad<8^wz=a?;MCEaL`DL7mDFAB1#h#sqCE0#ZwSBD$MCS z+DDCca#Tzn<(0#pOPHGvHw{kYkt40K+)#E3e?3FI=hIE!nDJXF*-u{Ia(8T$%d#*8 zQ=9PK=`l6Nr&HGLUC=s2!=>NQ0lCZbU<=JdG>Go>3P`xEKrPNSRVqHou^l-HMc=(d zr&Nh(o}iFwL5~a5kNgvp@WX9NG8|e;XU)?eI(ZlNk5`uP>kvjU8yWS6!zKG@e`!r4 zCb^3)Kdoji6vLw2=A$d``a)(WK_*tdY80EwFrEnUR>D626~t0_VD7hOJ6j&r&g4Cg zw{TeAXOYl8vl8K?dL6|y^e6N@^suHZE=*@5Su1ARfhykMzFtO9s(<>ty`j?GZ9?6p z+eGn^!#H1b>>HwgM*n#2;P}``e!SAeNxoE`EtlK97f0@m@r%&i17#51_&`a{FV7GW zEvmewzweXMkJI#`PPfP5|O%JI$b#l z0W5NBjM)2t)PceX0Yfd5${I8(?sVEx@aQA84;t4u!N-Q~Ay%hD$Tos>4Ku;PkRtM>!TZ4D~WQv2e!y+-9h@%$A&r7>>;uHAFg z$o9k8eoI+6_?C;F#xmW@$K_e*!vT$Jm-^nsOa z7i7W^<~?s|TH(0C*0p8diJ9=$GJ?)ynWHrD5vDfGiLF0w+oCf6QI{Nf8KZNG%kuV- zeg3I~F$-V^hkfx==hShhVB?i$FDRbA1l~*aN>$ngvnF*hS6tN1tgnLLXQ2ebg7kH- zpomhJ6`RwjdKwWN5|Wp}TefR&k;5Nz8ee0g9r`kzgQ?kdT130F(rQ}kHkp(N)unrl ziNiIJ^v(;2<~-!xcvhoa4%Fq8M3Jx-IK=q-%Q6WNm)p{SBzcuEyc2r?!X^wUqM; zZt8iT6HFk5=dLZ=EFe-_de>1Z>*P1W*nbrydP55XXsvWzef!$dA|yCHAW)_q9>@5N zxg9@6i}g()TBvb^l;}Yb5&}lei^XOg?q!>*RZ!*6v$McSsNEjYL+TH|B&4UFrpaMh z)aToI0C$_i6771N&oW2Q5?*KLp^PA1J1F9qs@T+QePTHGmSHwlmSDM&)WaTJeVUWH zlcxL(cT$GdO`Cb`j&Z{9fTK$)mxtuG9~>4@e@6nmGjWH?Rk1-jW1NAUHp741mM)=l z%MBNc-KSGO6G`pT-WLUqPF9G3A-u>AX@qBOcks!fnYVhafB40h8Pkt2w~Waq4SA#y zYg6kN-G6Qm<7zHTwfZvLVF+DKTz#rtGhtrmG2C#X&MltO>$H1(C_Qm8b$6p(PQA57 z--EGDmYt<93M{DOr1i|mBO1(%~s}@xKTWcK-30-S! zy+jZZAS6o=d1Ksn#E230@S`|Rml?CWj2`p58z} zlFWmq7awq&!`85s-|*AuF5U5OJCsB>VKJBCalUwLnw4Huf|J|%beX&er<(|8w;}UH z4tNq65}sEYH8X?sN@=M|7%kVNppnR-X^)KAzkVK;@pbZEkU)vY%b{lW!S~%su;^UI zJ4~b|b8af=WIbqeLm+1)jI@N_W|V`hgBbvW-7zUop$P48D;9Ij7s9Y$itA>iX(L4 zV^magc4a6d4J3CEQvmiikN%esV+nCACtW2|bIg1i+V^YdrEf2)w&ys`Ttnlr!7{PB zU!ShW(Z{_#K{m3^p9Q%a>?s30x)b1zSIdFQ&Q4 zM-0m3xu`Sl&U<4WDDt_uC+T{T@?Cz1Swrz9m$H0X5AoO;G7sr9s_jKiS9tZU2r^Ek z-?^zck*0bU&XrtonY`123Cp|1p5A;wL%qI56dlmRqujIl%^NrYg`)%>9MO15>7E=D z*MYU^gPSN5gPs5^UZvH?><~0&)e!2*qD7gbhziJBxui~JBjtv+-Z?=U7k%nsxP7# zbJ)dhQ>B9SfpUW-`r=u_=kx^(AYys8_>Z1{2<{&YB~RTwc*hPfU2AAF1~U?suat4* zJ6U^d1JbfsEBlK@*(y9&CVxrqT9?1;!nko)?+kJ({xTUIKR@3)>^2;?)|)YiewC`$ z`Am10p!dj$W6dF4L>|%U+NEcms>gb9O1>-BpTO&aQ$BL~;EOsYTaj z2F_X(`e+61@rf3v>_20;k(|#z*kY9|-5j>bqvWgaY39@l;s zs5l>FxXdcZi1a>^tSyal+9qC2u~k`eIz3D}X_ z=~I{d3?dtniWjaaw%ZnL*P7=~mFyhOCQA$<&SBE-Zs6|PX8T0@;FZm-U_=v*bv{qq znKvaNr_w4pngu*AVmz`8zxl#XlTRopTn`5*T{(%QQQ59c&AH+=gg|w>&iBa0V?KzW z$u%8sJmTg%x1dL+ws`G7_0HH-0ED7|2F@ie6{f$yZj2UF1j9|ETWW2c=1%C!di>l! z(&8EV8yO4;z3N@%Gnq}T1YaYfQ?=X(hZ_@)JLDzZB`}`Z2Y9;s^ai>AG5E8PSU06N zgm7>pc|b%*dp2@h*7DFwdO;dIOtLt!_s~(N;}jvij(=Wi%2fAQg%mF#Kpi~p$jHv! z5uDuh9($Bh;8h8c z)ci3{r6LgquW=(>AUvW+z*i9pL%OtyzgT3IW+!Q_1#p3YWs}c zxM6Z9C34Qw5SQ7q6OHS<#^gQWzAc9+L zq})`^eHT*RFB7NRb-y4^LwASzSTe384Uv29L$^CB8XnAu#41irgFt@UJ8Rvr)O!g@r~QSFqip)LZxxF>x5M%#*2%xq;46WX&rX_qaUJGzalktHs? zSw<}hM2I@dP}5f1v6-$`kE{M&6OScgoQ7n2AM~gi7KT&}HHlN2DR_(KbH$aNgNELE z8=JsDT*U8ymo5z48&#$vA>iInCg1UvxbYZmR1;+{e?hhVc<~u8Gc9#6<1koZIwecoE?wjmo(dA5?{s{5&2vb{D6M{L`6-H*@K8;|kB*#DD}hRY8j9 zYmh1%D7>k6?jkOimaB(NLr> z=+!Ne*t%1A;4t%DR>8tOD{gb-x#P@q&;2<@Yq1>hn|A@>qPish81p{fgQmlVwS*Z} zjH~lgMx5{fOK))ot8K-;hqJ*8@@Mkm17)HHBM>sko7mQkw%C$lIa2*-(?TI)1we<1 zA032liZ-CNfx@EjkHp^!VJ0|%MKVS^xbn2pVbj*e zb*)>L!Emw|@z{Z*Y2Ba;vV;ow8ljwFf*O19=;LmAb%~P3nJ#5MV*S1v zo3iPK`*@{+)VY1T_i)dRxS67>(@te#H;@~>{#;Hb%puOc|GL0V4kLnUwm1`z?_~Jp ziCI@8^F@r<8S-2eJn0h?U=;ejbtsZ&Ba-eH?zH8wJYsGCi5C+YEh1O_H2rEzmb0No zxdExjQnTh!CN1Dtm#zGICk@=J*yC5xmPxks?OD$mzvY+j{pp7v{`f&t^~k9ue8o&j ztQZ2tGiB1UM%CA$_~OY$^-^u8Q&8n~df9dCMA8LzLNg)8E})N;WK2vLJ&`&pJKQkQ ze#hlOKnq{2tR|iwUOJ%$Ej?#cyT%@Yt-04#u{DF z^`{t-VJf1J%O_(!gX5nLmnhh6T;^w33?ctC8))=xk$buGbRnZ8p6T|5LJ1ELtViovm4z5BJSnl5%4KW#1YcW&fdxt5?z zN`7P!YE>-WtkS2J-7nA>X?zMt5+3M!h%Mk7^$Y3jvb_@AM;h660C(}3N4AQ3WgZTF z^NCG5wZVui(Z?$z`-znc&1v7N=7htN?!+Fk>*6B${e)R$42$kV=oXDXl>O5JR}QV8 z%t5ysQ#Y5^Kg2dF>4yVlVN{OvvzgG$Uu@;YTVlzdgl9u`m+ZFM=pPQBdN!vjq+51? zh<$O664b%QXX#*`kagr;W{YU_A-|(4H$NK_qvtdm5)VCix7y9BGKt2q5}_km{Z;b{rKT9#eL*2ue+U_b6@W(i#;F zD!us!Vg7=+H^Yuj?61+#%LG&Ao)CMaw~H&$k1RmDm*l=zCAuoaf=_Rd4PH&j=EWQt zLd%29Qm95l0MD5n`Lldc>XN`|Ki<4e^r`zD@JYAUC%H2-l1QIHl%_8G0$AyNiSAD% zkb(ib16*_{Hs(Hq9h6^VWWDF=43Kj*QvvE0q`(bKa*fMOaFlCL<$uhmx6X`E`Nw_@Eh@!C@uuQ~rKyavb+ z`8_uNq6E@Z8gsoc1@SA(&{7u*A0ty1vf8lI?fA2%!bcHBf-bw&L9?{S z=GzR@ZXc4N=V%XGvJxT7(j0!No0eB?@U7WU1bk`}T=Ou@10#8Huf=7Q52J0-^N{t@ zGU2mqMnQb%5>89I3;K8$&W}YDw{iXrK5Cqf8OKxFbh&q+1Vf~8ByN%~bk2cn)%5Xj zki`Z&2)V($-kD>V>8qDCPa8(-$;x3onv zb_8F>q`+Fu#C4wH>5j1bnJluEnO@gU%wD>boMU1Gp1$x~ZL}b$ARY6+uk+OXHSLf-K(Lav$1!Hj;MONz-LHB<=?##4cHTk=%{mxl zHJowbp`XU~l7Es&K2OzxYvV8CxELDm@F<5{bIdYj9t<(M%wQDKWZ_Q<43YZ@;>_W6 zO5MWbuP`L#9fPd*#6Kjt$6`a-8zhtk!g;moFQ|#`H;B9poncdGVjnB0%Z)1$pts|- z?0;OjE&I=|-bmR)NX2lXfa~&nazNDQX+V8CwF#AC>O+uoeLdGx{sVDBI*7)s<09-2 zcy21q<@Jw0q^oIJY#`ll*5G4pLjN9~cFun(=->}8Qt3DZzUhm`i$0My%Q;yD&Rz#X=^2P3hhK1)?gjk| zB7Cy1JL%Yz=GQw|9sy{k3}r~xuRgtEV4tJa4Ao8sq=)gcNA%DU$G^jN zTxWrtx`(-RAfe{cOaA4zf(Te?5rD7sb9_K3897kTvey7T)SFH=u(*_Vzf!DgBUM7k zTk*lQ{etvrzdRdoEi~@DciEK-fIPhPAfOF1+b!$3oj-ALhzk=S3=gYiC}kW1R=>*{xzTzRYUPWgyGQ37}p|g zQz1>8OS4&q27QW6$(?ISy#uh5L(tt2PIyiu1h+Z4i0X&pd0h^~jywaTQAG_9PJ*6< zsdMJ?ayU;UW)6jzgPo|YCL7R+%;BeF`_9?{()KDV)}(l!r~}Nbg%ct;IglhI-Mwq? zl~MnhgRxae8)tqS)rT^%Zz|~{65Ve_$xaYmGsnM!@aohB%T04wR)BSeLI~{XFfW#Y zwzFE9e3o?heNGi*_-5cL0f}ajfiFm7*fr`kMG(Ix3d^Cq3m;a!@?tu7aqA5zZZi z0Q+Z0iltdWgP+D)zv-_*%N(8HCL$@_(j=*9}mP2I?S997}LbZDyWAj#Om(Q z|8S{oz>l6UKy#LJy-l>5pf(!>dKod9M8LZuSvtzaca)kYmS@CFv-IX(C-8l*nJ&#Y zVNc%Ro=8A*3PcgsoXS#dLkdj;w>1i+@=J|*Fe`u-J%J6uiaoVJ+T9|BQI*gTmm zaghO^)OuL<0L(G;m<104L!Rc-cvVPt&eoXCXPZ;!m*#`DZU5W+DAuB2%r9NiM9;@D4$1|bXmA7Kn-_*y31g!ruZ4Z@<$ifp)rZ2g(#rz$K?RHe-N6@j zgWcx%mK*GTgN+n1{R&=j)oZ&Cgb-3eaK2J`sOjz&kY98^u!ZNj56HW*%CILYEXmo| z56F~;iNZ9X>Q=+ff-gvkpi*}Qnhw$ZTnt%iB}vb;h6U3V&tWGU&^wzHpFuXmnXT+D z0j0owr>yu50!3!5sNlfJ8`&*QJu6WCw7+Mi6PG|~p)bp;xbhNPccHe<{Ve@L17Atb$lZ$3n|<$#JSB*os2Q8m ztVgjdq=1=2!fS*%w5xC=U2X{$N|tzEtu-dVF7gE@T?Av~3;K{vNg;6s8}UzYxw?ka zQjJ3}&{dF0cUJFRA}%GXRTeS1;DaG@)reHKVho)1Nptt zp5^Hr`rZiBmVfu04UjupX|fo!i;&h+VNC4d7hXSWr9yA1EbW4cfYqfK){*d~N|OyU zeEADAZ|K+A1jV?e&$aa-;xEaiW*cg`NhH>c_*p_}w6{g$?H^#Ri2NB!Gz@tB77K! z8m*SixE6PO6i2MHr{@N>X2&A5W=$2b!#=$P>F!2Tt=yi-Gb;WHy9=rF8xITi+&78H zMQ=4kZzkQ$O7dOG|9~M2as$o?o&gTgc#1Ua@0pQEjS7MV;GCB5OO~y|WP7c2MEq6q zw)8sCWnO!rU5YlY!l(;o+_9O<+(_huEZ5BZv&5Jn$*Kp~kvp7a06r9aKmUc~@2JIV z^j{I~owp67%*48Ldxfv0+-*81adGP}2iFHX3vM|I^BacbAC|E!u**XBA1BNoTj;wl zNw5@Y`Ag>p(codw?3+8rqYdT^{bjMIJLnyCi+VK^9(Dc0_tffoFTU?J?fRu|!cGB5 z4fIQ}8wi4*K3LgLE}%d^x!XV#T;N}W7Vf#LD#REp&a#{Zs;CDw$WVuL)A*$n15hsM zS5&ste91_rFZ|vt&9oL$FPWZjG?g9g$VY?E#Ti6nUdlXd0>fja;yIUZSgPTvLvU1b zs>SDl3_25slRJv_Tm{eaXCuc0>5*a3gfDHXz6yxc?fm$)=#3ZcMpAFnj7E$+QYPx1a`IpJ8Q216zT znQnsM5IMc9cvV}Y`8IULU~0se%7TXH-w^1xbC$uL)1AXObG;uNm((eCI48vGc;SN3 zvf5a`yyVVQ21;iMk%%rvz^FwPh-qX11r)R=W0j)q5AAIU0@R@Q0okXza#qq9c9; zDsl{RLburo)=t>frNwK58HK&_umuxuk+S?W=y3O$epqj1qt1q#4g{Vi^d-CV?DdnN z@;NFs07HMS%Y)Wm5lxo}?ouM_85>tpr{VxGHXoSKTb{Z^4Ln+$HetPww#z14l6K8( z6X~>*nSjcIyXVWuxc>2kIdx?)oIT<43NGYrY#x|X?KV)hr4jX8S82_}Y!7n$MKyI$UxZ-- zXqFBZ%>umYNK;TVz{Kd}Ls_MKrEV0-?ik+_xl^rEKPJ*gDTQ~Ugy$)9XXrAMqR6zt z8rp9eQY9{;GHn3~XP51>Ic=qRYiH zJpI?DBRofPtqj{NbEi8z=%>V0~d?aZ7>Ca~5~#-pc)wBvXo{%__#5V!|b5$W{OQnoZS zq6U+?MfM*!iO#ln_xK8^lo(l z+SDi-Gxjz}I(%j}U6gj66+qd9l!C%MXFA)%W{bjlPHxp=G;a&ZbcuO$<^ev%CFx-0A0S|EKp>IC zu}`w-7_l+^7!yRV@NCy}Gq&E&5lOjgsqrg|bc?S03mM6bGzl4`1buX4iOW#-K}_M4<3?pWbb57Y za5XD4(?E>WM%@r2wv(ozpt4Vj=;T71p`weNwhEa~XQj8i&wI31O{{2<5wFC!%D0(a zw8SqS=W4fN^H(~7n`YzC(D(AjK7ZI4E~bpkMyqKD9B2=#HcjFvE!^}a zj}}B;LRLKJ(L?TdA`IO8WBeXD>Pd?pYsKf~AyXes@5CjDW+Nz6dfRObV^4td7?xeX}! zhF+deAsY@1VAfE$${fgeHsZlHsqag)QpcF!yWWs`0Z{}1$^@etNgwL*8b4H-KMFn^ zp9$P}#Vxi>kE?u&t7HCi?D|7RS0>7&qmkx2$ed*g$a4Sg!HAtlX-xmN0cf3v{bO)} z?v{G@oA>9en0b;1XnE%Bz4Ozv`+wp?S(?JoAXHNT*~rGd_@iFkCYUxZLHsO;{#0q-aSO))({_c^>R1fikGvmg@qa>~l>z^;?Y; zbc(~z72h$gUM{ZvHl4aV6rV|TK3-5$FgGyO+gE)2N`R{chN$gysB~1V_3TWS&Jk~w zKKHF9jKi6ZzLrNfk_WRDFxY`n|IR#E=!6}bF0jX(fiRj*^_ons+<2}UK%i zWxR5@x+cWwBDbMEu~@X%=d2*+WBv5Ul6?BH?^W6c({E-|yz+C8D?R+<93&7!yssKj z;6SXDpUtm!d!|MYGLuhn*x$#jGJ`!(yO14Gfo(%XE0u-xaBh^n%C8|d=Wkjk=06RD zlDP>twfS?sfsYdx7M>^zCcH0dxWDx?KN-vtyD<>llN!je&@14h%II^Wc2HT#b}nkL z*M&B)4lRO56HxeIWo3UUSSm?`320_?H+WMyQ{JhmB@0nw!e|dkrS=SURq^H~5 z{m`v7&FmPiwY+-9^(DXL1ZA6pLc<8^}t>}8y)3OKrsnDv961t~~1 zGhVl%&U-Jai|kSnm>+8 zK*@<#C7>b%9|Hwt6?T_1H)%!>G=<6}EX>nFj>Qj?-180-J?HtnQ+;x*+GatyuA6tC z`;+swl&V##enIR5oP9`zOOv?~OqA&k*{ysMyE&Kfzl>GIWEpuAzd@xt-)6Ic8kbY8 z$h9aQn@S9Kuj5_x8Z<@YY5SX-ODrr)m51Hu4r6G4p7H+f(_Fb|a2hI(tx^C*uuIJe z{)uUGmMJr?xkZYV?7osgBj|uW2eWK(PyWLqyFaO_S0PmuculDvVb|&Ev?6=iE?Kl} zP_#Nm79Acb+j}2qcQFcVI_hg!fR9h4>K;VYnTEsBtvS}>+4t$^H^bR_B>1A?2{pAc zCXwn|Nj8RJFVlVnwXsZa*YGEMK*TwST*$6G?s09@lalX$5);QA4@(0iVru&n@4^LX!k$~u|OneSQi z8#Y>Q!^>)=RwmTACgdn|QHPR_m$beiimO*0SxSd0Ls`#Evqy{|cLG|cPb~?u;C-j= zVsBS7E?y|CIpeHutNjkNcZ!W+s83Cg*@ZZ!^_p3H28_sK5HZ{~NvduS4*ZZ{op@~7 z8}Ut+JNXh%*i4afDvry>n6E{??2Ur;QsoEpDXIQ1!SxC${EJ1Pesw#r!J~3TMwGRo z2(Y?sKFiNb+oJALe`bq}iCeXCsE?K~A8Eyt%BmRxJ0$G@i^Zn)9-s6J$)Zw@dky#{ zj=@Dbt8?`t0buIvcS!2o9InkcYukG2aSTwLKfAiR*tuxP>ML1dF%Pv78HdOXnt!Fn z4gngLSw6M;+Bj}DtXsCrr`RUl=7o8rtXyhk%<*GtvW@$hRSZxnh7Q1;EKvHdiEXf5 zK}q{^3RF}2kDF{2LjTN?!Kvo|N!#&+L;y>GW|81?$quh~MSJu-c)mUT9^CC^^?6_N zm#$1C!QX%xfp*ejb}?hP@|`Jd^8n~MiMKhV_z$~jHF*nesxwJqcE8A49F6;a99c!% zVpgOL7S9bNS3tHfhPMy|{r~Tp(^8rD2%{(GfETTdn=LpzXL>(WDfX}A64(-yQ#}7x z&+Fy=%~m>w<3at3Sf~JSEzc40 z?iMS(MU>XFCYWwK*c~XhsnR1qDk}T!=QZ6>BEsSUK$n}Fc)fKU*9M=DeFV*JtRXgF z^?8t~<@d!)JnxaW-(1=r=D|7$PUzriPOi?n*1GEvqr)TjMwtfhh;982`p7+U^N&Q; z<7F!}@j7wC)rZisy|=Dhft~{0IqWAZDkaP_5IjT2v&AeygvM9j=Fl^sU!j9b9)`_9)TKk!I()1^?~R_Q7qi(S zf=U6dhdY>ka6a&7fJ(CUT>TF;wBx_r>PEqKX%H%2fWg{i| zMyxjDwsh2h^HSAXPeGx_v6ov`c^+?CSJ@Ttu?>glgkZMfITMzn5GF@)M1~y|XE?vk9}ORSe=Oe26HWi2i7`ETPP`fcANNox zpX)0R{0gTFtF;HH%dO{xn%0c}o2E5TT`tsQY+2}7>Iw!J29#IsLw=PaB6~&QbQYy$ zV^`WDR(Rk8eb`YempW6DXXsG1J|Uw}zj*EJOBE7b?G1Nt zJt$Yn0-NB=hF=TiK!f&&HE8)uk32y2tif%ldbaBKtzmmhRo7R#N(DR#8=WF+&2~$Z zIn3TUaB3VL}iI{~PE}uF|P^Sy5 z+-(0!P?6=>_X{Gf3d!yQzW-j#R^JP0G{>iUrxqjPDl2#KL!23#igCF&-4W=m?~<|} zqvrO}E_z2Vc(0$m)?2^ZnhwxDELzj*rCFULW{T)1JjUM2>Pi9L+k$!nE83MhS$2;~ z4axS%Jh(h8!;8`y_--=AAzL&h$3iyce)-F|ER;|E95hZB{V-0tg(GsMW54nIW4>=)1{Mr3s5NC)zIQl=OSAAg(4K^Z%CKp{GYTV~zdA`< z6a4aa7tM%e(>?$5+4bAZ-WJYufy$KKj9M#yY5MrYqTxPTS-Kp}retF)(9j?U6zo6g z4rIY~AO)?>%efYq{KtskS-I_9;%}iP8<<>5VWeQ+fIehF^$!(C`tmjOSFEF5cOsFq zZw(ganx+CIQcfw>OCN>bg?$V=R~J9OFpV~7)RN9bO@i9!xe@)P7X!*&?Q{kAay7mD z=09h6q>w58P=V@=<^=f8Zk5^XjmVg5okzt{^A@1T+^>_lkOXyyp)df-dIeE!mIeI@ zu5`d%8|pBGKU6I6k8$xCf$)8iu6~Qyx%=AP`IPpw zkQjIkXUPqKQQ+zzeAW60#+GpRDGPJ_lI3eJak1}sCYblvHS9*Nl|LTvoil?@-nR>F z3o7Jyph+7fV>0*dGw-28I`T!JBMMFBuz_R%iPC!a*(QCZU$fPS%h83rXoYV{fVILU zFC*z3t9J`@DFJI6?C@WK2$sy2mZ?yo6llu^T}X^) znnFQd=5)k?Dkp=5L2qS7`??jespV3ZI4oTO#f{m;sl~ITeRQM$r~XY=8c!J?ebIL+ zHZtdD7u}h@Xn&A=7fyp%u1CaTvmI@jm51&Od}-a?5mcL3P6|J&QDf- zi$id+0C66a08clt8d(H;iY>l5o@qr0;+u^(bJhV(Bu&a4z0xfo9$nhe!E-FG27HD#?mzY*r5-(Cz ze63n}_z0(#_8wZfMB<$Hua!tCL%K0&AhC(QD?C7fko|e}HB4-t9#7I64z8XtDKFMm z)f%aIL7;LOL;gvY3--l7WdQt2dS8%gL8BE0OowWRM| znQkB6#pTv<);nHcP=Qs$ZQ+`HT;s5U)SJ(7IkT@+X-+<~$x{1p;Mt!&0rRG-$I+@m zO@FyqwZDyx;p&sxv=9_y1*(Y@YH7K77MKnoVogJC<^(A-LnLUG5MdSVkpP-hdQ+^K zEhnUiIzsjVmUV3S`SviR7_+fNc*1z=Zm)$QD>sH^Dd{$3yFw^mP{|teUZ^$z6#e}j z&l#p}?JiFn_OqH>_T-3(kk){_2J*%&wUxzpLp_>y^<1@5r1<`@DTbCrjrlZJtfB*` z5r#n8@Cr}#{qh$XLLPc>V~*2hIdT0r6F5%PtsA}?{0ek?d&O3h3U_mNwh$Y zsxrt?1&hz4&su%dzGvMJ~nr|O)hOOwi$LDf4MD<_4ev_Ur~ zEKDR;i~@M1^Rf;IMyE!Ab$cu`N9A;@=qPiUKLs@dN5I4=x4Gx+Eh@TN%T}qLWmMvH zn%{^NqS6ulL$CF66_b`q)`1(NphL@)SG!zM+6;>z@5y=6+Oe`U93G!6zXexfT|Gh_ zKP3xw&a6uyCa#guyFeB7Hr?K?ivjtNkRCpfc(uoS`tg=5JtRp(fw_d7gze@qhVE3PGg#at6$ha|A(PaF!!N7-yilN- zRasNcH~JV$#uh*93`woIN*y1(7kYOG0kkN6zvOF_Eej2)23YC8f)0uytF@P67H*iM zkFziYI9VON$zB)5FCENVn44O?;t3Rt)5Ix!j(5i%RA;1W{CxyN%CT^;MK6O1<{vPm z0QB$0Avb1q3~e|&Vyps{wPvPLj_l!{FFt%AwhElI%&t>t$0-5A7_dvA#nkvWa7$-# z+`vqOGE)Q$+*bO?nGW*sG>Sg6E8DR-gg+uqSH1pWL+N{Gh1MZwsFT#2{L!rRzpx)~ z4rkmAjjc}`ow+MLCkyJz&BQf2qmMvY$I9PwcPj>kH+CJVskF z(<}{@-9!nagW-azBF3<*5|PW^EQxq3T!0>|Hyg|2mTd#v4ke~PiNHC>%7gO^T*L%g zB3eF!Nl?g?a4W1EwmM?0AvJ4_!g^Xn z(W!<6C@ow0W5N^AqYi4T1-#{HPk7ka*Rng)h(DWOPx(z1YEq@c?*wYMu1q%6IUgHU zM0N+lHQJKlJQ0*xT}9tX7?rQ|xUtwG@Ho`H=kGAWzV1|Sbn5TaFnlnUl!yVnh=GS8+j2U$w^c4c zy5PNANGz0mt^6@@R62V=P2=T$ztLoP^g$|Pv<3qBN3bx!@9M9sPSfGlm&3$wo_!2L z0$4uB+o*w7>jBj%KmZ+YLE-<*-O&~+vXx-hk0qv#lHI_nkfs~+jobaVzNd3#?!(wb zprx&-v>N<-EBy@m#IosWsYQjtj|+Oa)L=zftP}VcMuarz2+-~5ZP)uOh*gUP?1=6| z-g|9F4BQuHr|d*%lc9d-`I>q8_SzxpTj(b5xEcG+_V$Q%0NC%Ff$$kbz#2dEZ~;d4 znGR2TN8G(0`L-$n<)N@Nue0SZ3R`7;K|`uUWP`0159k(Nd}wld^(I{xZ&_d_r?NnU z??uePizb|%GrFz7b&_85RnMEZ>=s9FK}kmCu$K0ttrYH{bzBw}w?Wy-raSkK!N96) z+Q2vM_NQ*(%)+5kx4!{XbFfnby7GGL*?YQzPDS0H5ZPnYH?8?@MuzKa`?1rWf8Wzvz-cyRIjM_3uKbHdCslU_0M34L)rS7Bn&ybyE}fzRE}^ey zZGP)Q{CzjmX1x8b{6}Kr@I*CZj@zq;&B7J7(slec%WP{aLYJlvnspI-*B&dwc};7fNn8wrtsPgRu;h_XAo~Lx`wjaZc?u|#}x1HAeIrN*uEun#4bz>=t(b@ z^&Q+MzOzlAdZlh_G6d-IPMYNQ;P5_YJ#$-EhXktDJlca!+{?ag{x zTEqEmAN!#e4q7e#tY`R{&_I1!_ST8Z7&tBeC2Oisq{X;MtGC~tlSHe_|Jam=JQ%od z&mf|34`>5VR(X`EX&bueJstP3z`p&0?a%?*c0H8aS0p%}@3*l2qj7mKAnBClV-D4_ zy8?GRMRy}3%1xzlwgu?8$}jxi@Pn;G*+CL5d*IIm(p>$|8xNJ|fNt5p7Lj>>Jux%B z?^Bg?*dC=?AUq)F`9!S4h+t7z;$r%lW_>#`@S_o0Dxll^G02kGf;EYi{;O4ZlfaD& zqMaD{6>{;_GDw9zXvzpxg5I|q1e{nZG+kv-pl!yC6=Evx=k-pM;{%(bUgBvqt{lD$RfA8xq%Rp)=xKb(NhM}XwQ zo6b7{6v_zN#SJVAo*&<8`BFce-SxI#bjQm{dDnM&oW}H6Qy*eEfB^dxgs6qi0PW`< z9rid!i-0-8vU8_Q@_iXvM4EwZ+`q@Yn3ooF))Kjg}yfZb6L;P3lZv^;MsV4oGPDMZ=N|RWKn*F~NqUd!sLN7TSzF`hT z6+8-2T+cNrrzW)B9s#YxANb;j$Kz_zz$Gbbr8^ug1L;L`XPUFnY|Nj&hX`TEJBHZW zPg-Bwe<$}b+k15vi}23!k@}77(b!)>+Y9&upSm1|lWlWj*@Xr_l4JoYes&GJn?Pu_ z=cxW{92hComE1S#oJznRLxM|j-#c;+ojKmzW|OU+c?1BpfvXXV%%B(RnAGx=BR|7|NhP+ z3tJG7+dKg3z^--+^12Iw)DTY~+3Z&t;50UX$xh4#a@BGO9R>;j5WT#wEk^fP4tV=S zj^pl7&s2o85r`bx&`c3t3|xL6;YYe1-Gcz|h#zPc=8Ye=9dk8sXpYrXt{7UamwKT* z9Wv?QC}AZ-8S%lk_ArhlLdW^%g3k!tc96WyKNQOP8_VQW*iGPO7J#p@t|`#mGCjOG zOMs$+<~8=$;wSQX97rcJx>WSkb_{y5ybn9==-*6x>OHTdX=_Emm|&7cS(2K|uD?4Rb-MjA`qKE@C;oYR)rCGb96vdHDTPLm5zo7+(C4Px}jW=sy~X2JWG(z zT688*TVB32kRAcHTBWq_c?{HQKEAjmY}s-1bMIJK1|ZyWJ^-`~ z)I~*Z^Z%@eMEGHV#@!MNT$4EYgCwC=o1JJyM>P^pl*RzLqz0)Uu;|x!fvVeJ9}#+? zYcq+~ioiRt4}8~?=oTpnuq((Cz|?vPZ}%D`0690|6+&P*%TKxm{_87*JNs2`yic`b z`u5Py9S?dMty`6{vezK7tq?)4X4M42P@CxPj=ld6Oz&BY*IOS ztN9n!lc#Rof#wFjO&c*fiDnwYAriZm+&0TB>erWGORMzq`>21G7)*%>pPOk-8O#vgS>a2hnoGS9Xgc+RL zz&z*}5!;~{cTX{IU<{??eJ6o_{E6X8o`O4^FkNFbbHORtyb*e!pTDx{0#k}aJg8PA zrCcjcn9V=%0KfZsJi{nT;Zr=c47*Xgw~G8_QuTW6F^}71!+y zCPZjqbaJh8QeTFH2(cT~3OKMSx$tOWJoIZ`mcrHZt#Gg|6#+C;Zp_c+-csZGA>qQxMRO7`Z=5I5JT zHV^LRS=hc7gIX$C9xxM-MazJVLhr&fImki5^!eNGe@qJe@eD7uK1uU~a+}F}63djJ zAg(<_A3a?H?IvPFXS*o6E$kMJZZ7s`de!5$5L@YYUhKWDFlQmR>XD7E1M!KHF8gVN z=qFk-n&`|#;`bP5kWSh*!mli#9`PLLr0Taj%*ZUrz zzd#g!}LF4{4l)#hV85Hn1sOj^k!`8v`p;PxlhQSs|LPl-O z9K3GrgNht+acaGCrmo1wLF)#ZTV%8d3Zr&+?5OPBh<>@)OIAtrE*j}>BMwY3&-oWn zQslt$uqe(_Es2-;Zs1aB0NzrZ1YUi{&PJeU67tncn(Be=gK zmT5LcTO6YC_SxsAFCRo0X?t+)ZChY;zkbNZygG-~+jhOy+R8;zf+!YLm-FBH{-CLs zz^NT$Lks;MS&}r*_hbjiGHVq`L8$GM6dh)O$?UXp45w-;uiOPD#=blaU#!dDsPNSy zu}gB;_zUAHuZDf%t)SB)OE~crnu%9pCa{};@SjPHJ3E}guS|c-VVY3_HCP>w!7XO4 z=LUcVDs{DLB0jeY7LBs`%RQbPK545C$u6kybs0q?Wmz^Q@ybucUITI*M)G`!CE~5+ z-_n_HX2VLUq{LBa^F^ReT;fsss9?WEGYXpB#+F2>^~RlHA@$o_aw#fdWA1|&l)U%x z$Czs`16r_)v*OAR^vMAMrz)VDcvb)4pZgPkmF8dT=`!!F1&nyGp=it~9De>VNzDG-{ow*4dMu-j2W69@4ZL0%zX<$bf?#=xNUuupms{%0E-J_9<8kkZY zaGuL%ZX@|=9T_IM*!Oa3anGjXlv+}-(ff+!N~UzlEJU*{*9DI|dH`en14h*QNeP2N z>xAAN)8jxC^`fjsaIHnbY^aYCwwa`ogmvKd$1h&!^X$|XVI)k){^HnP_)_OC9`UZ= zWqoVtwPfkq=_q9EU3l93SPAOV;+O*h{PO(6%e{}s>tD*~s%MJ;3_TDu!hYPl>@Nay z*QYZhg^x+vMslf)IjQ2TdU4i0u2H#@!~PG`)v5#JWl((X;OsTk1b)HFbHpjAC-D}Z|`{$D&Grvp;lN|lQ zjkVX0MvH9H_VQ%mqx4_2>J0M1vHp6rTJ;F4DOc*C&h1D^&#&$TerljfI!>>u?-LaH=xBimNBJxGlRuvI z51(oD5VC}IeZGf}1Q>^T@ckK1f`lM122bBVFz-{7LWl>TksQ%(byZ7enk&JUGge`R=!wM<7E@SSC())m2YGp-7zvCeo>dLOsChpv z92ao33xXf09#$ac^voUc4ZFO zesCmQO8LxNI6U_BkH>_UV5Bx2qeH{OD2fRZ+}-(KWj-!6tmbgC?s+z9b<4){&DP<7 zdYo%&W20)Dl+5wrTnZL5#E3s7aV#G-`RT|^CRZg&z?9@F3tM#{djOhf` z7*qzqZ!w&8m`i1+8udJJs(nxv-SqBaFjF*}O4M@I zxY6(DuTp}pn{}tjHZxIpu2+v;uYdUA`MaMjX9O%a0xUQ2_Qjo7WPFlmA4HdoSr1p* zD!5-fMx0&~s zSb-kv+6-SUBo3Ird&GyRK8WRyk1SQ5><6$(AKV5>h|Civ`|*08t%nXT>2HA9iNjux zNkM#2Yz}F=b^R9xOGL(|uswW#kVwX{d8w2Uxa_ed`Z>X~MGT_G5(Z=J=uKqNeiwbj~~QYVel^d0h^%;1p3q|PbLamXIKvuA=6|-RtSz~=n^&t<6H5s zD_tE|R_Z1Cfk0n&Td}z{MPx^8rtOVmOjh%&VX;XkOe&6eOQ4zQ)JJw|npY-5ZpR$b zcjct{>6G2aFBDod5}(SfCNcvq&XoBkLn67&fOqkoO(5nf)?4U)Oc51gRuBY_ja5_L zO!MuAPxKJ%%0JnAXeo~jX3f33j@_qkXxvBrF?=pd@XhBX$7c$mH0;Q{*tV>s%UKq- z?V3AYpp(PG4pr8xBFtjLwk)|_XV#*gW-}io3B>S#Fk;sS7_nQL?A|cfHRai~_52iR z$A4enBeJ|mOBYol{~)Q#J?4b+BVejKC_&Q zcoq|tFB`Q-pE~Xq>(93T5YJ*=r5ZSFRHuSnFK>{m?wPEd{lXST1^9HhA;Dyau~JS| z@7^Y)1;jba$K1y;9|t&-btaQh-lnn{zxi_ThJqg= zpr9I9k!0A`e~5)Ir2IeQ<`$_cV_@huc;%nUL<|dv;tenoOhvNjN^&Vif;*}gxLrg0 zXQ~68L@>ARgBxaJnIZB^Vq1*BVyA;iD^(}Rp7}3}0Hc59K9_3@9v)1SaIj2PO6Dls zPc6caBI6NRVn>x*a&WK$M}!Wa4ibG=h!Am45qQPHI|zCyeU zf}&o-95mpk8g&>_9ex2SLq6^dSZYt_3UtuL`ACmt-BTAuI6iYA2D+LVvLTJ9 z43>w4QP*nyxc0E#@_648pD6$3XsVx_6L9+wqT3(&zq)-RvcW;Y(DUIyoT_3_RN$Z1 zwzIvSX**om?5OWa_HHaGYi?%cr%LsQVhis5Usj5H=8;-8#d^;42HR00JX5V9v_8%g zB-%LWSimAb8UQY=fv|WL>;}Y~d0C0((Xz4d9J`FLOe=@hax2>+xU7I{H@*Z|8RR_s z3v@D=t8rErNL9z&3Wz48n$4o>XR`mBY2LReKZUIrR6b?m>E~H9uVwDg`&M5c$2oKQ z{O&!JPGS1l@z3JNgh)DNWr-A6-m1k3SC`{R-FND$lFG|5)q0Tu0Gg=H{B0E0;=bl6 zjmX!wC6V>{Lw<)p5twsZWCJu1o3Qrb)cz?;@3i&`4+PHXSdP}L+{qI1R@&=I(jGMJ zmO5!GIG97VdTlh`AC!?MM;2-5dQEa*`&$x?6p#TaX0hr(8bKY;fGq1wS8ZBPWzRh( z3O0A_DImUW(!WwYOIjK5;rIKHUzdE-$r0xMQ#}^+QEy8%+9fk4Vmvzy z1zeR*-Bm+&)B>As21=6mJTVKGT5>mBym&&`cHXZ_PW)2{@3g+%o9xfNIlrGG4jq5; zv1%FuT6f!c;*)G(V(Qv^KMbroU(Zqm)0!@6Vj0xr(zv=X2J7zeIMW~Ubm}UQf{!b6 z@aVllm(NAK21}9pNuK}^A4VZ`FzBMFo*l_>3=0t6$-K)_UrnxO`mlL@@K42(`&>Iu zl!u249#T(iZ6pM+JmKE{bb_#dO@Vuym###{Of#*aH1%&g0GGulrUWZgV(a@6ls^r1 z=B|XE&0pM?KyZuJ4#=|=gqC(n;)J~58)wq9hH!q3rNtcWGdfIq`%DAt=d4T_) z&OpZbT+!%C$3ma@FG@a{$S6P4*5D-~?jdBy!R)PwWlareHAR@nJ;yX!znGQa@$CKj z4t_R3MDQ(uTHIbAdzU#D*S!TYNs1z*UuRS-{AV{Vb+6_~pLCYEVnf!nADwfYvNBgm zGU=V7LwgiY-DP2g2G)7?0XUY-fG7CIZR14`vzI^f#f;*=V;)h+VnZ<_rpbUlFV~f| zm6*JoE;1DWeexmf(Tlsr4fO&X9TIz4B{RyhTPE~7LFL*%YW@zy-HbvhRxz=);>6&pCMzR5pW3BCZ+$o+dNzNw0&o+8DtUR*855TQ0cr z5|#!?u;^P*z*S4VjgjiHq0HShKXk7;tmt_rQ7%wXB`OMp%~hfW6EL%sJN`7w(` z1FL5`++-C`99~i2|aHwzb_8O{qM9Fr!u>OEEKW%c2RyOhY{>- z%5fIp6iWb8Ie!487(DH=byRO)6xe`J%+v?8z%ya!n97EFd0&^kSVwpY7Cz@dF$1MC zDmSyy2sl7oY7D)SHfRL&z$vvivpPKt?@9^F{Vu&%HzNL|z!|#pSPU3hJQMB}(9t_z z)^C3tlA-w(_s2z8TJ^Om>s~gGz6TK^Nv}a}7vjwA8<_36^;vt2^jIR4eeb^tg zdn(W;h#TX^_TMCX?`a~ZUP;5t1i$sNQ(I3unzK>@cOo(!cUD^i+6_Z2=5|}Vo$@i2 z{%m|fTBqxxO2;0NcPdq<q61TzBFFKA z8|LUdI*2T?f1gv4<57FVnej@d4SZ45Q~b-P!y#4kzTi#l88^L=P08U5V#HP7?mlFl zKm9=g0SDRMi(IA1?&BliPAwOM6GOGaxYte7C|<_qwRh*SZ6%2Z>@5FiQVw!}bHiRJPkrL;m*K+Nbt z!FlH_St)$z2;92GPATGElS+zvJNN6qvC1P-ZL?@-RhPxY>ptM>pGqlmZBtDQ$B{O( zVnWCOwK%Dw^wJjTPRJ`2qgSJys5(Bhx9_6dBg8tW^5CHk}vsM^tIe zQE3q%F#SewsomF&gc6*RF`jkq#fnD>wb~Eh-*;J`mA(BpVJiNn3uSyS9|)*QkP8to zXJP=(snW8p?ZZ85;E-;B&-PVG3dIBq9N>3AD?`-TeDQ0ZsMNfuCyQ5rDn)0=$8W4} z5?Y*Ecmb8W_2c-3T?#37W5FewlS#%CTqy@QeTn2Xzz#LTxg^cFyO{L@5H*p_% z3N3CCwCvd_ezHAm2WVZXX=}KE-`>u3yU%ZLnM8pzw3QVn^6K&wiOg}h&iA2H{yOui z`BT>c8(>oPmaH*EV1x7iZtA;AvNH<|NAU0WO%bw80flQ`+RIzqQ6(^rrdf%zu{$9v zws2M+-a=zzOaJ7lR9k`0bkECYe%yHr$muMG<_G3B}0fVHX9b|RYU5Pt-JH2N+^jqM1Q_es0;@zj1Y&mBAXDf)fBYfScX6L-wBg93n8sX>TX%-^!B86ApP_>w&jd4EZc2t0<4NfwEQ^68YkEjYk} z$rXGY+8CM0qzwkI%u~GFfR0*5)P~&p7aKtzCB&N)oKZ<8E^oHA(kRs^j^e8;QHyMk z&p?J$-As7!3>W%C&R2vqlQh}Az^cwqKRZ*Z)d%^gUai*t!~4%zOL(HfWPUziWk zi#uHaI;sS>t%u?*ssGI;FpBdQL$j`7{GZ?&EcJeftfN2MK zO99JFDondZsR!9(&~9WIe-7dp;t6aL&{itLeX8wcOjVl~gUA?;gKu*z}(XJz^DCHGQ>-uIf=3mK^HuX+lG%}WpbYCv>e5`dbPpI7J zaIclZXsxIx$Slmm{9|AvxQL9fGa*%*u_l;Zghw`rSXud7wE*KvMlEf)DL%>Kfe90x z+4UqM?s~WR!$C~y3<=b?0I26qG^;5_qXtVZar^b}|K?xBZ z46in}`_$#g*58N7!U)Z^*^+E7R?^rf0eET$83uEV2Q~GT!Y>i&}uTO5;G!0$X^MZ^O&WJ93+1( z^grx}S5L#e(5uDsp2%%%s0+G657|<8So`EO@Qcb=(!P~|yz);1VJ|QwC5AG1;>@9| zs7ObH+3}7qRL0l%5PpVnA_XxsT;sMlf>^A-(C5wT~cP{gCFWD|cCMn8aUH8EU z&vlpPsvBktOxlkBX0G__g5VF9yIRR}oKaOuG#d~xT2UE0`jwJo&j}aD$%N6&Sr<`w zXaZkHS~J|NJL(ngu*~D|{@Je+&4xUBJZx8&q{;3#r=g7NBM7 zs(nqT!+g*FyW-Lp*W_IXGA>u{( zv+90rzpv9N`f0d#N?@pu6%&9E5~_`fl^)%F7V7I*bIyH^M66+;5Q+O(HqE{)-VPlt ze(j4L;amUKz*fxdE@Pxyo#T7lx?dg_Q>)+GePKSpK*zgpKhB&n!zibe{b%k4THM<@ zNx#23jkjt#eOE6f>>|AZBzoq+xPSZP>jv-q;*>eDtcfg{wAHPtyJh6(WPvJClW##*DVZxpgZIjPy6+I=wK$9;>mZ0B0LL*^b|!4Uxsab3qoC)_J3v(cW?MkwB&LB2eE=yRjw@ z6fX`}shC@iG@Xgw)o*VAu1A6J#dKzUbZ+rJ*%zUUe|79$nD0rcXFN}l9q$94IebDq zOI3r${$9sr;R-^Gbg>!Qz7;O9&pVqutQjtaa^GHM4CwglbY)Z=4>tA!J4CPH@J5g9 z=0?5g_j^2g(W`lJ(yw*hjM$^I$jG8sXe^TdJRiWI7WZt_%zHGA17b|s@QiNrZw{~nX+|Q4BPVMqv$!{M#hYABX1dy_bMO zHe>A%cXO5m83^Ac9E8E=={?cyuR9@1p!{;e)uTv`Pbw|yS@)EbTV!5^>4*}-O_4OP zmd6lqC$i~cu##!!@DV7lEwI-}byigXnSEtmy|VlaZuV^ZVBg0CGPs5DP{xvzDE0mm z$gbJfmG0))uX`pDZ6G}T>wn=uMyAqObi}D69`YvlZC~ihEx`6h<69y zqSqVoaKJHhr{;j^S#_X}=39Q*I`bljmGO9EUIDx0wxZh0;77f+Zd=eKGflx4uxYaT z-L7|tQM0<{%laM3r{KXad^huzUV!jc|3dXh&YdnxdR8d8K$i7A|ly zTfY9T&RD~oo4Icy$2@@TWHUb;)9{R| z@!)n=Wtx9}Y*KkjV3-v`2hv=aIk(}Wym}J96xh(QU|SVMg?HvtsxNYW*u$rGTzd~? zpCHf31{WAd$s4@SdS4^)qw;vnMMig0CF+8Wl&Ij7kEYGH&|tK}`Y~g3e7o7>BPwyc zzEw+3ee7P#hMEFdB8KzZ(}>D_&o8rkdn#D zsU1)qc$p(|v3S6AgGnha(0Tc)Z&8r&2E{bnLqPv`y$wIjU#9=sji{d9Ps&Hpaa(VWDDA=KAFs{x z)^^~jjM5-vGgf)UDkM40KGl{n2It+hR zW{bXtes^$(i7mQ4hDW8PZ1z)Zl{SnSu3hlDDvmc=bWD%C7`CnT<_%TdYE~T%m$tGm z8xr3U^{Oh9aSN4)l`b)}F$1nd5!`5I`&MdXy4iG&ocWdvv-#W$X0y+)P1gKgFq{$6 zKrsm2+2emIzp}4JE#zE%j)q_H?#Xc<_l+z2W(9s3mo2+zR2o)gpkEV*r|a_VV?*q# zWpL+xl@ti|bk2gr(0$C*+4`Lm1gpyz^+i3?#&W zX8O@h7o=}ruyH9_^1GRTT@LDz|3Fr(?5YR5Y1d{AzOc0^AGrj5H)Dry<2gYeqh!BR zTUY)tvcPCPm#~DgN*Z1c#0%ROQLDs#+C$=7q~qp0@{40h`RX;qAs((e1ryn}e!Ky+ zo^NQMe!XQ9&I#8CBS&(?kSZmyZ4%Urc2)GJ2Pk^_a)2P_-6#qV-%SU;rasmG~kEt+Sr zj}fI(nk}p800ZL-UbK9A%{XO|NTicljbEqpHu^+(qzUu>H3~>#T#nqnm=TKlx|$tM z#u!?SM^BdSX#^n(@?+N>b{@gnSj=enZ-?iZUv z`Bc`lNyi3k$Mbx~bn`FD0hS{X%Yl4CggiR&|1*ZRs zbR0HD#elUpqXZEk(KeN)Cfb>AJfg*xMLo&0zN&|7rJaph{ruF;0K#-pfx){lmLrOC z-zdXlovNe42d4-(y%!xBZ5-E);1weB>G65r$y3`#i>_<$+xP`+aooMk5#iCbsJ(y< z7{(Qf;d46)&0X>5*0wVW$$;|hNgX5NSV4j6`R-N^z~H8q-%Y=)5)R)5TkSOtG#PGR zNa2eyHgZpq1g-NBb;b%=Jv$y_?7Ur=jIAAqJ0TEVy;~%z@b|aKI(+s;g(M&4L)*Kw zIsbVc0__N^xX(KYM`s8+uU%`10iwtAGq{QM8^+$UMi(~2(e&5VE=X-Ui_LcE&$Ls; z!vPGJNXR@Lif_EpJ+;_45q1c34>*Zg@Ns=iZo4`pK9wx|?8UhgABvr4 z5{HFap}s7~P6(>cFR_qh5H=eOTzPDTU6&_h8DNN*_MR{LPqD38x|srcQTX)sd4c5$ zO#9Y8?0^lUt4P|h!@0ozYcAc7Snwd;eF@vCl9es1v_wX#(`Mo zH-cBi#gz*Y-My#vtuur4DxRzgcx=ZGn9T(S%)I$J&>5NS9DABwimxoL-kzXc>RCV? zfVWWfhEg~Pn!jU>6iN`Dja8Nn+Ja2&v942DmA*1J-_E^iY1d0T&o-zyof3-qt6$IL zwh~DAB_UB|g^$N6L}$ZgwRdlAS~>+MkFJvmcn;AfG%T1Bnbon;7Nd)tc?WtoK+fLI z3fp5rba~%@+^}Vp_4wpCejr+X`U`bg<4(Hc`h$vNM#tKmga?yRL6xLEGx`BUuo?0euX`| zqoRuJwXt*kjZSjI=LY<^pmuYTFd?T;k{;H&GH;xOu+`f+mx;&Q>mnSl;$w8bK`&FA zN+DJncV~<=!_RuHT-OmVMb>so%06aF!k8(bLRxTcN1dq9=Q71^I{o$SWY_sb=8-$! zn7jBBtw(lxD2XT8O(K}jqyzbZ2t=0>ZB3R7vr-F@!-W<=-bc_KODTBN!7mqe<3d#k zztlqjevH7P9?v+|15);v5%M_Tm*rq{qJL7(!f-3KWaVu@fvMp*jL z9c=uM>3e1PF|&@O5q>>1wlA-LD@#qKeXEpzY9^3*xJ^snmeqK>L)&csgq}jf9`@3% zo<&LGRyM?gH#uBIg=zG>v*5s^RL;5vAV_}-P--U3u|vL+SLwbo^i;xyiBq-xxE;coG9OB@9@f;7)f z1AVztr>Cg`>F31S*Ps_!-MrGEf36XC%Hk$&h}iYb@C=Wxwo+^vAD!|-Vs^&cK4wE= zfx_A~zXt1POI7=S$wD4~mh1btj|=5>^sc37y3o5Xk>ZdQpM6!**?$Ss#L$k|!&0dr zA4?HeV#`Ikf`I<}0jynXxO#MvIw)p;~mlW+wcBtj{}s_lmqkP@(4Hlzq*@W>Uz^#|zn%>cH&RgqUHaGu^^kQ<+1o>-T3$Xg?JBJ2H z6;|H{nwdP7>ohn}i{9HeYb$B|U6w#Cg#l*lN__nQA{|R$I;IvoCMpkxU>vJgw=9SE zc|37A9F5)CRvew%CfO{1Asxd3W!4Oft#lvj4#T&+4E8FPLeC!xut;( z{bbQTAuWcq#&O=?_d@d}wB#(iY=iO<&Qb%Qfu4NToyGZ!eDyxoK7*>kMpCT`2EweS zed_92aLE3eDD>^H>;zx!C&N#?o_2EcCN{ejYt4MV{2P1g()(r8wdz?Q<24`AF*&=| zdA<+a=)tLBINEDJbqls7Mi#8kU{sg}(nJFV=5xk~^+;e%e)=N>i-lu0T_&^-)wK&Wd3ynUJLyv|dW&XsScKNXAQCf}m6QLp7uXg)Oo|#^vuG#a(~`VWv9~{?BFf{5F`$p!cv`-f6Xur{P?+A- z%SkXfoKkh0weaFIWVMSe{5XT?-7R+ZcpvG)6z(Ib&K+(*;j{D}qbydjt7ZlJwe2@} zK55_ot!F*2R|__-4r$KxdcT^Hx17N`btt?z_-(9fwz3yv@?V5Fx}HwrW4_m$RZ}!B zUzSYOnrUywGJEQoN-#E(-YOJgGZ2ji85y9;)kbPItzsqYr<=#+0&-ox*oFq=Vm_y! z$gP?B_pv(=7{GqO5H;-XqE-~`qc5UZ~h$hN0)UVahZ?vg*)pZ05 zT5xFYbKKy!g@fFN^RNVdB<7csZH{G|D@d&F1unrL>XZSu74n>kyN7YAHVQZc*Z1s^^0^R8t+EyadL+E+Ps!|HD8H>Jt zrtbCk>}`?zEIP>jB}-rREgr z$wv1=8;V^MptgBW#KJvx+E;$#m6}d;{#Cn+5aPP7{zA+25zyEmD4?Z{Od{(t-6f4Xy^6thS}jDM6DjZ6gk{fIGuK%w-mpR;+^ WNjm(a?q7g^3bOa^6y1LK{Qm*Ki}ln1 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/State_ListingAfterCallRand.png b/GhidraDocs/GhidraClass/Debugger/images/State_ListingAfterCallRand.png new file mode 100644 index 0000000000000000000000000000000000000000..a58b8664c9646a475a6d7e6b4ba0a305ec4c21de GIT binary patch literal 42751 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/State_RegistersAfterCallRand.png b/GhidraDocs/GhidraClass/Debugger/images/State_RegistersAfterCallRand.png new file mode 100644 index 0000000000000000000000000000000000000000..4de94d6c5dd7b88a4702495166d466d73d539568 GIT binary patch literal 48928 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 z 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 EKQ{+Hpa1{> literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/State_WatchesInCallSRand.png b/GhidraDocs/GhidraClass/Debugger/images/State_WatchesInCallSRand.png new file mode 100644 index 0000000000000000000000000000000000000000..f3fafc9bf174a25290b5e94c0db208dada38bc14 GIT binary patch literal 14050 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

Cgi8Vg7pG!_< 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%0Dgt}qJ5%d%Ad{0b=c3R=I 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 z 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_CopyNcursesInto.png b/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_CopyNcursesInto.png new file mode 100644 index 0000000000000000000000000000000000000000..c5713a9edd13fd1b12ae83d95bc0b0aaf6c4486d GIT binary patch literal 44779 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 FKLKA5z+?ab literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_ModulesAfterLaunch.png b/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_ModulesAfterLaunch.png new file mode 100644 index 0000000000000000000000000000000000000000..78eba91feab79c02b36ebf970fb67c3f23dc9bac GIT binary patch literal 60729 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�ndVYoIdumAOpQEFxhTw>XX&r#~+o1W+ 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 KN1iyIP5uk%nP1ER literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_RegionsAfterLaunch.png b/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_RegionsAfterLaunch.png new file mode 100644 index 0000000000000000000000000000000000000000..bcc43ace867b78f77f25ed5361853af3c88b43e3 GIT binary patch literal 24186 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 F{tw-CcJ%-N literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_StaticMappingAfterLaunch.png b/GhidraDocs/GhidraClass/Debugger/images/MemoryMap_StaticMappingAfterLaunch.png new file mode 100644 index 0000000000000000000000000000000000000000..52af3e326491b41f35a57d781ec5209b72295288 GIT binary patch literal 14540 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 BOnCqR literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Navigation_DialogCompareTimes.png b/GhidraDocs/GhidraClass/Debugger/images/Navigation_DialogCompareTimes.png new file mode 100644 index 0000000000000000000000000000000000000000..46fe31fdc5f0c67117435f06480549452717ccbb GIT binary patch literal 19997 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 Xmc4yyvoZyE>>GoptDnm{r-UW|T5;Tw literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Navigation_StackInCallRand.png b/GhidraDocs/GhidraClass/Debugger/images/Navigation_StackInCallRand.png new file mode 100644 index 0000000000000000000000000000000000000000..623c8b42f52861b680c6f91b3115a61cb0f8e050 GIT binary patch literal 12747 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Navigation_ThreadsInCallRand.png b/GhidraDocs/GhidraClass/Debugger/images/Navigation_ThreadsInCallRand.png new file mode 100644 index 0000000000000000000000000000000000000000..83a30d9b575bae2fb64672f2d2c9de2266182f74 GIT binary patch literal 14451 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≈>)m)#mx4%O~%2&VKVgy}YC6gOGjjQdP@4e@c zFUx7eoGyl8GH%SyQmLj^B7Yg}tIHsCVVi(&pEKoE>(cn{l|voYm1n|$-vanbW5izl zYX&yd1iWuAixhN~`*l4~9+{P8Gc-50d ze_221f3kiFE(kN2Pg?Uk;D}CAJUIDAatz=P!KH5P>wn+9eo9Rh_Wr#rQwR$D&%{J# zx!3Qu)(&KQsZB_da!{F% z1diRyv!_Cf=eKa!b_S{;UpIRpCV_GO%ey-*osM~etTXvrI1|x6i-U=BC1yT?#z=5q zunn^dy*O9bcfEH0y1VF_eE;n|cFvUfB+;kZWwzB`718ILgoop<+Ev;eLKT}gf=Bn& zOZmpjRU2#oQx0`3J09$_9p0Dfn6lx}2=5 z>P}jCu^K|W3Vt|zbVuU+^LQ~_>$A}?*JZ;n7w(Y#V#eG2EQcs*>EZ86Cn9=ok`gFV z!PRHB)%~p*pm{d~@v#r5(vB%0@aLcQ&&7X}47t)36;^Y?xAB9$>TQmRbh%4P`1c>X z85X^y;Sgd|hTp3cnXAnMk&bVLQU|Bbfein(Jvq@`!1|+>b|+7J%(;>=%2Hj;)Ls1E zDSjO>wjrtP7O(@RlBly8MGCSybXyY$10orn|G$ux%M~|XDu&Zp+CFJ_c@BmxzI=;m}eu4!4LQF1sX@8HO6|>k}Js7&%H78 zKP^89rG^e$GidG;-9#01eCFZivZRK<;d#pm!AAMk8`DE{-{%24azuO&Oa15cI0-?U z%oLgt2uR}T^Lp`w5J&J!^umh(Lyy0yWRM_c1}x;TDm9H!xSL8z450qF}`T zx@Tg+*UPp08`$+Lx5&k8lkR5U&amN$j#0>q!yA#uLkOI=A;&(*Z_>>Aa@cX{ zbX}4U2JekS{9@~i>m`}IjCAxV1`c1^jJC({9p znlHY1NQFXsWhbJ3FcD;6vfiZR~;+uvI~clhePIH<G zz#KgkA~Cd(ce?mJ-^(s!A)ct9fc_}HCQgqeRBJIeQ+0@GehnxHoM+hjQ?*z8wHY-_ zSwX`R?W_kwfxv$n{i}B*tvSb3(xwu(@!&jdr=mMH$GdOGUy6FPfBv$-&wLR@-(I-; zagCni#MhJ6uEgchz?RHRRqR*mo1l=rivKYmPi5-(Sjt__SWn?~pE(Ck(~Pb|^K$2F z-SmxD5?A%$xHBg_aU(^<%;jbvDolQxRaC=%{hy*#$ddW^D7t@pTo~ z-&5NFDswGq1CFDAWlweb_y6B1g4Mqd+0255mil))*!k)zAF^p`FGS=1lV@v<8yT2f Kz?{2z|Nj7M8Fr}v literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/Navigation_TimeAfterCallSRandCallRand.png b/GhidraDocs/GhidraClass/Debugger/images/Navigation_TimeAfterCallSRandCallRand.png new file mode 100644 index 0000000000000000000000000000000000000000..4407aa6833abf0744fb38f1cea0add70f5438c0e GIT binary patch literal 22673 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 Rm6gA^u{>&PR%GIK@!#UrI&lC1 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/RemoteTargets_Gadp.png b/GhidraDocs/GhidraClass/Debugger/images/RemoteTargets_Gadp.png new file mode 100644 index 0000000000000000000000000000000000000000..a838a2149072c71bda8359bfa199bde5acb5b7b9 GIT binary patch literal 16764 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 literal 0 HcmV?d00001 diff --git a/GhidraDocs/GhidraClass/Debugger/images/State_BytesStackAfterCallRand.png b/GhidraDocs/GhidraClass/Debugger/images/State_BytesStackAfterCallRand.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7b941f4a59efc72870fc68e542833f1bf46397 GIT binary patch literal 66658 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