我有一个IDAPython脚本x.py,该脚本带有一些参数,这使我无法简单地使用alt + F7并选择我的脚本。

如何在IDA Pro中执行此脚本并为脚本?

#1 楼

自然,最好的方法是编辑脚本,并要求用户提供这些参数。 IDA有很多方法可以做到这一点。您可以使用许多idc.Ask*函数中的一个或几个。例如:AskYNAskLongAskSelectorAskFunctionAskFile等。有时,当需要多个输入参数时,要求提供许多指定值变得很不方便,然后您可以创建一个完整的对话框。不能说我建议这样做。

如果取决于您要执行的python脚本的实现方式,但是最好以一种pythonic方式包含/导入它或其他。

导入受保护的模块

如果脚本编写正确,它可能会用popen子句包装所有执行功能,从而保护了导入时执行的情况。如果是这种情况,只需将其与if __name__ == "__main__"一起导入,然后调用其主/其他即可。

导入import modulename模块

如果该模块直接使用sys.argv而您不能/将不能阻止它这样做,您可以在导入模块之前模拟sys.argv。只需执行以下操作即可:

sys.argv

调用文件的sys.argv = ['./script.py', 'command', 'parameter1', 'parameter2', 'optional'] import script

如果上述两种方法都不适合您,始终直接调用execfile并完全控制执行python脚本的上下文。您应该分别在此处和此处阅读execfileexecfile的文档。