我有一个 IDAPython 脚本 x.py,它接受一些参数,这使我无法简单地使用alt+F7并选择我的脚本。
如何在 IDA Pro 中执行此脚本并指定脚本的参数?
我有一个 IDAPython 脚本 x.py,它接受一些参数,这使我无法简单地使用alt+F7并选择我的脚本。
如何在 IDA Pro 中执行此脚本并指定脚本的参数?
当然,最好的方法是编辑脚本并让它向用户询问这些参数。IDA 有很多方法可以做到这一点。您可以使用众多idc.Ask*
功能中的一种或几种。如:AskYN
,AskLong
,AskSelector
,AskFunction
,AskFile
和其他人。有时,当需要多个输入参数时,要求多个特定值变得不方便,您可以创建一个完整的对话框。
您可以使用popen
或类似的方法创建一个新流程,但我不能说我建议这样做。
如果取决于您尝试执行的 python 脚本的实现方式,但您最好尝试以一种或另一种 python 方式包含/导入它。
如果脚本编写得当,它可能会用if __name__ == "__main__"
子句包装任何执行功能,以保护导入时执行等情况。如果是这种情况,只需使用 an 导入它,import modulename
然后调用它的 main/whatever。
sys.argv
模块如果模块直接使用sys.argv
并且你不能/不会阻止它这样做,你可以sys.argv
在导入模块之前模拟你的。只需执行以下操作即可:
sys.argv = ['./script.py', 'command', 'parameter1', 'parameter2', 'optional']
import script
execfile
文件的调用如果这两种方法都不适合您,您始终可以直接调用execfile
并完全控制执行 python 脚本的上下文。您应该分别阅读execfile
和eval
这里和这里的文档。