ring0下编程

来源:百度知道 编辑:UC知道 时间:2024/06/30 21:25:47
目前我只会C,C++,还有VC++可视化程序设计,不过写出来的程序都是ring3下的,越来越感觉到要实现某些功能很困难。比如怎样保护自己的程序不被非法结束,这在毕业设计的时候有用。我用ring3下的api hook但是仍然非常脆弱,在CMD下有条命令就可以搞定。再比如像杀毒软件在系统登录前开始杀毒,如何在登录前获得CPU控制权。类似问题还有很多,听人说要在ring0下编程,要写驱动程序。可是我很纳闷,驱动程序都是要访问硬件的啊,而我上面的问题,和硬件有什么关系呢?我就是想让自己编写出来的程序运行在核心态,比用户态的程序有更高的权限,请问该怎么做。顺便问个很菜的问题,像CMD下的HELLO WORLD程序,能不能在核心态也写个CMD下的HELLO WORLD?
再补充个问题,像冰刃那样的工具,应该也是RING0层的吧,可是这样的工具和硬件有关系吗?

驱动程序都是要访问硬件

你理解错了,驱动程序不一定都要访问硬件,没听说过虚拟设备驱动程序吗

另外在核心态下是没有CMD可用的,在核心态你已经到达了操作系统级别了,在我们用户的程序中,驱动程序是最高级别的了,杀毒软件多数是通过加载这些驱动程序来实现的

你到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
就看到你系统加载的驱动程序了

另外,驱动程序的编写的测试都非常复杂……通常需要系统级调试器~~

要想提高权限 ring 0下是你的选择。可以看看The Windows 2000 Device Driver Book(Second Edition).chm,看雪上也有一本 驱动程序设计,你可以了解一下。蛮不错的。现在病毒基本都采用驱动方式

驱动也可以访问虚拟设备,驱动也是运行在ring0下的。