2、段寄存器属性探测--Windows内核学习笔记

1、
1.1、想要成功的访问一块内存,必须具备2个条件:段机制、页机制
1.1、段寄存器是96位,里面的属性决定了段能不能读,能不能写的属性
1.2、应用层访问的地址不能超过0x7fffffff,因为这是页的机制,

2、Winodws特权保护机制
–80386的中断和异常
–80386的保护机制
–Windows的保护机制

  • 80386以后的处理器有3种模式 实模式、保护模式、虚拟8086模式

  • 只有再保护模式下,32位的CPU寻址才能达到4GB的地址空间,同时,也能实现多任务、内存分页管理和优先级保护等先进的机制

Windows7的启动过程

  • 1、开启电源
    计算机系统进行加电自检(POST),如果通过,之后BIOS回读取主引导区记录(MBR)—被标记为启动设备的硬盘的首扇区,并传送被Windows7建立的控制编码给MBR
    注:硬盘的0磁道的第一个扇区成为MBR,它的大小是512字节,结尾是0xAA55标记结尾,否则会报错,而这个区域可以分为两个部分。第一部分位pre - boot区(预启动区),占446字节,前面的446个字节是主引导区,介绍的是后面64个字节的内容
    第二部分是Partition table区(分区表),占用64个字节,该区相当于一个小程序,作用是判断那个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码.64个字节分为四个分区,每个分区占用16个字节,所以一个硬盘只能分四个总分区

  • MBR他是不属于任何操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但我们可以用ROM-BIOS中提供的INTI13H中断的2号功能来读出该扇区的内容

  • Windows启动管理器读取“启动配置数据存储(Boot Confi guration Data store)”中的信息,此信息包含已被安装再计算机上的所有操作系统的配置信息,并且用以生成启动菜单

  • 当您在启动菜单中选择下列动作时:
    如果您选择的是Windows 7,Windows启动挂历其(Windows boot Manager)运行%SystemRoot%\System32文件夹中的OS loador --Winload.exe

**

什么是内存分页机制?内存分页机制有什么用

	因为有的程序是STR驻留程序,会将内存隔开
	80386处理器的分页机制可以很好的解决这个问题,80386处理器把4KB大小的一块内存当作一页,每页物理内存可以根据页目录和页表随意映射到不同的线性地址上

2、段寄存器属性探测--Windows内核学习笔记_第1张图片

练习:
1、再Windbg中查看GDT表的基地址和长度
2、分别使用dd dq指令查看GDT表
3、段描述符查分实验 拆5个
2、段寄存器属性探测--Windows内核学习笔记_第2张图片

fffee3e8016a0975 Type = 0011,S = 0,DPL = 11 p = 1 G = 1 5be8e44d8bc033ff Type = 0100 P = 1 DPL = 11 S = 0
00010247e8fffd50 Type = 10 P = 0 DPL = 0 S = 0 cccccccccc0014c2
0cec81ec8b55ff8b Type 0001 P = 1 DPL = 0 S = 0 8054be40a1000002 Type = 1110 P = 1 DPL = 01 S = 1

4、段选择子拆分实验
23 RPL = 11 TI = 0 Index = 0100
2b RPL = 11 TI = 0 Index = 101
30 RPL = 0 TI = 0 Index = 110
3b RPL = 11 TI = 0 Index = 111
53 RPL = 11 TI = 0 Index = 1010

2、段寄存器属性探测--Windows内核学习笔记_第3张图片

课后思考:
写段寄存器的时候只给了16位置,那么剩下的80位从哪里来

你可能感兴趣的:(2、段寄存器属性探测--Windows内核学习笔记)