在 IDA Pro 中使用参数执行 IDAPython 脚本

逆向工程 艾达 蟒蛇 idapro插件
2021-07-04 03:42:28

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

如何在 IDA Pro 中执行此脚本并指定脚本的参数?

1个回答

当然,最好的方法是编辑脚本并让它向用户询问这些参数。IDA 有很多方法可以做到这一点。您可以使用众多idc.Ask*功能中的一种或几种如:AskYNAskLongAskSelectorAskFunctionAskFile和其他人。有时,当需要多个输入参数时,要求多个特定值变得不方便,您可以创建一个完整的对话框。

您可以使用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 脚本的上下文。您应该分别阅读execfileeval 这里这里的文档