来自托管代码的 COM 接口调用

逆向工程 C# 电脑 互操作性
2021-07-10 06:18:55

我管理了调用 COM 接口方法的程序集。我对IManager界面感兴趣,这里是来自NET Reflector

namespace Lib
{
     [ComImport, CompilerGenerated, CoClass(typeof(object)), Guid("5D3D2B5F-1AD8-48F7-BC63-DFF7E6BED182"), TypeIdentifier]
    public interface Service : IService

     [ComImport, CompilerGenerated, Guid("1A5BCF9B-039D-4422-9380-274D98D27265"), TypeIdentifier]
    public interface IManager

    // another interfaces...
}

据我了解,程序集应该包含对另一个程序集的引用,该程序集包含在运行时调用 COM 接口方法所需的元数据。但是,没有引用程序集的名称可以指示可能的 COM 元数据。

我已经有了接口 GUID,现在我相信我需要为 COM 对象本身获取 GUID 并编写将使用CoCreateInstance和 的小型 C++ 程序QueryInterface之后,我将能够在不提供完整接口定义的情况下通过虚拟表进行调用。然后我们在 IDA 中加载我们的程序并遵循调用。

我对COM不是很熟悉,技术上可以实现吗?如何获取 COM 对象本身的 GUID?(我会用在CoCreateInstance)谢谢。

0个回答
没有发现任何回复~