// Script to export decompiled C code for selected function from Ghidra // @category _Reman3 // @menupath Reman3.Dump Current Function import ghidra.app.script.GhidraScript; import ghidra.program.model.listing.Function; import re3lib.FunctionDumper; import re3lib.GlobalDumper; import re3lib.RecompileConfig; public class DumpCurrentFunction extends GhidraScript { @Override public void run() throws Exception { RecompileConfig.INSTANCE = new RecompileConfig(this); RecompileConfig.INSTANCE.createDirectories(); GlobalDumper globalDumper = new GlobalDumper(this); try { globalDumper.loadGlobalManifest(); } catch (Exception e) { println("No global manifest found"); } FunctionDumper functionDumper = new FunctionDumper(this, globalDumper); Function currentFunction = getFunctionContaining(currentAddress); if (currentFunction != null) { functionDumper.dump(currentFunction); } else { println("No function found at the current address."); } globalDumper.dumpGlobals(); globalDumper.saveGlobalManifest(); } }