x86架构的一个瑕疵--可执行保护

简介:

很久以前,曾经写过一篇关于如何保护栈不可执行的文章《栈的保护--windows和linux》,文章的最后谈到了一种很好的方式,就是不用段式保护机制而使用页式保护机制,在页表项中做文章,但是这种方式有一个前提就是页表项必须支持可执行位,传统的x86 是不支持的,也就是说传统的x86处理器仅仅支持读写保护,不支持可执行保护,这么说来如果不用段式保护,纯粹的页式保护是不可能做到保护数据不可执行的。很多文档上说段式机制已经成了鸡肋,纯粹是为了兼容而保留的,现在看来为了实现不可执行保护必须用段式机制,我不知道这是不是x86架构的缺陷,在 linux的源代码中,有下列定义:

#define _PAGE_NX (1ULL<<_PAGE_BIT_NX)

#else

#define _PAGE_NX 0

#endif

#define PAGE_SHARED_EXEC /

__pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED)

#define PAGE_COPY_NOEXEC /

__pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_NX)

可以看出,传统的x86处理器是不支持NX位的,但是看看PPC,是支持的。因此x86处理器下的个人PC会危机重重,更严重的是一片混乱,代码中到处挂钩子而没有什么好的底层机制可以禁止,不管是病毒还是安全软件本身都是都采用了一些不太雅观的方式,也许是以暴制暴吧,另外仅仅由于页表项没有支持NX位,这样就多了几种缓冲区溢出的方式,可是正是由于x86的这种乱七八糟的松散设计才使得很多安全厂商得以生存,因为它们和恶意代码在同一条船上。



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274123

相关文章
|
22天前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
143 3
|
10天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
30天前
|
机器学习/深度学习 算法 数据库
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
在我们选择阿里云服务器的架构时,选择合适的云服务器架构对于提升业务效率、保障业务稳定至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供参考和选择。
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
|
13天前
|
缓存
计算机X86架构
【9月更文挑战第7天】计算机的基本工作原理,重点阐述了CPU(中央处理器)及其内部结构,包括运算单元、数据单元和控制单元的功能。文中还解释了内存、总线(地址总线和数据总线)的作用,并简述了x86架构与操作系统交互的关键部分及基本指令集。
|
1月前
|
Android开发 开发者
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
54 1
|
18天前
x86体系架构学习
x86体系架构学习
|
1月前
|
存储 缓存 监控
X86架构服务器硬件设计
8月更文挑战第16天
49 0
|
2月前
|
大数据 数据处理 数据中心
x86和x64架构的区别及应用
x86和x64架构的区别及应用
|
2月前
|
大数据 数据处理 数据中心
x86和x64架构的区别及应用
x86和x64架构的区别及应用
|
3月前
|
物联网
arm架构和x86架构区别
arm架构和x86架构区别

热门文章

最新文章