import ghidra.app.script.GhidraScript; import ghidra.program.model.address.Address; import ghidra.program.model.listing.Function; import ghidra.program.model.listing.FunctionManager; import ghidra.program.model.symbol.Reference; import ghidra.program.model.symbol.ReferenceIterator; import ghidra.program.model.symbol.ReferenceManager; public class Xrefs extends GhidraScript { @Override protected void run() throws Exception { String[] args = getScriptArgs(); ReferenceManager rm = currentProgram.getReferenceManager(); FunctionManager fm = currentProgram.getFunctionManager(); for (String arg : args) { Address target = toAddr(arg.trim()); println("### XREFS to " + target); ReferenceIterator it = rm.getReferencesTo(target); int n = 0; while (it.hasNext()) { Reference r = it.next(); Address from = r.getFromAddress(); Function f = fm.getFunctionContaining(from); println(" from " + from + " (" + (f != null ? f.getName() + "@" + f.getEntryPoint() : "?") + ") type=" + r.getReferenceType()); n++; } println(" total=" + n); } } }