我正在使用 Ghidra 对 ARM 二进制文件进行逆向工程。我想打印包含特定指令(如“CALL”或“RET”)的所有函数的所有块的反汇编。我怎么做?
如何在 Ghidra 中使用 python 获取包含特殊指令(如“CALL”或“RET”)的所有基本二进制块?
逆向工程
吉德拉
Python
2021-06-20 22:48:57
1个回答
您可以执行以下操作:
# get all functions
functions = program.getFunctionManager().getFunctions(True)
for function in functions:
cur = function.getEntryPoint()
while cur:
inst = getInstructionAt(cur)
if inst:
# add similar check for call instruction
if "RET" in inst.getMnemonicString():
#do something
print(inst)
# this will break when function returns
break
cur = cur.next()
我为 x86 二进制文件编写了这个脚本,但它也适用于 arm(您可能需要做一些小的更改),因为 api 是相同的。