本帖最后由 lyl610abc 于 2021-6-8 16:21 编辑
前言
先前的PE系列暂时告一段落(后续可能会补充资源表的内容),终于来到了新篇章:保护模式
先前的系列
逆向基础系列可以回顾:逆向基础笔记一 进制篇
PE系列可以回顾:PE文件笔记一 PE介绍
之后的系列
保护模式笔记二 段寄存器
保护模式笔记三 段描述符和段选择子
保护模式笔记四 段描述符结构
保护模式笔记五 段权限检查
保护模式笔记六 代码跨段跳转
保护模式笔记七 CALL 长调用与短调用
保护模式笔记八 调用门提权(无参+有参)
保护模式笔记九 中断门和IDT(中断描述符表)
保护模式
x86 CPU的三种模式
x86 CPU有3种模式:实模式、保护模式和虚拟8086模式
现在的操作系统大多都是处于保护模式下
|
实模式 |
保护模式 |
虚拟8086模式 |
内存寻址方式 |
段式寻址 |
支持内存分页和虚拟内存 |
段式寻址 |
寻址范围 |
任意寻址 |
有限 |
任意寻址 |
举例系统 |
dos系统 |
Windows系统 |
? |
上面只是简单列举了三种模式的一些区别,具体细节不作深入
只需要明确一点:保护模式相比于其它两种模式,根本在于进程内存受到了保护
x86和x64
想必不少人会疑问,现在大多数计算机都是x64的了,为什么还在讲x86?
因为x64是向下兼容x86的
- x86:由Intel推出的一种复杂指令集,能够生产支持这种指令集CPU公司主要是Intel和AMD
- x64:AMD在1999年的时候,拓展了这套指令集,称为x86-64,后改名为AMD64,Intel也兼容了这个产品,称为Intel 64.但AMD64和Intel64,几乎是一样的,所以在很多资料中统称为x64
什么是保护模式
保护模式是基于安全性和稳定性的考量而产生的一种CPU模式
保护模式的两大特点
前面说过保护模式区别于其它两种模式的根本是在进程内存上
所以保护模式的两大特点也是基于内存的:
为什么要学习保护模式
因为现在的Window系统都是基于保护模式运作的
所以学习保护模式后才能真正地理解内核是如何运作的
并且通过保护模式的知识,可以实现 提权操作(在应用层做到内核层才能做的事)
不了解保护模式,就相当于写的程序不过是在调用WinAPI而已:在应用层(ring3)调用应用层API,在内核层(ring0)调用内核层API
并且由于保护模式对进程内存的保护,在学习它之后,能够对内存有进一步的认识
参考书籍
英特尔®64和IA-32体系结构软件开发人员手册合并卷
详细说明
本文档包含以下内容:
第1卷:介绍支持IA-32和Intel®64体系结构的处理器的体系结构和编程环境。
第2卷:包括完整的指令集参考AZ。描述说明的格式,并提供说明的参考页。
第3卷:包括完整的系统编程指南,第1、2、3和4部分。描述了Intel®64和IA-32体系结构的操作系统支持环境,包括:内存管理,保护,任务管理,中断和异常处理,多处理器支持,热和电源管理功能,调试,性能监控,系统管理模式,虚拟机扩展(VMX)指令,英特尔®虚拟化技术(英特尔®VT)和英特尔®软件保护扩展(英特尔®SGX) )。
第4卷:描述了支持IA-32和Intel®64体系结构的处理器的特定于模型的寄存器。
|