我知道 Sysinternals 的 Process Explorer 会静默加载一个名为PROCEXPxxx.SYS
. 我想知道它是如何做到这一点的。对我来说,它看起来像是在我们的应用程序中静默捆绑内核模式组件的一个很好的例子。
首先,驱动程序是从 exe 动态创建的(可能作为资源)。
通过使用进程监视器检查注册表,我可以告诉 PE 正在使用手动RegCreateKey
创建密钥HKLM\System\CurrentControlSet\Services\PROCEXPxxx
(然后立即删除它,以便在驱动程序运行后什么都没有留下)。
通过使用“ dumpbin /imports procexp.exe
”,我发现PE根本不导入CreateService
。通过使用 API Monitor ( http://www.rohitab.com/apimonitor ),我确实确认CreateService
在我们运行它时不会调用它。
那么,Process Explorer 如何在不重启和调用的情况下优雅地静默加载驱动程序CreateService
?