保护模式笔记一 保护模式介绍
本帖最后由 lyl610abc 于 2021-6-8 16:21 编辑# 前言
先前的PE系列暂时告一段落(后续可能会补充资源表的内容),终于来到了新篇章:保护模式
## 先前的系列
逆向基础系列可以回顾:[逆向基础笔记一 进制篇](https://www.52pojie.cn/thread-1379239-1-1.html)
PE系列可以回顾:(https://www.52pojie.cn/thread-1391994-1-1.html)
## 之后的系列
[保护模式笔记二 段寄存器](https://www.52pojie.cn/thread-1415421-1-1.html)
[保护模式笔记三 段描述符和段选择子](https://www.52pojie.cn/thread-1415961-1-1.html)
[保护模式笔记四 段描述符结构](https://www.52pojie.cn/thread-1416456-1-1.html)
[保护模式笔记五 段权限检查](https://www.52pojie.cn/thread-1422916-1-1.html)
[保护模式笔记六 代码跨段跳转](https://www.52pojie.cn/thread-1423484-1-1.html)
[保护模式笔记七 CALL 长调用与短调用](https://www.52pojie.cn/thread-1423894-1-1.html)
[保护模式笔记八 调用门提权(无参+有参)](https://www.52pojie.cn/thread-1454353-1-1.html)
[保护模式笔记九 中断门和IDT(中断描述符表)](https://www.52pojie.cn/thread-1455684-1-1.html)
------
# 保护模式
## 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体系结构软件开发人员手册合并卷](https://software.intel.com/content/dam/develop/external/us/en/documents-tps/325462-sdm-vol-1-2abcd-3abcd.pdf)
## 详细说明
本文档包含以下内容:
**第1卷:**介绍支持IA-32和Intel®64体系结构的处理器的体系结构和编程环境。
**第2卷:**包括完整的指令集参考AZ。描述说明的格式,并提供说明的参考页。
**第3卷:**包括完整的系统编程指南,第1、2、3和4部分。描述了Intel®64和IA-32体系结构的操作系统支持环境,包括:内存管理,保护,任务管理,中断和异常处理,多处理器支持,热和电源管理功能,调试,性能监控,系统管理模式,虚拟机扩展(VMX)指令,英特尔®虚拟化技术(英特尔®VT)和英特尔®软件保护扩展(英特尔®SGX) )。
**第4卷:**描述了支持IA-32和Intel®64体系结构的处理器的特定于模型的寄存器。
------ lswdla 发表于 2021-4-12 09:30
想学 实模式 虚拟8086模式 看什么书?希望楼主给个下载链接或书籍名称
关于虚拟8086可以参考这个博客:虚拟8086模式 AMD的可以用吗。用个五六天不关机,然后莫名的提示内存不够。打开管理器,cpu内存占比一半不到。但是就是提示内存不足,运行缓慢。。。。我已经没办法了
来看看; 了解; 这很深层; 谢谢分享!! 感谢楼主的分享 谢谢楼主分享。 谢谢楼主分享。 {:301_1004:}一下就开始冲到保护模式了 加油楼主,一直在跟着楼主学习 加油↖(^ω^)↗ 先mark一下,留存后面看