IDAPython 是 IDA 中很棒的插件。在 IDA 中编写小脚本来解码、解密或修复(修补)二进制文件非常方便。我可以只编写、加载和运行脚本,并且可以print
用于通常的 Shotgun 调试。但是当我开发一个更大的 IDAPython 脚本时,我需要一种方法来调试它。
我搜索并发现我可以使用WingIDE调试 IDAPython,但我想找到另一个不需要 WingIDE 的。还有另一种调试IDAPython脚本的方法吗?
IDAPython 是 IDA 中很棒的插件。在 IDA 中编写小脚本来解码、解密或修复(修补)二进制文件非常方便。我可以只编写、加载和运行脚本,并且可以print
用于通常的 Shotgun 调试。但是当我开发一个更大的 IDAPython 脚本时,我需要一种方法来调试它。
我搜索并发现我可以使用WingIDE调试 IDAPython,但我想找到另一个不需要 WingIDE 的。还有另一种调试IDAPython脚本的方法吗?
你可以这样做。去年夏天,我与 Hexrays 和 WingIDE 的人一起工作并开始工作。事实上它在文档中!
http://wingware.com/doc/howtos/idapython
它岩石。
莱利
据我所知,在 IDA 中没有办法调试 python。
但是,您可以使用一些 Python 工具来调试自己的代码。但它本质上要求您围绕内置的 Python 调试工具开发自己的 Python IDE/调试器实用程序。
我按照复杂性的顺序列出了可能的方法(最简单的在前):
从 python 编译和运行你自己的 python 代码
更基本的方法是使用 pythoncompile
内置函数将 python 代码编译成字节码,用eval
or exec
(也是内置函数)执行它。compile
返回一个AST
(抽象语法树)对象,您可以进一步操作/调查。
使用 python 调试器(来自 python)
如果你想要更高级的调试能力,python 有它自己的内置 python 调试器模块,称为pdb
. 你只需要告诉pdb
要执行什么 python 代码,它就会产生一个类似于 的调试器界面gdb
,命令行调试器可以让你设置条件断点,操作和分析 python 代码,并使用大多数常用的调试工具。
使用 python 调试框架
,python 调试器构建在 python bdb
(基本调试器)之上,它是一个实现调试功能的类,可以在 IDA 的 python 命令行中使用。如果您要使用 ,则bdb
必须围绕这些实用程序创建自己的工具和 UI。
编辑:我现在才看到 WingIDE。由于 OP 没有具体说明使用 WingIDE 的问题究竟是什么,我希望至少其中一种方法是相关的。