拦截com dllhost.exe调用

Intercept COM dllhost.exe invocation

本文关键字:调用 exe dllhost com 拦截      更新时间:2023-10-16

我正在尝试用intel pin来启动com dll。不幸的是,英特尔引脚设计用于仪器独立过程,而不是dll。

所以我的问题是 - 是否可以影响com使用的命令行来启动InProc Server主机(dllhost.exe),以便我可以用Dllhost.exe作为参数调用PIN.EXE.EXE?还是dllhost.exe的调用将硬编码用于窗口,这意味着我的想法是徒劳的?

dllhost.exe是DLL替代物的示例,它允许您在单独的可执行文件中实例化DLL COM服务器。您可以指定使用DLLSurrogateExecutable注册表密钥使用的任意可执行文件,您可以实现自己的DLL替代可执行代码,该代码直接使用PIN。

当然,一个单独的问题是如何创建COM对象。仅当类别指定可以使用dll surmogate 的appid注册的dll替代物,com对象的创建者指定clsctx_local_server到cocreateAteinstance等。如果是这种情况,您可能需要修改呼叫者以更改上下文。

为了确定您可以使用诸如Oleview之类的工具下的班级注册的Appid,但是从注册表编辑器那里不难做到。如果您获得CLSID GUID,请在HKEY_CLASSES_ROOTCLSIDGUID下进行搜索。在那里,您可能会找到一个苹果值。这是指向HKEY_CLASSES_ROOTAppIDGUID2的GUID,其中包含它是否注册为DLL替代物以及您可以放置DLLSurrogateExecutable键。