在 Ghidra Python 中反编译函数的方法是:
decomp = DecompInterface() decomp.openProgram(currentProgram) decompile = decomp.decompileFunction(func, 1000, monitor)
但是,在某些情况下,可能由于错误或极端情况,反编译所需的时间比预期的要多得多。
关于如何在 Ghidra Python 中使用任何类型的超时取消反编译任务的任何想法?我知道这在 GUI 中是可能的。
您已经根据文档将异常传递1000给了decompileFunction,如果需要更多时间,则应该抛出异常。但是,超时以秒为单位,您将其设置为相当高的值 - 可能假设它在. 更改并检查是否会在时间过去后异常取消。ms1
1000
decompileFunction
ms
1
或者,您也可以使用monitor传递给decompileFunction方法的对象。它包含cancel()可以取消传递给它的操作的函数。您可以在此处阅读有关此对象的更多信息。
monitor
cancel()