防止钩子DLL加载
prevent hook dll loading
是否有一种方法来设置进程安全权限或其他方式来禁用Windows从加载全局窗口钩子dll ?我不想禁用SetWindowsHookEx,我只想在我的进程中禁用钩子dll加载
你可以通过安装你自己的钩子,然后不从你的钩子调用CallNextHookEx()
来禁用所有的钩子。要做到这一点,你需要确保你的钩子将是第一个被调用的钩子。
钩子被调用的顺序似乎没有文档记录,但是很容易通过试错来检查。只需安装来自不同进程的几个钩子,看看哪个先被调用。最可能的情况是
- 第一个被安装的钩子是第一个被调用的钩子。这是一个简单的选择。只要确保尽快安装你的钩子。
- 第一个被调用的钩子是最后安装的。这个比较棘手。你必须始终确保你的钩子是最后安装的钩子。一种简单的方法是创建一个线程,它每隔一秒左右就会删除钩子并再次添加。
这个解决方案还远远不够完美,考虑到顺序没有文档化,它可能会在将来的某个时候发生变化。也有可能钩子调用顺序是完全随机的,在这种情况下,这种解决方案不会有太大的好处。
相关文章:
- 从 wxWidgets 中的.DLL加载图标
- 视觉C++:在 DLL 加载期间,全局变量初始化顺序是否具有确定性?
- 无法使用c++/cli包装从c#dll加载函数
- 混合延迟 dll 加载和手动调用 LoadLibraryA 是否安全?
- 无法从 dll 加载函数
- 如何设置我的dll加载,该dll取决于Env-ailiable的某些第三部分DLL
- 将本机非托管的C DLL加载到托管的C#应用中,导致DLL输出垃圾
- 无法在 Python 3.5 上导入 cv2 DLL 加载失败
- 当使用“空dllmain”的dll加载链接到DLL时,应用程序无法启动(0xc0000142)
- 如何从DLL加载的DLL链接到函数
- 如何从Java中的C DLL加载和使用结构和功能
- 我可以用具有相同功能名称的多个DLL加载元素吗?
- 窗口挂钩和 dll 加载
- CEGUI-从DLL加载资源
- 什么可能导致时间函数和 DLL 加载之间死锁
- 以下代码是如何工作的(从DLL加载动态类)
- 错误:Visual Studio中没有为opencv_world310.dll加载符号
- 使用 LoadLibraryA 的 dll 加载错误
- 从 WinAPI C 项目中的专用 DLL 加载图像资源
- 模块"MyShellExt.dll"加载失败