探索ring0之内核概述
内核概述
Intelx86系列处理器使用“环”的概念来实施访问控制,共有4个权限级别,由高到低分别为Ring0、Ring1、Ring2、Ring3,其中Ring0权限最高,Ring3权限最低。Windows(从NT开始)和Linux等多数操作系统在Intel x86处理器上只使用了Ring0和Ring3,其中内核态对应着Ring0,用户态对应着Ring3。两个特权级足以实现操作系统的访问控制,况且之前支持的有些硬件体系结构(比如CompaqAlpha和Silicon Graphics MIPS)只实现了两个特权级。本篇所讨论的内核程序漏洞特指Ring0程序中的能被利用的bug或缺陷。
一般地,操作系统的内核程序、驱动程序等都是在Ring0级别上运行的。此外,很多安全软件、游戏软件、工具软件等第三方驱动程序,也会通过系统服务的方式在Ring0级别上运行。越来越多的病毒、木马、后门、恶意软件也有自己的驱动程序,想方设法的进入Ring0,以求提高自身的运行权限,与安全软件进行对抗。
时至今日,Ring0上运行的程序已经不再是单纯的系统内核,内核漏洞也不再是操作系统专属的问题,而是很多安全软件、游戏软件、工具软件等软件厂商共同需要面对的问题。
随着操作系统和安全软件的日益完善,在普通溢出漏洞难以奏效的情况下,容易被人忽略的内核漏洞往往可以作为突破安全防线的切入点。如果病毒木马加载了驱动或进入了Ring0,是否还能够实施有效的防御呢?这是一个很有趣的问题,因为对抗的双方都处在系统最高权限,我们称之为“内核PK”,也许这种PK能成为今后的一个研究热点。
研究内核漏洞,需要首先掌握一些内核基础知识,例如内核驱动程序的开发、编译和运行,内核中重要的数据结构等,后面几节将对这些内容做简单的介绍。
本文节选自《0day安全:软件漏洞分析技术(第2版)》一书。
图书详细信息: http://blog.csdn.net/broadview2006/article/details/6596921
分享到:
相关推荐
Ring0删除文件.rarRing0删除文件.rarRing0删除文件.rarRing0删除文件.rarRing0删除文件.rarRing0删除文件.rarRing0删除文件.rarRing0删除文件.rar
从ring3切换到ring0的代码 从ring3切换到ring0的代码 从ring3切换到ring0的代码
强删文件RING0代码,驱动强制删除文件
ring0下众生程序平等。程序转移分为两种: 近转移和远转移 ,其中近转移中又分为相对地址转移和绝对地址转移. 而远转移只有绝对地址转移.。可以通俗的讲,cs发生变化的转移称为远转移,cs不变的转移,我们称为近转移。...
从RING0级下启动RING3级的应用程序源代码 ring0驱动调用ring3应用程序.zip
驱动层ring0和应用层ring3软件通信.zip
随意将函数执行权限提高到Ring0源代码.rar,DELPHI版
易语言源码无驱动进入ring0易语言源码.rar 易语言源码无驱动进入ring0易语言源码.rar 易语言源码无驱动进入ring0易语言源码.rar 易语言源码无驱动进入ring0易语言源码.rar 易语言源码无驱动进入ring0易语言源码....
中断门无驱进入ring0
易语言无驱动进入ring0源码,无驱动进入ring0,读取cr0,操作数据,写物理内存,读物理内存,查看字节集,提升进程权限,查看字节集2,到十六进制文本,RtlAdjustPrivilege,NtSystemDebugControl,SetProcessAffinityMask,...
ring0驱动开发Rootkit隐藏进程.zip
一个和softice,windbg类似的ring0级的调试器
API RING 0级调用,是一个非常好的例子,我真的是佩服了!
rr0d是ring0级调试器,对希望熟悉调试原理,操作系统底层很有帮助。
驱动级键盘记录,vs2013编译已通过。这是ring0层驱动程序,他需要ring3层接应,后续我会发ring3层程序,如果可以,你可以自己写一个ring3层程序来对接。注释详细!
WinIo,ring0级超级强大的驱动,直接访问硬件,端口读写。
从RING0级下启动RING3级的应用程序源代码 驱动内核源码win xp/nt
windows nt,2k,xp进入ring0的c++源代码
windows64位ring0 api hook.zip C语言难,VC++更难,而写ring0驱动更是难上加难 咱们写个sys驱动文件,其功能是hook勾驱动层api函数调用