#jython-2.7 #ghidra
#jython-2.7 #ghidra
Вопрос:
Я хочу написать скрипт ghidra на python (jython), который экспортирует в файл .bin двоичный код всех функций в текущей программе.
Я придумал этот код, но я не уверен, как мне следует использовать функцию export() в классе BinaryExporter
Как я должен заполнить аргументы? Есть ли лучший способ сделать это?
from ghidra.app.util.exporter import BinaryExporter
function_ASVs = [] #all functions address set view
exporter = BinaryExporter()
fm = currentProgram.getFunctionManager()
functions = fm.getFunctions(True)
for f in functions:
function_ASVs.append(f.getBody())
with open("C:UsersMeDesktoptarget_file.bin", "w") as f:
for asv in function_ASVs:
ret = exporter.export(f, currentProgram, asv, ???)
Ответ №1:
monitor
это поле, которое GhidraScript наследует от FlatProgramAPI. ???
В вашем вопросе должно быть monitor
.
Я не использую python, но я думаю, что вы могли бы сжать свой скрипт до чего-то вроде:
from ghidra.app.util.exporter import BinaryExporter
asv = AddressSet()
exporter = BinaryExporter()
for f in currentProgram.getFunctionManager().getFunctions(True):
asv.add(f.getBody())
with open("C:UsersMeDesktoptarget_file.bin", "w") as f:
ret = exporter.export(f, currentProgram, asv, monitor)