如何调试使用 C++ IDASDK 构建的 IDA Pro 插件

逆向工程 艾达 idapro插件 idapro-sdk
2021-06-28 00:09:02

我正在使用 C++ SDK 构建一个 IDA Pro 插件(不是脚本)。除了由于缺乏适当的 API 文档而增加的挫败感之外,我还找不到调试插件的好方法。

我试过将消息打印到 IDA Pro 的输出窗口。

...
msg("Everything OK up to point 1\n");
...
msg("Everything OK up to point 2\n");
...

但是,每当我的插件遇到错误状态时,IDA Pro 就会在我有机会阅读插件在输出窗口中打印的消息之前崩溃。

在寻找解决方案时,我偶然发现了可用于调试 IDAPythonWingware Python IDE然而,缺点是它不是免费的,而且我不是在 python 中开发插件。

一个明显的尝试是写入文本文件而不是写入 IDA 输出窗口。但是,这不是方便的调试。没有更好的方法来调试使用 C++ SDK 构建的 IDA Pro 插件吗?

1个回答

大多数现代 IDE 允许您在调试时指定要启动的可执行文件,您应该指定 ida 可执行文件。否则,尝试附加到正在运行的 IDA 进程。

当您在插件的 run() 函数中放置断点时,您的 IDE 将在运行时停止,您可以从那里单步执行等操作。

此外,如果您启用“中断异常”,您的 IDE 可能会确定异常是否在您的插件中,并为您加载正确的源文件。