AppCertDLL 在 GUI 应用程序中不起作用,为什么?

问题描述

我试图在用户启动时自动向每个进程(包括 GUI)注入 dll。我的 DLL 挂钩了 winapi 的 DoDragDrop 方法并与服务器通信以决定允许或禁止拖放过程。我使用easyhook(特别是this教程)来挂钩部分。我为我的代码创建了一个要点:Gist

this url 中,它说:对 GUI 应用程序不可靠。坚持使用控制台应用程序。难怪它在 microsoft edge 和 chrome 中不起作用。 我还尝试了这些 url 中的代码部分: first second 最后,我已经certificated 我的 dll。

除了 appcertdlls 之外还有其他方法吗?提前致谢。

编辑:我不能使用 appinitdlls,有些用户可能启用了安全启动。

Edit2:好像有些教程中的 dll 是在 system32 下(thisthis),我也在 system32 下移动了 mine,但它没有 工作。

解决方法

可以使用 PsSetLoadImageNotifyRoutine,尽管它是内核模式下的解决方案。