首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >内核如何保护模式位(PSW)不被用户程序修改?

内核如何保护模式位(PSW)不被用户程序修改?
EN

Stack Overflow用户
提问于 2013-06-11 13:21:02
回答 1查看 1.3K关注 0票数 0

我知道CPU根据程序状态字区分内核模式和用户模式,但假设用户程序试图通过访问内核代码来获得未经授权的访问权限,以调用系统调用。在CPU架构中有哪些防御机制来防止这种利用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 18:09:17

大多数架构都有特权级别,在x86中它们被称为“环”。它们是分配给地址空间中某些位置的特权级别,定义了该空间中的代码可以执行的特权指令的类型。

程序无法修改这些代表特权级别的位,因为它们驻留在页表中,页表保存在内核空间中。代码访问此空间的任何尝试都会被CPU捕获,并被操作系统捕获,这取决于您使用的操作系统,这就是所谓的分页或分段错误。

此外,程序不能执行特殊指令,例如访问DMA控制器,这将允许它们访问内核空间,因为它们被认为是有特权的。用户代码使用这种特殊指令的任何尝试也会导致CPU中的故障,该故障被操作系统捕获。

因此,在一个设计良好的操作系统中,内存空间保护(即程序不能修改内核数据结构)和特权指令保护的组合使系统变得安全。程序通常无法提升其权限,因为所有尝试都会导致CPU出现故障,而操作系统会捕获该故障。然后,操作系统可以杀死该违规程序。

要更详细地了解这些内容在x86架构中是如何协同工作的,请访问OSdev的安全性维基页面:

http://wiki.osdev.org/Security

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17045169

复制
相关文章
内核态和用户态
只能执行机器的部分指令,使用全部指令集的一个子集。能影响机器的控制指令或者是I/O操作指令,在用户态都是不被允许的。当然也不能更改PSW中模式位为内核态。
zy010101
2020/08/20
1.5K0
如何开启保护模式
实模式下的内存访问形式是段基址左移16位+段内偏移地址,实模式下的寄存器是16位,也就是说CPU最大可以放到的地址是0xFFFF0+0xFFFF,即0x10FFEF。
shysh95
2021/07/16
1K0
用户态/内核态、用户栈/内核栈
内核态就是拥有资源多的状态,或者说访问资源多的状态,也称为特权态。相对来说,用户态就是非特权态,访问的而资源将受到限制。如果一个程序运行在特权态,该程序就可以访问计算机的任何资源,它的资源访问权限不受限制。如果一个程序运行在用户态,其资源需求将受到各种限制。如:要访问操作系统的内核数据结构,如进程表,则需要在特选态下才能办到。如果要访问用户程序里的数据,在用户态即可。
233333
2018/09/14
2K0
64位内核第一讲,和32位内核的区别
          64位内核第一讲,和32位内核的区别 双击调试配置请查看 连接: https://www.cnblogs.com/aliflycoris/p/5877323.html 一丶编译的区
IBinary
2018/03/30
1.6K0
64位内核第一讲,和32位内核的区别
如何让service不被杀死
1.在service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建 @Override     public int onStartCommand(Intent intent, int flags, int startId) {         return START_STICKY;     }   @Override         public int onStartCommand(Intent intent, int flag
xiangzhihong
2018/01/29
1.1K0
64位 & Windows 内核6
继续学习《逆向工程核心原理》,本篇笔记是第五部分:64位 & Windows 内核6
红客突击队
2022/09/29
6900
64位 & Windows 内核6
如何查看Linux内核是否为64位版本?
方法非常简单,LINUX提供了一个查看配置的命令(实际有相应的库函数)getconf,使用它即可,方法如下: getconf LONG_BIT 如果返回64,就表示为64位内核,否则应当返回32。
一见
2018/08/07
1.3K0
用户态、内核态
我们线程是程序运行的最小单位。我们Java进程使用线程操作的时候,本质还是底层原生操作系统级别的线程操作。比如Java调用阻塞、唤醒一个线程的时候,我们就需要在用户态、内核态之间切换线程的状态。
收心
2022/11/14
8030
如何让你产品不被淘汰
从互联网时代开始,再到现在的智能时代,听得最多的就是你什么也没做错,就是因为输给了这个时代。今天这家公司倒闭啦,明天又一巨头倒下,像索尼好像在互联网上已经倒闭了很多次了。把这个快速变化的时代说得神忽其神。从切身感受来讲,我们处于一个快速变化的时代。但是我今天想说一个观点,与其抱怨这个世界的快速变化,抱怨你自己落后了,埋怨被颠覆,不如说是你自己没有搞清楚事物的核心本质,你存在的理由都没搞明白,跟不上步伐被淘汰是难免。
脑袋长草
2020/06/10
1.2K0
内核态与用户态_linux内核态和用户态通信
1、高位地址:栈(存放着局部变量和函数参数等数据),向下生长 (可读可写可执行)
全栈程序员站长
2022/10/01
1.8K0
电脑小白如何不被“勒索”
最近上了各大头条的勒索病毒我想大家都有所耳闻。不幸中招的朋友,请允许我拍拍你的肩膀。设身处地地想一下,眼看就要毕业了,结果论文没了……换了谁都不能忍啊。可是你也没啥办法,在国内想付赎金都不容易,况且付了也未必能解。 好在现在也出了一些补救措施,不管是恢复文件法还是内存破解法,反正死马当活马医吧。还没中招的,趁早去安装系统更新,关闭445端口。这些解决方案网上很容易搜到。 然而人们总是健忘的,这件事情的新闻热度很快就会过去。但这肯定不是结局,甚至很可能只是个开始。所以趁暂时尘埃落定,给非技术的朋友一点科普性质
Crossin先生
2018/04/17
1.2K0
电脑小白如何不被“勒索”
一、保护模式
二进制:00000000 1100 1111 1 11 1 0011 00000000
zhang_derek
2022/09/21
1.3K0
一、保护模式
汇编知识扫盲之16位汇编跟32位汇编的保护模式以及汇编代码编写
  逻辑地址: 这个是邮编一起生成的.逻辑地址一般都是 段加段内偏移组成的.每个进程独享.
IBinary
2019/05/25
1.9K0
linux中用户态和内核态是什么_用户态内核
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
1.5K0
一文详解 32 位保护模式与内存分段机制
此前我们对操作系统中的分段、分页机制以及虚拟地址、逻辑地址、线性地址、物理地址进行了较为详细的介绍。 操作系统的内存管理 — 分段与分页、虚拟地址、逻辑地址、线性地址、物理地址
用户3147702
2022/06/27
1.3K0
一文详解 32 位保护模式与内存分段机制
如何保证API不被别人恶意调用
我记得小编在上家公司遇到一个很奇葩的事,我刚写了一个发短信的接口,感觉自己浑身都飘起来了,
猿码优创
2019/07/28
2.3K0
如何使用Speakeasy实现Windows内核和用户模式仿真
Speakeasy是一款功能强大的模块化二进制模拟器,旨在帮助广大研究人员模拟Windows内核以及用户模式恶意软件。
FB客服
2021/10/11
9320
linux 内核态与用户态_linux内核态和用户态通信
在kernel module中调用printk是最简单的传递信息到用户空间的方法。
全栈程序员站长
2022/10/02
2.1K0
如何封装不被嫌弃的组件SDK
你在一家小互联网公司做前端。最近公司发展势头不错,已经有了稳定的商业模式。老板决定尝试付费推广。
公众号@魔术师卡颂
2021/05/08
9790
如何封装不被嫌弃的组件SDK
如何保证系统不被突发的流量压垮?
确保系统的高可用,要做的事情非常多,比如使用 Redis 缓存数据库的数据,降低数据库的压力,同时也要注意缓存穿透、雪崩、击穿等问题;但要是说到“不被突发的流量压垮”,通常就会到我们常说的分布式架构三板斧:限流、熔断、降级。
JAVA葵花宝典
2020/04/15
3910

相似问题

64位内核,32/64位用户

10

启动32位保护模式

10

IRQ和iret指令语义在32位内核(保护模式)上的工作

14

C++ - 32位保护模式

14

显示PSW内容

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文