diff options
Diffstat (limited to 'tools/ghidra/FindAiScriptLoaderReferences.java')
| -rw-r--r-- | tools/ghidra/FindAiScriptLoaderReferences.java | 29 |
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())); - } - } - } -} |
