我們知道程序在每次運行的時候地址都是不一樣的,linux之所以有這樣的設(shè)計也許是為了安全性考慮,不利于黑客的攻擊。
我們看一個簡單的程序:


顯然程序每次運行的地址都不一樣!
那么有沒有辦法讓相同程序每次運行的地址都一樣呢?
看到這里你也許會問為什么讓程序每次運行的地址都一樣,這不違背OS設(shè)計的初衷了嗎?是的,這的確違背 linux 內(nèi)核設(shè)計的初衷。但是實際項目中難免不會遇到奇葩的需求,比如有些app由于歷史的原因需要運行在指定地址上,那這時候就需要把地址空間隨機(jī)化關(guān)掉。再比如遇到隨機(jī)地址crash問題也可以用這種方法debug。
廢話少說,我們看下地址空間隨機(jī)化關(guān)掉的方法。

關(guān)掉后我們看下該程序的測試結(jié)果:

哇!地址一樣!
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Linux
+關(guān)注
關(guān)注
88文章
11806瀏覽量
219493 -
程序
+關(guān)注
關(guān)注
117文章
3847瀏覽量
85446 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
973瀏覽量
30683
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
虛擬機(jī)下載與安裝的步驟有哪些
是一種將計算機(jī)硬件虛擬化的技術(shù),它可以在一臺物理計算機(jī)上創(chuàng)建一個或多個獨立的虛擬計算機(jī),每個虛擬計算機(jī)都有自己的操作系統(tǒng)和應(yīng)用程序,并且獨立
創(chuàng)建ubuntu虛擬機(jī)
的存在形式,然后點擊“下一步”完成。指定磁盤文件,這里默認(rèn)即可。默認(rèn)點擊“完成”即可。至此,虛擬機(jī)創(chuàng)建完成。下一小節(jié)中我們介紹Ubuntu系統(tǒng)在虛擬機(jī)中的安裝,其
發(fā)表于 08-10 14:15
虛擬機(jī)及Ubuntu安裝步驟介紹
Mini板一些概念虛擬機(jī):相當(dāng)于將你的電腦的分離出部分資源虛擬出另一臺電腦Ubuntu:可以運行Linux的操作系統(tǒng)虛擬機(jī)及Ubuntu安裝步驟
發(fā)表于 12-15 08:58
虛擬機(jī)linux怎么編寫程序
虛擬機(jī)Linux上編寫程序,包括設(shè)置虛擬機(jī)、選擇編程工具、創(chuàng)建和編輯代碼、編譯和運行程序等等。讓我們開始吧! 第一部分:設(shè)置虛擬機(jī)
linux虛擬機(jī)怎么運行代碼
到虛擬機(jī)中,你就可以開始運行代碼了。在Linux中,有多種方式可以運行代碼,下面將介紹幾種常見的方法。 使用終端(Terminal)運行代碼
虛擬機(jī)如何運行c程序
虛擬機(jī)(Virtual Machine,VM)是一種模擬了物理計算機(jī)的軟件,可以在計算機(jī)上創(chuàng)建虛擬的硬件平臺,使得用戶可以在其中運行操作系統(tǒng)和應(yīng)用程
怎么安裝linux虛擬機(jī)
在計算機(jī)領(lǐng)域,虛擬機(jī)是一種軟件程序,它允許在主操作系統(tǒng)上運行多個虛擬操作系統(tǒng)。Linux
虛擬機(jī)的ip地址和主機(jī)一樣嗎
虛擬機(jī)的ip地址和主機(jī)一樣嗎? 虛擬機(jī)的IP地址和主機(jī)的IP地址通常不相同。虛擬機(jī)是
TECS OpenStack資源池虛擬機(jī)網(wǎng)絡(luò)二層地址無法互通的問題處理
某運營商TECS OpenStack使用主機(jī)overlay SDN方案組網(wǎng),運維人員在創(chuàng)建虛擬機(jī)測試虛擬機(jī)網(wǎng)絡(luò)狀態(tài)時發(fā)現(xiàn)問題:在其中一臺主機(jī)上創(chuàng)建兩臺同網(wǎng)段虛擬機(jī),
虛擬機(jī):程序在指定地址運行的步驟
評論