吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12568|回复: 35
收起左侧

[系统底层] CPU保护模式学习笔记

[复制链接]
xiaomi9nyxs 发表于 2019-12-3 22:29
段寄存器介绍

段寄存器的读写
mov ax, es  ;只能读16位可见部分,Selecter

读写 LDTR 指令  SLDT/LLDT
读写TR 指令  STR/LTR  //TSS

当执行指令 mov 段寄存器,Reg16 时, CPU会去查GDT表.
mov ds, ax  ;写的时候写96位

mov dword ptr ds:[0x12345678], eax
我们真正写的地址是ds.base + 0x12345678
DS/CS/SS/ES/FS/GS/LDTR/TR
段寄存器的结构,共96位
16位 Selecter(可见) + 32位Base + 32位 Limit + 16 位 Attribute

struct Segment
{
    WORD Selector;
    WORD Attributes;//可读可写可执行
    DWORD Base;
    DWORD Limit;
}
段名 段选择子 属性 Base Limit
ES 0023 可读可写 0 0xFFFFFFFF
CS 001B 可读可执行 0 0xFFFFFFFF
SS 0023 可读可写 0 0xFFFFFFFF
DS 0023 可读可写 0 0xFFFFFFFF
FS 003B 可读可写 0x7FFDE00 0xFFF
GS

几个证明段寄存器结构的例子:
CS段不可写的实例:
mov ax,ss
mov ds,ax
mov dword ptr ds:[var], eax

base 属性证明:
mov ax,fs
mov gs,ax
mov dword ptr ds:[var] , eax

Limit 属性证明:
mov ax,fs
mov gs,ax
mov eax,gs:[0x1000]  //超过了fs的Limit
mov eax,dword ptr ds:[0x7FFDE00 + 0x1000]
mov dword ptr ds:[var], eax

免费评分

参与人数 6吾爱币 +5 热心值 +5 收起 理由
江沉晚吟时. + 1 谢谢@Thanks!
白泽雪山 + 1 用心讨论,共获提升!
haungyexingdong + 1 + 1 我很赞同!
liyonghaod + 1 + 1 热心回复!
monsterbaby521 + 1 + 1 谢谢@Thanks!
爱你无敌 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| xiaomi9nyxs 发表于 2020-1-30 19:28
Joney强子 发表于 2019-12-5 19:50
楼主正在参考什么资料?  交流一下

滴水视频
Intel白皮书
Windows 核心编程
Windows 内核分析
etc.
wh7115 发表于 2019-12-5 13:56
wo0r1n 发表于 2019-12-5 14:28
13697i 发表于 2019-12-5 15:47
支持楼主!
awi0100hjz 发表于 2019-12-5 17:27
支持一下(虽然看不懂),不过我对电脑硬件也挺感兴趣的
污先生 发表于 2019-12-5 17:31
看不懂这是什么东西
那谁 发表于 2019-12-5 18:19
看不懂,很厉害的样子
Joney强子 发表于 2019-12-5 19:50
楼主正在参考什么资料?  交流一下
2Burhero 发表于 2019-12-6 00:59
路过暖贴
王成 发表于 2019-12-6 07:13
看标题很厉害的样子,但是没看懂!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 08:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表