forked from JetP1ane/Callisto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
decomp.py
28 lines (22 loc) · 797 Bytes
/
decomp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import sys
from ghidra.app.decompiler import DecompInterface
from ghidra.util.task import ConsoleTaskMonitor
# get the current program
# here currentProgram is predefined
program = currentProgram
decompinterface = DecompInterface()
decompinterface.openProgram(program)
functions = program.getFunctionManager().getFunctions(True)
monitor = ConsoleTaskMonitor()
c = open("output.c", "w+")
f = open("callGraph.txt", "w+")
for function in list(functions):
callingFuncs = function.getCalledFunctions(monitor)
f.write("Function: " + function.getName() + str(callingFuncs))
f.write("\n\r")
# decompile each function
tokengrp = decompinterface.decompileFunction(function, 0, monitor)
c.write(tokengrp.getDecompiledFunction().getC())
c.write("~~~~~")
f.close()
c.close()