我有一个带有接口的C ++标头(所有方法的类都是纯虚拟的)。
我还有一个二进制文件,它返回指向这些接口的指针。
我在运行时调试并收到了这些接口的虚拟表地址实现。

是否可以告诉IDA Pro vtable在某个地址,并为其提供头文件,并使其标记vtable中的所有方法并相应地命名它们?
接口很多,方法也很多。

我看到了:C ++二进制文件的静态分析,但不能回答自动命名的问题。

我使用的是5.0版的免费软件。

评论

在IDA Palace和其他站点(OpenRCE)上有用于RTTI和vtable处理的IDC脚本和插件。

@ 0xC0000022L OpenRCE似乎已关闭

@ heinrich5991:哦,所以Pedram真的把它拆下来了。将与他联系。

@ heinrich5991 OpenRCE上的IDA脚本:openrce.org/downloads/browse/IDA_Scripts

@ 0xC0000022L是否有用于通用(即手动)vtable处理的插件?

#1 楼

如果二进制文件本身已编译RTTI信息,则您至少可以获取vftable的名称,并在某种程度上获得类/结构的层次结构。
对于Windows x86,您可以使用我的IDA插件“ Class Informer”。 “。
另请参阅参考Igorsk的《反转Microsoft Visual C ++ Part II:类,方法和RTTI》。

否则AFAIK(并且非常了解该领域)我怀疑是否有插件
虽然IDA中存在结构,但C ++类却不存在。 C ++并非直接属于IDA。
IDA涉及的是汇编语言和字节码域,而这更多的是一种特定语言(其中一种)的领域。除了HexRays反编译器插件之外,该插件会在顶部添加C / C ++。 vftable等吗?

无论如何,您可能必须编写自己的插件和/或脚本才能执行所需的操作。

评论


您的网站似乎已关闭。

–暗恋
2014年5月5日4:07