我们知道程序在每次运行的时候地址都是不一样的,linux之所以有这样的设计也许是为了安全性考虑,不利于黑客的攻击。
我们看一个简单的程序:
显然程序每次运行的地址都不一样!
那么有没有办法让相同程序每次运行的地址都一样呢?
看到这里你也许会问为什么让程序每次运行的地址都一样,这不违背OS设计的初衷了吗?是的,这的确违背 linux 内核设计的初衷。但是实际项目中难免不会遇到奇葩的需求,比如有些app由于历史的原因需要运行在指定地址上,那这时候就需要把地址空间随机化关掉。再比如遇到随机地址crash问题也可以用这种方法debug。
废话少说,我们看下地址空间随机化关掉的方法。
关掉后我们看下该程序的测试结果:
哇!地址一样!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Linux
+关注
关注
87文章
11292浏览量
209329 -
程序
+关注
关注
117文章
3785浏览量
81004 -
虚拟机
+关注
关注
1文章
914浏览量
28160
发布评论请先 登录
相关推荐
创建ubuntu虚拟机
的存在形式,然后点击“下一步”完成。指定磁盘文件,这里默认即可。默认点击“完成”即可。至此,虚拟机创建完成。下一小节中我们介绍Ubuntu系统在虚拟机中的安装,其
发表于 08-10 14:15
虚拟机及Ubuntu安装步骤介绍
Mini板一些概念虚拟机:相当于将你的电脑的分离出部分资源虚拟出另一台电脑Ubuntu:可以运行Linux的操作系统虚拟机及Ubuntu安装步骤
发表于 12-15 08:58
虚拟机linux怎么编写程序
虚拟机Linux上编写程序,包括设置虚拟机、选择编程工具、创建和编辑代码、编译和运行程序等等。让我们开始吧! 第一部分:设置虚拟机
linux虚拟机怎么运行代码
到虚拟机中,你就可以开始运行代码了。在Linux中,有多种方式可以运行代码,下面将介绍几种常见的方法。 使用终端(Terminal)运行代码
虚拟机如何运行c程序
虚拟机(Virtual Machine,VM)是一种模拟了物理计算机的软件,可以在计算机上创建虚拟的硬件平台,使得用户可以在其中运行操作系统和应用程
评论