操作系統基礎(一)
文章目錄
- 操作系統基礎(一)
- 1、操作系統架構概述
- 2、用戶模式與內核模式
- 3、進程
- 4、系統調用
- 5、對象和句柄
我們想要逆向的程序幾乎從來不會在真空中執行。相反,程序通常在正在運行的操作系統(例如 Linux、Windows 或 macOS)的上下文中運行。因此,了解這些操作系統如何向程序公開服務、系統內存和硬件隔離的基本原理,對于正確理解程序最終運行時的行為至關重要。
1、操作系統架構概述
不同的操作系統通常以截然不同的方式運行,但令人驚訝的是,普通程序運行的執行環境通常有很多相似之處。例如,即使底層實現和語義在不同平臺之間略有不同,內核模式和用戶模式之間的區別,以及對內存訪問、調度和系統服務調用機制的區別往往相對較小。
在本節中,我們將快速了解一些基本的操作系統概念。雖然這里主要關注 Linux,但許多相同的基本概念可以應用于您在逆向工程時可能遇到的其他操作系統。操作系統基礎知識
2、用戶模式與內核模式
在對程序二進制文件進行逆向工程之前,了解程序在 Linux 操作系統中的運行環境非常重要。Armv8-A CPU 為操作系統提供了至少兩種執行模式。操作系統內核使用的特權模式稱為內核模式,而用戶程序使用的非特權模式稱為用戶模式。在 Armv8-A 架構中,內核模式代碼和用戶模式代碼之間的區別由硬件強制執行。在用戶模式下運行的程序運行在非特權異常級別 0 (EL0),而操作系