我知道Sysinternals' Process Explorer以静默方式加载名为PROCEXPxxx.SYS的设备驱动程序。我想知道它是如何做到的。对我来说,它看起来像是在我们的应用程序中静默捆绑内核模式组件的一个很好的例子。
首先,驱动程序是从exe动态创建的(可能是作为资源)。
通过使用Process Monitor检查注册表,我可以告诉PE正在使用RegCreateKey手动创建HKLM \ System \ CurrentControlSet \ Services \ PROCEXPxxx下的密钥(并在之后立即删除它,以便在驱动程序之后不会遗漏任何内容)运行)。
通过使用" dumpbin / imports procexp.exe",我发现PE根本不会导入CreateService。通过使用API监视器(http://www.rohitab.com/apimonitor),我确实确认CreateService在运行时不会被调用。
那么,Process Explorer如何在不重新启动并调用CreateService的情况下优雅地加载驱动程序?
答案 0 :(得分:0)
经过一番研究,我认为它正在调用NtLoadDriver()来加载驱动程序