我們知道程序在每次運行的時候地址都是不一樣的,linux之所以有這樣的設計也許是為了安全性考慮,不利于黑客的攻擊。
我們看一個簡單的程序:
顯然程序每次運行的地址都不一樣!
那么有沒有辦法讓相同程序每次運行的地址都一樣呢?
看到這里你也許會問為什么讓程序每次運行的地址都一樣,這不違背OS設計的初衷了嗎?是的,這的確違背 linux 內核設計的初衷。但是實際項目中難免不會遇到奇葩的需求,比如有些app由于歷史的原因需要運行在指定地址上,那這時候就需要把地址空間隨機化關掉。再比如遇到隨機地址crash問題也可以用這種方法debug。
廢話少說,我們看下地址空間隨機化關掉的方法。
關掉后我們看下該程序的測試結果:
哇!地址一樣!
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Linux
+關注
關注
87文章
11345瀏覽量
210402 -
程序
+關注
關注
117文章
3796瀏覽量
81416 -
虛擬機
+關注
關注
1文章
940瀏覽量
28427
發布評論請先 登錄
相關推薦
創建ubuntu虛擬機
的存在形式,然后點擊“下一步”完成。指定磁盤文件,這里默認即可。默認點擊“完成”即可。至此,虛擬機創建完成。下一小節中我們介紹Ubuntu系統在虛擬機中的安裝,其
發表于 08-10 14:15
虛擬機及Ubuntu安裝步驟介紹
Mini板一些概念虛擬機:相當于將你的電腦的分離出部分資源虛擬出另一臺電腦Ubuntu:可以運行Linux的操作系統虛擬機及Ubuntu安裝步驟
發表于 12-15 08:58
虛擬機linux怎么編寫程序
虛擬機Linux上編寫程序,包括設置虛擬機、選擇編程工具、創建和編輯代碼、編譯和運行程序等等。讓我們開始吧! 第一部分:設置虛擬機
linux虛擬機怎么運行代碼
到虛擬機中,你就可以開始運行代碼了。在Linux中,有多種方式可以運行代碼,下面將介紹幾種常見的方法。 使用終端(Terminal)運行代碼
虛擬機如何運行c程序
虛擬機(Virtual Machine,VM)是一種模擬了物理計算機的軟件,可以在計算機上創建虛擬的硬件平臺,使得用戶可以在其中運行操作系統和應用程
評論