gpt4 book ai didi

c++ - 如何跟踪进程创建的 ActiveX 控件?

转载 作者:可可西里 更新时间:2023-11-01 09:31:25 27 4
gpt4 key购买 nike

我想跟踪由某些进程创建的 ActiveX 控件。为了简化问题,我首先只想监视当前进程。我想这样做是为了检查是否有任何 ActiveX 控件支持 IOleWindow如果是,给定的 HWND 是否属于该 ActiveX 控件(以便我可以将 HWND 映射到 ActiveX 控件)。

有人有这方面的经验吗?我的第一个想法是使用 API Hook 来监控 CoCreateInstance调用,但我读到这并非在所有情况下都有效。一些谷歌研究显示 http://www.pocketsoap.com/sf/activation.html其中谈到安装自定义类工厂 - 这将如何工作?

最佳答案

您可能会发现您可以使用 UI Automation 和 Active Accessibility API 找到您需要了解的内容:

如果您确定需要这样做,请注意以下事项。 CoCreateInstance 本质上是一个便利函数,它包装了 CoGetClassObjectIClassObject::CreateInstance

如果您要使用该技术,则还必须 Hook CoGetClassObject,因为进程可能会直接使用它。

当然,没有法律规定任何库或 DLL 都不能提供自己的便利功能,这些功能完全绕过 COM 注册表。注册表本身很方便 - 如果您知道 DLL 的位置,则可以使用 LoadLibraryGetProcAddress 查找 DllGetClassObject 并检索类对象,而无需涉及 COM 库,实际上根本没有注册 DLL。

关于c++ - 如何跟踪进程创建的 ActiveX 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com