我正在学习 Windows API 并总体上倒退,所以如果这是一个相当愚蠢的问题,我深表歉意。
在阅读了讨论本机 API 的“实用恶意软件分析”部分后,我决定查看一些 ntdll.dll 的导出函数。我遇到了NtLoadDriver,它只是从注册表加载指定的驱动程序。
这个驱动程序会存在于用户空间还是内核空间?甚至有可能存在非内核模式驱动程序吗?
如果在内核模式下加载驱动程序那么简单(我假设它不是)那么为什么我们没有看到更多驱动程序形式的恶意软件?
任何见解或澄清将不胜感激。
我正在学习 Windows API 并总体上倒退,所以如果这是一个相当愚蠢的问题,我深表歉意。
在阅读了讨论本机 API 的“实用恶意软件分析”部分后,我决定查看一些 ntdll.dll 的导出函数。我遇到了NtLoadDriver,它只是从注册表加载指定的驱动程序。
这个驱动程序会存在于用户空间还是内核空间?甚至有可能存在非内核模式驱动程序吗?
如果在内核模式下加载驱动程序那么简单(我假设它不是)那么为什么我们没有看到更多驱动程序形式的恶意软件?
任何见解或澄清将不胜感激。
这个驱动程序会存在于用户空间还是内核空间?
内核空间。
甚至有可能存在非内核模式驱动程序吗?
您可以使用用户模式驱动程序框架编写用户模式驱动程序,但这种类型的驱动程序实际上是一种用户模式服务,可以访问一些额外的 I/O 功能。
我们通常认为的“驱动程序”是内核模式驱动程序。
如果在内核模式下加载驱动程序那么简单(我假设它不是)那么为什么我们没有看到更多驱动程序形式的恶意软件?
要做的第一件事NtLoadDriver()是检查调用者的令牌是否SeLoadDriverPrivilege具有 ,默认情况下甚至管理员的令牌也没有。
我们没有看到太多以驱动程序形式存在的恶意软件的其他原因: