lyl610abc 发表于 2021-4-11 11:44

保护模式笔记一 保护模式介绍

本帖最后由 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体系结构的处理器的特定于模型的寄存器。

------

lyl610abc 发表于 2021-4-12 11:09

lswdla 发表于 2021-4-12 09:30
想学        实模式        虚拟8086模式   看什么书?希望楼主给个下载链接或书籍名称

关于虚拟8086可以参考这个博客:虚拟8086模式

geuoll 发表于 2021-4-11 15:19

AMD的可以用吗。用个五六天不关机,然后莫名的提示内存不够。打开管理器,cpu内存占比一半不到。但是就是提示内存不足,运行缓慢。。。。我已经没办法了

52changew 发表于 2021-4-11 11:57

来看看; 了解; 这很深层; 谢谢分享!!

十一不是一 发表于 2021-4-11 12:54

感谢楼主的分享

cherrypi 发表于 2021-4-11 13:00

谢谢楼主分享。

whngomj 发表于 2021-4-11 13:28

谢谢楼主分享。

gdf87521 发表于 2021-4-11 13:29

{:301_1004:}一下就开始冲到保护模式了

icefeng199 发表于 2021-4-11 14:52

加油楼主,一直在跟着楼主学习

python小甲鱼 发表于 2021-4-11 19:54

加油↖(^ω^)↗

yaojiahong 发表于 2021-4-11 20:47

先mark一下,留存后面看
页: [1] 2 3 4
查看完整版本: 保护模式笔记一 保护模式介绍