吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11296|回复: 56
收起左侧

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

  [复制链接]
xiaomi9nyxs 发表于 2020-2-10 08:32

GDT

段寄存器存储了在GDT/LDT表中的索引
GDT 全局描述符
LDT 局部描述符
如何查看:
在windbg中输入

kd> r gdtr  //GDT寄存器,48位,查看表的位置
kd> r gdtl   //获得GDT表长度
kd> dq 8003f000 L40   //每个段描述符长度是8个字节, WinDbg中可以使用dq命令按8字节查看内存. 

段描述符

GDT 里存储的元素称为段描述符,每个段描述符8个字节,64位

段选择子  Selector

16位的段描述符存在在段寄存器中,是可见的它包含:
2位RPL 请求特权级别  1:0,11=3,代表3环,00=0,代表0环
1位Table Indicator  2  当是0为GDT表,当是1为LDT表,Windows没有使用
13位Index 15:3,对应的GDT表中的第几个64位数据
段选择子.jpg

加载段描述符至段寄存器
LES/LSS/LDS/LFS/LGS
CS 不能通过指令修改,CS是代码段,CS的改变会导致EIP的改变,Intel没有提供单独修改CS的指令.

char buffer[6];
__asm{
    les ecx, fword ptr ds:[buffer]    //高2个字节给ES,低4个字节给ECX
}

注意:RPL <= DPL
段描述符有64位,需要填充80位,怎么填充

免费评分

参与人数 9吾爱币 +9 热心值 +6 收起 理由
香烟烈酒无睡意 + 1 + 1 谢谢@Thanks!
clevey + 1 谢谢@Thanks!
我爱你妞妞 + 1 我很赞同!
h81158807 + 1 + 1 我很赞同
CHINAWSF + 1 + 1 热心回复!
噺菂の天 + 1 我很赞同!
monsterbaby521 + 1 + 1 谢谢@Thanks!
冰雪冬樱250 + 1 + 1 谢谢@Thanks!
jnez112358 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

vimfkyou 发表于 2020-2-10 08:45
学习一下,收藏收藏
wobzhidao 发表于 2020-2-10 08:46
头像被屏蔽
lmh88lmh 发表于 2020-2-10 09:12
jnez112358 发表于 2020-2-10 09:31
谢谢楼主分享,学习中
冰雪冬樱250 发表于 2020-2-10 09:43
感谢楼主分享,学习中
bxf2020 发表于 2020-2-10 10:06
感谢分享!!
二又二分之一 发表于 2020-2-10 10:27
感谢分享!
EgoYau 发表于 2020-2-10 10:32
学习了,大佬给力
qqyyh 发表于 2020-2-10 10:37
谢谢!补充大脑!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-3-29 17:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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