[英]Intercept COM dllhost.exe invocation
DLLHost.exe是DLL代理的一个示例,它使您可以在单独的可执行文件中实例化DLL COM服务器。 您可以使用DllSurrogateExecutable注册表项指定要使用的任意可执行文件,并且可以实现自己的直接使用Pin的DLL替代可执行代码 。
当然,还有一个单独的问题是如何创建COM对象。 仅当该类针对某个AppID注册时才使用DLL代理,该AppID指定它可以使用DLL代理, 并且 COM对象的创建者向CoCreateInstance等指定CLSCTX_LOCAL_SERVER。 在这种情况下,您可能需要修改调用方以更改上下文。
为了确定您的类在哪个AppID下注册,可以使用一些工具,例如OleView,但是在注册表编辑器中并不难。 如果获得CLSID GUID,请在HKEY_CLASSES_ROOT\\CLSID\\GUID
下进行搜索。 在此之下,您可能会找到一个AppID值。 这是一个GUID,它指向HKEY_CLASSES_ROOT\\AppID\\GUID2
,其中包含它是否已注册为DLL代理,以及可以在其中放置DllSurrogateExecutable密钥的GUID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.