官术网_书友最值得收藏!

  • 內存取證原理與實踐
  • 王連海 張睿超 徐麗娟 張淑慧
  • 2327字
  • 2019-09-12 14:37:45

2.1 PC硬件架構

本書所說的PC指的是采用英特爾或兼容的處理器,可以運行Windows、Linux或Mac操作系統的計算機。需要注意的是,術語隨著時間的推移會發生變化,而且技術上的細節往往日新月異,變化極快,但是構成PC的大部分組件執行的主要功能是相同的。

多年來,個人計算機和小型服務器被標準化到了一個芯片組上,并被集成到稱為主板的主電路板上。主板上安裝了組成計算機的主要電路系統,并提供擴展插槽,供PC機外圍設備的控制卡(適配器)插接。計算機各種功能部件之間通過總線傳遞信息。圖2-1說明了本章所討論的計算機各功能部件之間是如何組織的。

圖2-1 PC硬件架構

2.1.1 中央處理器和內存管理單元

中央處理器(CPU)和內存是組成計算機的兩大核心部件。CPU的主要功能是解釋計算機指令以及處理計算機軟件中的數據,并執行指令。內存的作用是暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。操作系統把指令和數據加載到內存中,CPU從主內存中讀取指令并進行運算。

CPU與主內存之間存在著巨大的速度差異,如果頻繁占用CPU與主內存之間的傳輸總線,也會大大影響系統的效率。因此,現代計算機系統通過在CPU與主內存之間添加高速緩沖存儲器(Cache)來解決這個問題。主內存將CPU需要的數據提前送至緩存內,CPU不通過傳輸總線,能夠直接從緩存中讀取所需信息,從而提高了系統的效率。現代計算機系統一般采用分級緩存的設計,每級緩存(L1,L2……)相對前一級來說容量大,但是速度慢。CPU對緩存和主內存的操作是由硬件及其輔助軟件完成的,對應用程序是透明的,用戶級的程序并不知道其所操作的內容是在緩存內還是在主存中。

CPU中的內存管理單元負責將用戶程序的虛擬地址請求映射為實際的物理地址,并提供硬件機制的內存訪問授權。引入地址轉換機制后,增加了內存的訪問操作,大大降低了系統的性能。因此,處理器使用一種特殊的硬件設備轉換檢測緩沖區(TLB,Translation Lookaside Buffer)來緩存頁表項(PTE,Page Table Entry),以加速對線性地址的轉換操作。當線性地址第一次被使用時,通過頁目錄、頁表計算得出相應的物理地址,這個地址在使用后將被緩存在TLB中,以備將來對同一線性地址引用時直接從TLB中得到其對應的物理地址。還要注意的是,當CR3控制寄存器被更新時,硬件將自動使TLB中的所有項設置為無效,因為CR3被更改后將存放新的頁目錄基地址,所以線性地址轉換時不允許再引用TLB中的表項。

2.1.2 寄存器

寄存器(Register)是CPU中一組容量很小,訪問速度極快的存儲器。IA-32架構下,每個內核包含8個32 bit的通用寄存器,用來執行邏輯和算數運算;同時也包含一些用于控制其他處理器行為的寄存器。

CPU中與內存相關的寄存器如下。

(1)EIP寄存器:指令寄存器,存放當前指令的下一條指令的地址。

(2)IA32_EFER MSR:IA-32e模式的特別寄存器,包含IA-32e模式的控制和操作標志位。在內存分析中,主要關心其與64 bit架構下分頁機制相關的控制標志位。

(3)控制寄存器(CR0~CR4)

CR0含有控制處理器工作模式和狀態的控制標志。

CR1保留未用。

CR2含有導致頁錯誤的線性地址。當根據某個線性地址所尋址的頁不在內存中時將觸發一個缺頁異常,此時處理器負責將該線性地址加載至CR2寄存器從而把適當的頁重新加載到內存中。

CR3含有地址轉換的初始結構,該結構含有頁目錄表物理內存基地址,因此該寄存器也被稱為頁目錄基地址寄存器(PDBR,Page-Directory Base address Register)。當新的任務準備執行時,該寄存器內容會被更新。

CR4用來標志使用架構的擴展功能,包括PAE。

2.1.3 南北橋芯片

內存控制器是計算機系統內部控制內存并且通過內存控制器使內存與CPU和設備之間交換數據的重要組成部分。內存控制器決定了計算機系統的內存性能。

傳統PC使用了南北橋芯片組的設計。北橋芯片被用來處理高速信號,通常處理CPU、主內存、PCI Express以及和南橋之間的通信。南橋芯片負責低速設備和北橋之間的通信,如網卡、磁盤控制器等。在老型號的計算機上,CPU使用前端總線(FSB,Front-Side-Bus)和北橋中的內存控制器連接,北橋通過內存總線與主內存連接。接入南橋的設備共用南北橋之間的總線訪問內存和CPU。

現在,內存控制器的功能已經整合到了CPU的內部。

2.1.4 直接存儲器訪問

現代計算機系統提供了一種高速的數據傳輸操作功能,允許在外部設備和存儲器之間直接讀寫數據,整個數據傳輸在DMA控制器控制下進行,不需要CPU干預。這種功能稱為直接存儲器訪問(DMA,Direct Media Access)。沒有DMA功能之前,CPU必須作為一個媒介處理輸入/輸出,極影響系統的性能。通過DMA機制,CPU或者某些外部設備可以啟動數據傳輸并通過DMA控制管理數據傳輸。

DMA對內存取證有特別的意義:可以不使用運行在主機中的軟件,而是通過計算機的外圍設備直接訪問物理內存中的內容。例如,PCI總線支持設備作為總線主控,意味著可以請求控制總線發起傳輸,一個支持總線主控和DMA的PCI設備就可以不通過CPU訪問系統的內存。另外一個例子是IEEE 1394接口,一般也稱為Firewire,中文直譯為火線。IEEE 1394主控芯片提供了端到端的串行擴展總線,用于連接高速外圍設備到PC。如果計算機提供了IEEE 1394接口,那么也可以通過這個接口的設備,不經CPU而訪問計算機物理內存中的信息。

2.1.5 內存

如果沒有特別說明,本書一般提到內存時,是指計算機使用隨機存儲器(RAM,Random Access Memory)動態地存儲程序和數據,CPU能直接尋址的存儲空間,又稱主存。隨機存儲指的是存儲器存取的速度與存儲單元的位置無關。內存是內存取證需要研究的主要數據空間。

最為常見的系統內存使用動態隨機存取存儲器(DRAM,Dynamic Random Access Memory)。DRAM使用電容存儲,所以必須隔一段時間刷新一次,如果存儲單元沒有被刷新,存儲的信息就會丟失。定期更新的任務一般由內存控制器完成,因此,內存中的數據被認為是不穩定的、易變和易失的。除了冷啟動攻擊(Cold Boot見第3章)的情況,計算機關機后,內存中存儲的數據就丟失了。這也是在需要獲取在線證據時,不能拔掉電源的原因(而拔掉電源是很多舊的計算機取證或者應急響應指導、手冊中推薦的首要步驟)。

主站蜘蛛池模板: 嵩明县| 张北县| 南宫市| 泌阳县| 邵武市| 武宁县| 夏河县| 庆阳市| 会东县| 鄂州市| 五寨县| 江油市| 雷山县| 含山县| 剑川县| 新化县| 同江市| 宁蒗| 咸阳市| 河北省| 平顶山市| 溧阳市| 容城县| 湖南省| 东城区| 蒙自县| 鹤壁市| 鄯善县| 满城县| 乌拉特中旗| 璧山县| 千阳县| 西贡区| 淳化县| 水城县| 巫溪县| 阿坝| 冀州市| 葫芦岛市| 盐津县| 临颍县|