驱动级程序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 15:27:53
对于驱动级程序有个疑问。。很菜的。。大家见笑了。。

我想知道一下。。第一个问题。

目前的驱动级程序分什么种类。。

百度一搜索驱动开发。。晕死。全是什么摄像头驱动开发啦。等等。全是硬件。。但是我关心的是 软件驱动。。比如 搜索关键字。驱动级病毒。

看介绍,。病毒挂接驱动级似乎很难对付啦。就是想问一下。开发软件驱动 叫什么呀?怎么找寻相关资料。那些WDM VDX什么的。。好像全硬件呀。。

还有个疑惑就是。。我发现很多函数和功能有重复(普通下和驱动级下。同样的函数却效果大不相同)。。
比如杀进程。。只要挂接驱动级(带*.SYS文件)的程序好像杀进程特别厉害。。(虽然杀进程函数基本一样)。
希望那位朋友帮我大致介绍下。驱动级程序获取优先级的大致原理。。如何实现的?

为什么驱动级程序权限和优先级如此高,可以杀几乎所有进程。(比如典型的冰刃)。而非驱动级程序却很多程序就杀不掉。。提示拒绝访问。。(无权)。驱动文件做好编译出来。是如何取得权限和优先级的。?

还是和 DLL取得优先级的道理差不多呢。比如全局HOOK和局部HOOK。只要把HOOK的实现放在DLL内编译出来。然后调用。就是全局的。不知道驱动级是不是也是类似原理(只要把普通的要实现的功能。按照驱动级文件的编写格式编写出来调用。就获得至高优先级?)

注释:分数不是问题。只要帮我解释一下。。(不一定必须涉及具体代码。*.SYS文件格式我大致了解一点点。但是也很疑惑。)
着急了。。打错字了。。是WDM 和 VXD类的。。

谢谢一楼和二楼的回答。不过二楼的回答。让我产生了一个疑问(其实在百度里面某些文章内也说过)。就是驱动优先级的问题。同为驱动。但是优先级却不同。有篇文章介绍驱动级病毒的时候说。一些 驱动优先级不高的杀软。碰到病毒根本没执行的机会。既然只要驱动文件编译出来。就进入R0。那怎么还有优先级之分哦。

用户程序运行在Ring3级(用户级),所以很多底层操作要受到限制,而驱动程序运行在Ring0级(系统级)。这两个级别是一种保护机制,低编号的环具有高优先级,os核心处于0环,一般应用程序在外环;一个程序可以访问驻留在相同环或者较低特权环中的数据,可以调用驻留在相同或者较特权高环中的服务。也就是说驱动程序可以访问系统核心模块和各种驱动程序模块,当然更可以监视这些模块,当杀软要杀掉它时就可以自己采取一些保护动作。

驱动程序同样是有运行级别的(和Ring0和Ring3不是一个概念),否则应该哪个驱动先加载哪个后加载呢。系统是根据驱动模块加载入口声明的启动优先级判断的。驱动文件的优先级如果很高,那么系统就会优先加载的,甚至如果系统认为它是安全的,在安全模式下也会被加载(也就是说这样的病毒,安全模式下也很难杀掉)。

具体关于驱动的知识建议你看一下驱动开发或Windows内核编程方面的书。

驱动程序其实和一般程序区别并不会非常大,但是它们在运行模式上有着天地区别啊,驱动程序是运行在RING0级的,操作系统就是运行在这个级别上的,在这个级别所驱动程序可以访问任意的内存和硬件而不会受到操作系统的限制;一般的应用程序是运行在RING3级的,这个级别上的应用程序受到了非常严格的访问控制的。
你有驱动文件编译好的话,可以用SC管理API把它们动态加载到内存中执行,冰刃就是动态加载的;嘛,驱动程序的权限太高了,所以编写它们的时候一定要非常小心,稍有差错系统就蓝屏。

建议找本WINAPI的书看看,那里面有介绍关于0级权限的获取,以及如何KILL掉其他进程