0

我对 IDA 脚本编写有点陌生——不过,我编写了一个需要调试的复杂脚本,因为它不能正常工作。

它由包含几个不同类的几个不同文件组成。由于显而易见的原因,在命令行中逐行编写是无效的。从文件运行整个脚本不允许调试。

有没有办法在 IDA 之外使用 idc、idautils、idaapi?

我已经在 Eclipse 的 PyDev 上编写了脚本,我希望有一种方法可以在其中运行脚本。

一个类似的问题是,我提到的 api 类可以在没有 IDA 加载的情况下处理 idb 文件吗?

谢谢。

4

2 回答 2

1

现在我可能错了,因为我很久没有写任何 IDA 脚本了。但据我记得你的第一个问题的答案是否定的。有一部分会加载 IDA 脚本并准备整个环境,以便您可以重新实现它并创建自己的环境,但我不建议这样做。

我可以告诉您的是,如果您的目标是自动化,请考虑从命令行运行您的脚本。IDA python(以及任何其他 IDA 插件)对从命令行运行脚本有很好的支持。为了提高性能,您还可以运行 IDA 的 TUI 版本。

还有一个 hack 可以让你在 IDA 脚本的中间启动一个新的 python 解释器。它对于调试当前状态很有用,但您仍然需要每次编辑 python 文件来启动解释器。这是黑客:

import code
all = globals()
all.update(locals())
code.interact(local = all)

无论如何-日志很好,调试打印也可以。

祝你好运 :)

于 2012-09-02T07:12:37.670 回答
0

我们刚刚收到一位用户的通知,最新版本的 WingIDE 支持调试 IDAPython 脚本。我认为有几个其他程序使用相同的方法(导入一个模块来进行 RPC 调试)可能会起作用。

于 2012-09-07T09:03:35.987 回答