软件安全学习笔记(3):Windows内存结构和管理

一、CPU特权级与内存访问

虚拟内存中用户模式区和内核模式区对应,处理器也分为用户模式(Ring 3)和内核模式(Ring 0)

用户程序一般运行在用户模式,其访问内存空间也局限于用户区

操作系统内核代码(如系统服务和设备趋同程序),则运行在内核模式,可以访问所有内存空间,使用所有处理器指令


二、用户内存

用户区是每个进程真正独立的可用内存空间,运行中的大部分数据都保存在这里。

每个进程的用户区的虚拟内存相互独立


三、内核区内存

数据被所有进程共享,是操作系统代码的驻地。分区中所有代码和数据都被操作系统保护,用户区代码无法直接访问。


四、虚拟地址与物理地址

x86 widows默认使用二级页表来把虚拟地址转换为物理地址,默认页面大小为4K。

一个32位地址划分为三个部分:页目录索引(10位)、页表索引(10位)和字节索引(12位)

页目录:通过CR3寄存器获得该进程页目录

通过虚拟地址中的高10位,在页目录中找到对应的PDN(页目录项,其指向页表),再通过页表索引在页表中找到PTE(页表项,指向虚拟页面所映射的物理地址),PTE中的地址和字节索引之和就得到了目标地址。

你可能感兴趣的:(软件安全学习笔记(3):Windows内存结构和管理)