我有一个使用大量 COM 接口的二进制文件。COM dll 包含一个 typelib 资源,我可以提取和/或生成一个 .idl 文件(我使用的是OleWoo 工具)。
有没有办法将 typelib 或 .idl 文件加载到 Ida Pro 中,以便 Ida 识别 COM 接口并显示方法而不是偏移量,例如在此示例中:
*(void (__stdcall **)(LPVOID))(*(_DWORD *)ppv + 8))(ppv);
我有一个使用大量 COM 接口的二进制文件。COM dll 包含一个 typelib 资源,我可以提取和/或生成一个 .idl 文件(我使用的是OleWoo 工具)。
有没有办法将 typelib 或 .idl 文件加载到 Ida Pro 中,以便 Ida 识别 COM 接口并显示方法而不是偏移量,例如在此示例中:
*(void (__stdcall **)(LPVOID))(*(_DWORD *)ppv + 8))(ppv);
通过使用 OLE/COM 查看器工具 ( oleview.exe) 从 SDK导出 idl 文件,我能够使用 midl 编译器生成头文件。
从 oleview 中选择 File -> View TypeLib 然后通过 File -> Save As (eg MyFile.idl)
然后从 Visual Studio 命令提示符键入:
midl /out c:\temp /header MyFile.h MyFile.idl
然后在 Ida 中,您可以使用 File -> Load File -> Parse C Header File。在选项 -> 编译器选项 -> 包含目录中,您可以设置 Windows SDK 包含目录的路径(以 分隔;)