.bin
,没有拱门信息),并使用analyzeHeadless.bat
(没有GUI的Ghidra版本)对其进行分析。 我知道文件的体系结构是什么,因此我将其作为标志传递给分析器。
我的命令行是:
analyzeHeadless.bat <project_location> <project_name> -import <my_file> -processor <my_known_processor> -postscript <my_script.py> -scriptPath <path>
my_script.py是:
for block in getMemoryBlocks():
current = block.getStart().getOffset()
end = block.getEnd().getOffset()
addr = currentProgram.getAddressFactory().getAddress(hex(current).replace('L', ''))
disassemble(addr)
current +=1
func = getFirstFunction()
print("First func is: " + str(func))
我尝试反汇编每个地址(看起来Ghigra本身并没有这样做),然后我想要打印第一个函数。
问题是:
func
似乎是None
。 ,然后执行:func = getFirstFunction()
print("First func is: " + str(func))
它可以正常工作并为我提供功能。
任何想法我在做什么错?我猜有一些在后台运行并创建功能的分析。如何在python脚本中运行它?