【问题标题】:Debugging IDAPython Scripts outside of IDAPro在 IDAPro 之外调试 IDAPython 脚本
【发布时间】:2012-08-27 02:00:23
【问题描述】:

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

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

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

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

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

谢谢。

【问题讨论】:

    标签: python debugging reverse-engineering ida


    【解决方案1】:

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

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

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

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

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

    祝你好运:)

    【讨论】:

    • 感谢您的回复。我一直在尝试使用 cmdline,但这很痛苦,因为脚本很长并且由多个模块组成(位于不同的文件中)。我会考虑使用 IDA 的 TUI 版本。我在哪里可以找到有关您提到的黑客攻击的信息?
    • 答案中添加了 hack。如果脚本很长,那是您应该考虑使用 TUI 的另一个原因。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2012-10-19
      • 2015-06-17
      • 1970-01-01
      相关资源
      最近更新 更多