dirty-ghidra / scripts /dump_functions.py
ejschwartz's picture
Use Ghidra to enumerate functions
8464e89
raw
history blame
986 Bytes
import json
def dump_functions_to_json():
functionManager = currentProgram().getFunctionManager()
functions = functionManager.getFunctions(True)
# Create a dictionary to store function names and their corresponding addresses
functions_dict = {}
for func in functions:
if func.isExternal() or func.isThunk():
continue
func_name = func.getName()
func_address = func.getEntryPoint().getOffset()
# Add function name and address to the dictionary
functions_dict[func_address] = func_name
# Convert the dictionary to a JSON object
json_data = json.dumps(functions_dict, indent=4)
args = getScriptArgs()
if len(args) == 0:
# Print JSON output to the console
print(json_data)
else:
# Write JSON output to a file
with open(args[0], 'w') as f:
f.write(json_data)
# Run the function
dump_functions_to_json()