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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理

發(fā)布時(shí)間:2025/4/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

      內(nèi)核知識(shí)第九講,32位下的分頁(yè)管理,36位下的分頁(yè)管理.以及64位下的分頁(yè)管理

一丶熟悉WinDbg的常見命令.

dd?虛擬地址? ? ? 顯示內(nèi)存.

!dd?加上!,? ? ? ? !?dd?物理地址? ? ?專門用于顯示物理地址的.

!PTE? 虛擬地址:? ?微軟給你計(jì)算出PDE,和PTE的虛擬地址的位置.(自動(dòng)查表并且進(jìn)行操作)

例如隨便求一個(gè)虛擬地址:

DD命令的使用:

當(dāng)然,?db則是一個(gè)字節(jié)一個(gè)字節(jié)顯示,?dQ則是八個(gè)字節(jié)顯示.

!dd,?物理內(nèi)存顯示:

!PTE?查詢頁(yè)目錄表和頁(yè)表.

微軟給的是虛擬地址,我們只需要再次進(jìn)行DD?這個(gè)虛擬地址即可.

二丶尋址結(jié)構(gòu)圖

昨天我們講解的是32為下4M+4K的做表方式.? 一個(gè)頁(yè)目錄表.一個(gè)頁(yè)表 (PDE,PTE),虛擬地址當(dāng)作下表進(jìn)行尋址動(dòng)作.

然后還有一個(gè)尋址結(jié)構(gòu)圖

?

?1.?首先第一步,虛擬地址是段加偏移的方式? 例如: CS:00401000

?2.而后,段CS,當(dāng)作選擇子去GDT表中查表.找到線性地址.?因?yàn)镚DT微軟不使用.所以GDT表中的段首地址是0,所以 0 +?我們的偏移,找到線性地址.?圖中(linAddr)

?3.而后線性地址,拆分成索引.去查詢頁(yè)目錄表.?而后繼續(xù)查詢頁(yè)表.而后從頁(yè)表中取出物理地址,加上虛擬地址的偏移.則是一個(gè)完整的物理地址.

  PS:?因?yàn)镚DT沒有使用,所以如果不開啟分頁(yè)保護(hù).這個(gè)線性地址就是物理地址.但是現(xiàn)在開了,所以要查詢物理地址,看下圖

0-15是段選擇子,0-31是虛擬地址.?段選擇子去GDT查表.加上我們的虛擬地址就是物理地址.?而是否開啟分頁(yè)保護(hù),就是修改CR0的標(biāo)志位.上一篇已經(jīng)講過了.

這里查表,拆分成了索引.但是昨天我們只學(xué)習(xí)了4M+4K的查表方法.虛擬地址的前20位做索引.?查詢.

但是32位下還有別的做表方式.

三丶32位下的PDE,PTE表,以及通用查表方法(通用:?指的是大同小異)

看一下32位下的做表的圖:

?

32位系統(tǒng)下,PDE有1024項(xiàng),每一項(xiàng)是4個(gè)字節(jié),其中存儲(chǔ)了頁(yè)表的位置.

這個(gè)就是我們昨天就愛了各國(guó)的.

1.首先從CR3中取出頁(yè)目錄表(PDE)

2.虛擬地址作為下表查詢PDE.

3.根據(jù)查詢的PDE表項(xiàng).找出PTE的位置.

4.根據(jù)索引.查詢PTE的位置.

5.根據(jù)PTE中的內(nèi)容.加上我們的虛擬地址的后12位,就得出了這個(gè)線性地址在物理地址的位置.

實(shí)戰(zhàn)演練:

查詢GDT虛擬地址的物理地址.

1.獲取GDT的虛擬地址,?獲取CR3的值.

VA =? 8003F00

CR3 = 39000

2.查分虛擬地址.當(dāng)作下表.查詢頁(yè)目錄表的位置.

8003f000?保留低12位 = 8003f

查分為索引.

8003f =?10000000000000111111

對(duì)2進(jìn)制分割.?分為前10位.后10位.從右往左分割.?前10位索引當(dāng)作 PDE的下表.?后10位的索引當(dāng)作PTE的下表.

1000000000? ? ? ? ? ?0000111111?

PDE =?1000000000 ,轉(zhuǎn)為16進(jìn)制 = 0x200

PTE =?0000111111? ?,轉(zhuǎn)為16進(jìn)制 = 0x3f

由此得出下表.

3.根據(jù)下表進(jìn)行查表.

CR3是PDE的首地址.?所以我們直接用WinDbg進(jìn)行查表即可.

公式:

  物理地址 *?索引 *4,?為什么*4,因?yàn)镻DE的一個(gè)表項(xiàng)是4個(gè)字節(jié)

由此得出頁(yè)表的位置(PTE)

4.查詢頁(yè)表(PTE)

我們從PDE表項(xiàng)中,取出前20位,然后加上12位,繼續(xù)進(jìn)行查表.

為什么這樣做.上一篇已經(jīng)介紹了表格式了.

?

5.根據(jù)PTE的內(nèi)容.找出物理地址的位置.

根據(jù)上圖,我們已經(jīng)找到物理地址了.

取出前20位,加上虛擬地址的后12位偏移.則是物理地址了.

找出了所在的物理地址了.

此時(shí)我們dd?虛擬地址.查看是否兩塊內(nèi)存是一樣的.

?

?至此.我們的查表已經(jīng)完成.

但是.我們這樣查詢是錯(cuò)誤的.為什么?

首先查詢方法是正確的.類似于上面.我們已經(jīng)正確的查詢到了物理地址.?但為什么又說是錯(cuò)誤的.

原因:

  操作系統(tǒng)在做分頁(yè)管理的時(shí)候.不一定是4M+4k的這種表來做的.?有可能有更大的表.

所以我們要看標(biāo)志位進(jìn)行查表

四丶標(biāo)志位介紹.

?

?上圖介紹了標(biāo)志位為什么.表項(xiàng)做多大的.

1.?如果PSE和PS位都為1.那么這個(gè)表就做成4MB的.

2.如果PS位為0.PSE位無效那么這個(gè)表就做成4kb的.

3.如果PAE為1,PS位為1,則表項(xiàng)做成2MB的.

?

我們要看標(biāo)志位進(jìn)行查表.

PAE位 (物理地址擴(kuò)展):?存放在CR4寄存器的第五位.

PSE位 (頁(yè)尺寸擴(kuò)展):?存放在CR4寄存器的第4位.

PS位:? 存放在PDE(頁(yè)目錄表的第7位)

上面所說的.都是從左往右的位.

比如: 

  CR4寄存器的值 = 0x34500

拆分:

  0011 0100 0110 0000 0000? ?第4位.第五位都是0.

索引我們要根據(jù)位來看看到底是什么表.

?

五丶32位表項(xiàng).

從上面我們得知了第一種表現(xiàn).是4KB的表項(xiàng)做法.每一個(gè)都是1024項(xiàng)的.

4kb表項(xiàng)

?

也就是我們上圖做的.查表的是否根據(jù)上圖去查表的.

4MB的頁(yè)

這個(gè)就很簡(jiǎn)單了.發(fā)現(xiàn)了沒有.上面少了一個(gè)頁(yè)表.?我們從PDE中查表的時(shí)候.查出來直接就是物理地址了.

而且虛擬地址的偏移是22位了.所以最后我們加的是前10位.

而且下圖也有說.

還把各種標(biāo)志位的作用都說了.

查表方法同上面一樣.?只不過最后加偏移的是否是?從PDE表中的所在物理地址的位置取出10位.然后加上我們的偏移即可.

例如我們從上面隨便找個(gè)PDE的表

假設(shè) PDE中的0003b163是物理地址.我們只需要取出前10位.然后加上我們的偏移即可.

0000 0000 00 + offset =?物理地址.

?

六丶開啟PAE,36位表項(xiàng).

在我們可以映射4G內(nèi)存的是否.?內(nèi)存發(fā)展速度大于CPU.此時(shí)已經(jīng)8G內(nèi)存了.如果訪問

此時(shí)CPU廠家.就加了4根地址總線.以支持8G的訪問.

而因?yàn)闉榱酥С?所以表項(xiàng)變成了512個(gè)項(xiàng)了.?每一項(xiàng)8個(gè)字節(jié)了.

36位下4KB的分頁(yè)

根據(jù)上圖,我們可以看出.加了一個(gè)新表.

我們的虛擬地址索引的高2位要做為這個(gè)?新表的索引去查詢.?

最后我們的12位偏移,要加上PTE中物理地址的24位才是我們的物理內(nèi)存的位置.

而這種做表方法.只能說也是映射4G內(nèi)存.只不過可以映射多個(gè)4G內(nèi)存了.

查表方法和上面一樣.

首先字節(jié)改變了.?每一項(xiàng)8個(gè)字節(jié),而后最后我們是12位加上24位.得出物理地址.

?

?36位下2MB的分頁(yè)

?

?

?

?也是同上.只不過少了一個(gè)PTE.查表動(dòng)作少了一次而已.

.只不過計(jì)算的是否.要根據(jù)36位地址來計(jì)算.

看下圖.

?

?2MB的

?

?第一張圖,告訴了我們.我們進(jìn)行查表的時(shí)候. 4KB的怎么加.

例如:

  我們以前查表是? !dd 3f000000 ,正好32位.而看上圖.4KB的告訴了我們.

32位 - 35位當(dāng)作基址查詢.(4位)?要加上.?比如 !dd 00003f000000?正好滿足36的地址進(jìn)行查尋.

2MB的圖是一樣的.

?

七丶64位系統(tǒng)下的表項(xiàng)

64位CPU下的的表項(xiàng).同32為系統(tǒng)的表項(xiàng)是一樣的.?只不過變的更大了.

4kb的表項(xiàng)

和32位下一樣.加了幾張表.各種位都變大了.

2MB的分頁(yè)

?

?

?64位擴(kuò)展的2MB分頁(yè)

64位下映射1GB的圖

CR3.?當(dāng)我們3環(huán)調(diào)用0環(huán)回調(diào)的是否.CR3是ring3的.

?

八丶為什么學(xué)習(xí)這些表.以及學(xué)這些表的作用

為什么學(xué)習(xí).?因?yàn)榈搅?環(huán).就是對(duì)抗了.?就比誰對(duì)操作系統(tǒng)了解.

比如我們熟悉上面的這些表的設(shè)計(jì).?而且根據(jù)GDT,找出線性地址.根據(jù)線性地址找出對(duì)應(yīng)的物理地址.

那么我們完全可以進(jìn)行手動(dòng)操作物理內(nèi)存.?實(shí)現(xiàn)ReadProcessMemory和WriteProcessMemeory.

當(dāng)然不會(huì)怎么簡(jiǎn)單.但是我們能操作內(nèi)存了.?是不是就不用調(diào)用API了.我們自己實(shí)現(xiàn)了?內(nèi)存讀寫功能.

舉例子:

  假設(shè)游戲有保護(hù).保護(hù)了API.?不讓你讀寫內(nèi)存.?給你HOOK了.各種檢測(cè).?但是我們不調(diào)用.?我們自己寫一個(gè).它怎么檢測(cè).

?

轉(zhuǎn)載于:https://www.cnblogs.com/iBinary/p/8315085.html

總結(jié)

以上是生活随笔為你收集整理的内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 北条麻妃99精品青青久久 | 一区免费在线 | 亚洲av无码精品色午夜果冻不卡 | 亚洲精品国产无码 | 椎名由奈在线观看 | 亚洲自拍偷拍一区 | 国产精彩视频一区 | 色爱视频| 国产精彩视频在线观看 | 午夜剧场在线 | 国产伦精品一区二区三区高清版 | 超清av在线| 欧美精品在线免费观看 | 嫩草嫩草嫩草 | 丁香色欲久久久久久综合网 | 国产欧美日韩专区 | 五月综合色 | 成人在线观看免费视频 | 欧美在线一卡 | 无码人妻精品一区二区蜜桃视频 | 五月激情在线 | av漫画在线观看 | 女人久久 | 一区在线免费 | 亚洲www久久久 | 亚洲区小说| 成人免费毛片糖心 | 欧美特级视频 | 欧美性久久久 | 亚洲天堂网在线视频 | 一区二区免费在线播放 | 小镇姑娘高清播放视频 | 特级西西444www大精品视频 | 操大逼网站 | 91麻豆成人精品国产 | 日本中文字幕视频 | 加勒比视频在线观看 | 日本亚洲欧美在线 | 国产成人免费视频网站 | 91免费国产在线 | 久久久www成人免费毛片 | 熟妇人妻无乱码中文字幕真矢织江 | 91精品啪在线观看国产线免费 | 亚洲午夜视频在线 | 99re这里只有精品66 | 国产精品7777 | 国产免费一区二区三区免费视频 | 久久久久久久久久久国产 | 麻豆国产精品视频 | 亚洲欧美另类视频 | 你懂的在线播放 | av不卡在线观看 | 日在线视频 | 国语对白做受xxxxx在线中国 | 永久免费毛片 | 99爱在线观看 | av福利在线看 | 美女洗澡隐私免费网站 | 高清日韩 | 狠狠干2023| 久久国语对白 | 57pao成人国产永久免费视频 | 五月天婷婷在线播放 | 99国产精品视频免费观看一公开 | 九九热在线精品视频 | 中国精品久久 | 动漫美女露胸网站 | 成人免费视频观看 | 一区二区传媒有限公司 | 精品动漫一区二区三区在线观看 | 亚洲乱码一区二区三区 | 日韩av毛片在线观看 | 天天综合在线视频 | 亚洲日日操 | 午夜看看| 可以在线观看的黄色 | 久久黄色录像 | 国产一区二区三区高清 | 国产一级不卡毛片 | 久久久久成人精品无码 | 性五月天| 91大神精品在线 | 小情侣高清国产在线播放 | 日韩一区二区三区免费 | 好吊操妞 | 国产理论视频在线观看 | cao在线视频 | 国产区免费观看 | 久久老司机精品视频 | 国产一区二区三区四区五区美女 | 精品自拍视频 | 日本韩国欧美中文字幕 | 国产亚洲精久久久久久无码苍井空 | 综合天天色 | 少妇人妻偷人精品视频蜜桃 | 日韩精品一区二区三区色欲av | 99九九热 | 亚洲美女一区 | 亚洲国产日韩一区二区 |