
Windows系统中,所有可执行代码(包括并不限于各种EXE等)可能运行在用户态,也可能运行在内核态。
绝大多数用户进程都是运行在用户态的,这些进程无法直接操作硬件,访问系统底层资源;
绝大多数驱动都是运行在内核态的,可以操作各种硬件,访问操作系统的大多数底层资源。
所以驱动除了操作硬件,就是访问操作系统底层资源的。
底层资源的范围很广,比如LOL要防止外挂,只在用户态做保护是不够的,需要装个驱动进入内核态防止其它进程入侵。
360能做到拦截各种危险操作,也依赖于360带的各种驱动。
各种杀毒软件要杀掉病毒,也要依赖于驱动进驻内核来拦截危险行为。
虚拟机等软件为了模拟一些虚拟硬件,也要装个驱动才行。
……
总之,因为Windows限制了普通用户进程的行为和权限,所以很多成规模的软件都要有驱动来操作更底层的资源。
如果一个代码以普通应用的方式运行,有很多功能是受限的,至少是对用户可见可控的。
如果一个代码以驱动的方式运行,基本上就相当于获得了你本机的完全控制权。
