我管理了调用 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)谢谢。