aboutsummaryrefslogtreecommitdiff
path: root/tools/ghidra/FindAiScriptLoaderReferences.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/ghidra/FindAiScriptLoaderReferences.java')
-rw-r--r--tools/ghidra/FindAiScriptLoaderReferences.java29
1 files changed, 0 insertions, 29 deletions
diff --git a/tools/ghidra/FindAiScriptLoaderReferences.java b/tools/ghidra/FindAiScriptLoaderReferences.java
deleted file mode 100644
index 5aae152..0000000
--- a/tools/ghidra/FindAiScriptLoaderReferences.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Locates callers that reference the stable AI script-loader literals.
-// Run through Ghidra headless analysis; the original PE is read only.
-import ghidra.app.script.GhidraScript;
-import ghidra.program.model.address.Address;
-import ghidra.program.model.listing.Function;
-import ghidra.program.model.mem.Memory;
-import ghidra.program.model.symbol.Reference;
-import ghidra.program.model.symbol.ReferenceManager;
-
-public class FindAiScriptLoaderReferences extends GhidraScript {
- private static final String[] NEEDLES = {".scr", "MISSIONS\\SCRIPTS\\"};
-
- @Override
- public void run() throws Exception {
- Memory memory = currentProgram.getMemory();
- ReferenceManager references = currentProgram.getReferenceManager();
- for (String needle : NEEDLES) {
- byte[] bytes = (needle + "\0").getBytes("US-ASCII");
- Address address = memory.findBytes(memory.getMinAddress(), memory.getMaxAddress(), bytes, null, true, monitor);
- println("===== " + needle + " =====");
- if (address == null) { println("missing"); continue; }
- println("literal=" + address);
- for (Reference reference : references.getReferencesTo(address)) {
- Function caller = currentProgram.getFunctionManager().getFunctionContaining(reference.getFromAddress());
- println("reference=" + reference.getFromAddress() + " caller=" + (caller == null ? "missing" : caller.getEntryPoint()));
- }
- }
- }
-}