IDAPython是IDA中很棒的插件。编写小型脚本来解码,解密或修复(修补)IDA中的二进制文件非常方便。我可以编写,加载和运行脚本,并且可以使用print进行通常的shot弹枪调试。但是,当我开发更大的IDAPython脚本时,我需要一种调试它的方法。

我已经搜索并发现可以使用WingIDE调试IDAPython,但是我想找到另一个不需要WingIDE的对象。还有另一种调试IDAPython脚本的方法吗?

评论

我想我是老式的,我用'print'

#1 楼

更新:这似乎已经过时了。

您可以使用适用于Visual Studio的Python工具调试IDAPython脚本。它是完全免费的,并且非常易于使用。

有关此信息,请参阅本教程。

评论


本教程是错误或过时的。我对Visual Studio 2019和IDA 7.2重复了这些步骤,但无法正常工作。当Visual Studio开始附加到IDA时,它将报告错误。错误文本非常有用;)它是“发生一般错误” ...

– Vitalii
19年8月7日,11:10

谢谢。编辑答案以反映出来。

–TMR232
19年8月7日在12:34

那enable_attach(secret =“部分是错误的。需要像ptvsd.enable_attach(address =('localhost',5678))这样的东西:reverseengineering.stackexchange.com/questions/25102/…

–Trass3r
10月6日13:18

#2 楼

你可以这样做。去年夏天,我与Hexrays和WingIDE的家伙一起工作,并开始了这项工作。实际上它在文档中!

http://wingware.com/doc/howtos/idapython

它动摇了。

Riley

#3 楼

据我所知,无法在IDA中调试python。

但是,有一些python工具可以用来调试自己的代码。围绕内置的python调试工具开发自己的python IDE /调试器实用工具。从python编译并运行自己的python代码。更基本的方法是使用python compile内置函数将python代码编译为字节码,然后通过evalexec(也是内置函数)执行该代码。 compile返回一个AST(抽象语法树)对象,您可以进一步对其进行操作/研究。

使用python调试器(来自python)
如果您想要更高级的调试功能,python可以自己构建名为pdb的python调试器模块。您只需告诉pdb要执行什么python代码,它就会产生类似于gdb的调试器接口,命令行调试器可让您设置条件断点,操作和分析python代码以及使用大多数常用的调试工具。 br />
使用python调试框架
python调试器基于python bdb(基本调试器)构建,它是实现调试功能的类,可以在IDA的python命令行中使用。如果要使用bdb,则必须围绕这些实用程序创建自己的工具和UI。

编辑:
我现在才看到WingIDE。由于OP并未使用WingIDE确切说明问题所在,因此我希望至少其中一种方法具有相关性。

评论


我想问题是它并不便宜。

–cb88
2013年6月6日22:36

@ cb88:45美元与约500美元的IDA费用?。听起来有点奇怪,但我想可能是原因。

– NirIzr
2013年6月6日23:48