題目:
課程實(shí)踐4(內(nèi)存布局):
- 查看 hello.exe 的4G內(nèi)存分布,分析其PDE和PTE內(nèi)容(給出截圖)颅夺,并建立PDE&PTE與節(jié)屬性的關(guān)聯(lián)衔统。
- 手動修改“hello world”可執(zhí)行文件的節(jié)屬性(RWX)奠骄,然后執(zhí)行該程序,分析其PDE和PTE內(nèi)容的變化橘蜜。
一、
1. windows x86的內(nèi)存分布介紹:
內(nèi)核模式分區(qū):系統(tǒng)需要用這一空間來存放內(nèi)核代碼付呕、設(shè)備驅(qū)動程序代碼计福、設(shè)備輸入/輸出高速緩存、非分頁緩沖池分配表徽职、進(jìn)程頁面表等象颖;用戶模式分區(qū):每個進(jìn)程都有自
己的數(shù)據(jù)分區(qū)。
2. 用Ollydbg查看文件.text
節(jié)在虛擬內(nèi)存中的地址:
注意:
.text
在內(nèi)存中的虛擬地址時候00401000
姆钉。另一方面说订,用
peview
來查看.text
節(jié)的權(quán)限:3. 安裝windbg
4. 用 windbg 查看文件內(nèi)存分布。
界面上方為控制臺輸出結(jié)果潮瓶,界面下方為命令行陶冷。
在命令行中輸入!address
,可以查看用戶模式內(nèi)存空間的分布毯辅,!
代表物理地址埂伦。
找到exe
文件.text
開始的地方,即00400000
:
5. 查看系統(tǒng)內(nèi)存分區(qū)
選擇file->kernel debug->local
進(jìn)入內(nèi)核調(diào)試模式思恐。
輸入!address
可看到系統(tǒng)內(nèi)存分區(qū)沾谜。
6. 查找 PDE 和 PTE 與節(jié)之間的關(guān)聯(lián)(圖片中數(shù)字只是示意)
- 查看進(jìn)程
!process 0 0 hello.exe
- 選擇進(jìn)程
.process f0510040
- 打印PTE PDE信息
!pte 81c39020
- 轉(zhuǎn)換成物理地址
!vtop 基址 虛擬地址
- 查看剛才用
ollydbg
看到的虛擬地址內(nèi)容:!address