(17)10-10-12分页
生活随笔
收集整理的這篇文章主要介紹了
(17)10-10-12分页
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、概念鋪墊
mov eax,dword ptr ds:[0x12345678]上面這條mov指令中,0x12345678 是有效地址,ds.base+0x12345678是線性地址。
每個進程都擁有“4GB”地址空間,這4GB實際上并不存在,數據真正存儲在“物理地址”中。
在10-10-12分頁模式下,一個線性地址分為3部分:
二、設置系統分頁模式為10-10-12模式
將boot.ini文件中的啟動參數,noexecute改成execute。如圖:
三、實驗:通過線性地址找物理地址
打開一個記事本,輸入一些文字,用CE找到其線性地址:
線性地址 000AAC60 拆分為3部分。分別占10、10、12位:
0000? 0000? 0000? ?1010 1010 1100 0110 0000? 0000? 0000? 00 00? ?1010 1010 1100 0110 0000?這三個值都是下標,具體使用方式如下。
首先,掛起windows,查看notepad.exe的CR3(DirBase),CR3存儲的是物理地址。
輸入命令 !process 0 0
這個 0296f000 就是第一張表,第一個下標是0000? 0000? 00,注意第一和第二張表存的是地址,大小是4字節,所以要乘4,此處是0,所以還是0,使用!dd查看物理內存:
如上圖,第二張表的地址就是 00fe4067 將第三位的屬性位改成0,也就是00fe4000。第二個下標00? ?1010 1010 即0xAA,乘以4后就是2A8,還是使用!dd查看物理內存:
這個 124de000 就是第三張表的地址,然后加上 1100 0110 0000? 就能找到物理地址中存儲的字符串了。
這里改為 !db 查看,結果如圖:
總結
以上是生活随笔為你收集整理的(17)10-10-12分页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (16)任务门
- 下一篇: (18)修改 PTE 实现挂物理页读写空