日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ring0和Ring3权限级

發(fā)布時間:2024/4/11 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ring0和Ring3权限级 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  現(xiàn)在探討內核程序和應用程序之間的本質區(qū)別。除了能用WDK編寫內核程序和閱讀一部分Windows的內核代碼之外,我們還需要了解它們的本質是什么,它們和我們熟悉的應用程序有什么區(qū)別。

  Intel的x86處理器是通過Ring級別來進行訪問控制的,級別共分4層,從Ring0到Ring3(后面簡稱R0、R1、R2、R3)。R0層擁有最高的權限,R3層擁有最低的權限。按照Intel原有的構想,應用程序工作在R3層,只能訪問R3層的數據;操作系統(tǒng)工作在R0層,可以訪問所有層的數據;而其他驅動程序位于R1、R2層,每一層只能訪問本層以及權限更低層的數據。

  這應該是很好的設計,這樣操作系統(tǒng)工作在最核心層,沒有其他代碼可以修改它;其他驅動程序工作在R1、R2層,有要求則向R0層調用,這樣可以有效保障操作系統(tǒng)的安全性。但現(xiàn)在的OS,包括Windows和Linux都沒有采用4層權限,而只是使用2層——R0層和R3層,分別來存放操作系統(tǒng)數據和應用程序數據,從而導致一旦驅動加載了,就運行在R0層,就擁有了和操作系統(tǒng)同樣的權限,可以做任何事情,而所謂的rootkit也就隨之而生了。

  rootkit在字面上來理解,是擁有“根權限”的工具。實際上,所有的內核代碼都擁有根權限,當然,并不一定它們都叫做rootkit,這要看你用它來做什么。用rootkit技術開發(fā)的木馬和病毒正在迅速發(fā)展,它們往往極難清除,以往殺毒軟件可以輕松清除掉系統(tǒng)中病毒的時代似乎已經一去不復返了。

  大多數指令可以同時使用于R0層和R3層,但有些和系統(tǒng)設置相關的指令卻只能在R0層被使用,或者在R3層的使用受到限制,主要有下面這些:

  lgdt:加載GDT寄存器

  lldt:加載LDT寄存器

  ltr:加載任務寄存器

  lidt:加載IDT寄存器

  mov:加載和存儲控制寄存器、調試寄存器時受限

  lmsw:加載機器狀態(tài)字

  clts:清除cr0中的任務切換標記

  invd:緩沖無效,并不寫回

  wbinvd:緩沖無效,并寫回

  invlpg:無效TLB入口

  hlt:停止處理器

  rdmsr:讀模式指定寄存器

  wrmsr:寫模式指定寄存器

  rdpmc:讀取性能監(jiān)控計數器

  rdtsc:讀取時間戳計數器

  最后2條指令rdpmc和rdtsc,在cr4的位4(PCE)和位2(TSD)被設置的情況下可以同時被R0層和R3層調用。任何違反上面規(guī)定的操作,在Windows下都可能會產生通用保護故障的異常。

  另外,還有些所謂的IO敏感指令,包括:

  cli:關閉中斷

  sti:開啟中斷

  in:從硬件端口讀

  out:往硬件端口寫

  這些指令在R0層可以直接被使用,在R3層被使用的時候還要檢查IO許可位圖,綜合判斷是否允許調用。

  當然,前面已經聲明我們寫的和研究的代碼都是內核代碼,也就是說,上面這些指令都是可以用的。當然,相應的rootkit技術的病毒和木馬的作者顯然也會明白這一點,所以這并不是讓人很有安全感的一個現(xiàn)狀。

  更重要的保護機制是如何保證系統(tǒng)內存空間的讀/寫、可執(zhí)行屬性,這將在12.2節(jié)“保護模式下的分頁內存保護”中詳述。對于病毒和木馬來說,使用硬件機制來實現(xiàn)破壞雖然并非不可能,但是遠不如直接修改內存中的操作系統(tǒng)內核和其他軟件的代碼來得簡潔方便,那是破壞與安全對抗的主戰(zhàn)場。

總結

以上是生活随笔為你收集整理的Ring0和Ring3权限级的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。