段暫存器屬性的探測

2022-09-12 08:33:09 字數 949 閱讀 1200

在之前段暫存器隨筆中說了一下段暫存器是用來保護記憶體中的資料不被隨意訪問(當然還有頁),那如何限制你的呢

首先要了解段暫存器的結構

段暫存器的結構長度是96位,可以顯示的只是16位的selecter(段選擇子),剩餘部分不可見,(但是可以探測到的)

在段暫存器中有個attribute屬性,它會限制你能不能寫,這是第一關

2.探測可見部分:段選擇子

在這裡可以看到很多個段暫存器,比如cs,在cs後的就是段選擇子,在後面32bit代表是個大段(後面會講),在後面的0是base,ffffffff是limit,

找段暫存器其他位 就是需要同感段選擇子找的,

3.段暫存器成員介紹

gs:32系統中沒用使用,

3.1段暫存器中的選擇子是可以改變的,來探測屬性

如圖改變後不可寫了,但是由此可以知道它是有許可權限制的,attribute是存在的

探測base 注意:這裡的是使用的暫存器是gs,gs如果是單步除錯的話會進r0,進r0gs就清0了

探測limit 

01 段暫存器

引言 要學習保護模式中段的機制,首先就要學習段暫存器。首先,我們來看一下下面這段 mov dword ptr ds 0x123456 eax 在上面我們真正讀寫的位址是 ds.base 0x123456 中的ds就是我們這裡要介紹的段暫存器,base是段暫存器中的成員 為了更直觀的了解段暫存器,我們...

段暫存器和段基址

段暫存器是因為對記憶體的分段管理而設定的。計算機需要對記憶體分段,以分配給不同的程式使用 類似於硬碟分頁 在描述記憶體分段時,需要有如下段的資訊 1.段的大小 2.段的起始位址 3.段的管理屬性 禁止寫入 禁止執行 系統專用等 需要用8個位元組 64位 儲存這些資訊,但段暫存器只有16位,因此段暫存...

保護模式驗證段暫存器的屬性

保護模式第一篇段暫存器,學習過8086彙編的同學應該知道段暫存器在8086種的重要程度,8086cpu的暫存器都是16位,8086cpu能夠以16位的位址匯流排訪問到1mb的記憶體位址,採用的就是段位址 16 偏移位址 實體地址的方式,以16位位址匯流排訪問1mb的物理記憶體,8086時代訪問的位址...