假設我正在啓動同一程序的兩個實例。兩個程序的文本區域是否具有相同的虛擬地址?虛擬地址
Q
虛擬地址
1
A
回答
0
可能不是,但它可能會。每個進程都有自己獨立的內存空間。
1
取決於。在大多數系統中,如果在相同的環境(相同的參數等)中運行相同的程序兩次,則會發現相同的地址映射。這很簡單,因爲大部分流程所做的工作都是確定性的,僅取決於環境,命令行參數,讀取的文件內容,而不是更改數據(如日期或進程ID)。這在調試時非常有用:如果您重新啓動程序,有時甚至在更改和重新編譯小代碼後,內存佈局仍可能保持不變。當然,並行運行的程序的不同實例可能具有相同的虛擬地址,但它們不會具有相同的物理地址。
某些系統(如OpenBSD或具有各種強化設置的Linux)實施address space layout randomization (ASLR)。 ASLR意味着每次進程啓動時,其代碼,數據,堆棧和堆的虛擬地址都是隨機確定的。這是一項安全功能,旨在加強安全漏洞的攻擊:攻擊代碼不能只訪問已知地址處的已知代碼。但是,隨着ASLR變得越來越流行,漏洞利用也變得更加複雜。 ASLR仍然很有用,因爲它增加了漏洞利用程序的工作量,卻不會增加很多複雜性。
相關問題
- 1. 虛擬IP地址
- 2. VA(虛擬地址)&RVA(相對虛擬地址)
- 3. 物理地址與虛擬地址
- 4. 檢測虛擬MAC地址?
- 5. 虛擬地址空間
- 6. 虛擬地址混淆
- 7. 86虛擬地址長度
- 8. outlook 2010虛擬地址簿
- 9. 邏輯和虛擬地址
- 10. 虛擬公共IP地址
- 11. 虛擬與物理地址
- 12. Azure虛擬機IP地址
- 13. PTE中的條目是物理地址還是虛擬地址? |虛擬內存
- 14. 虛擬地址空間vs虛擬內存
- 15. Windows PE determine入口點虛擬地址
- 16. 如何翻譯虛擬地址?
- 17. 問題創建虛擬IP地址java
- 18. 如何查找Android虛擬機地址?
- 19. 獲取KVM Guest虛擬機IP地址
- 20. 翻譯虛擬和實體地址
- 21. ELF中的虛擬和物理地址
- 22. 檢查虛擬內存地址
- 23. 虛擬內存地址在哪裏?
- 24. 獲取虛擬機的IP地址
- 25. Linux 3/1虛擬地址分割
- 26. 虛擬地址大小計算
- 27. 虛擬地址空間和尋呼
- 28. 在虛擬地址加載圖像0X00000
- 29. 轉換DMA映射虛擬地址
- 30. 如何分頁虛擬地址空間?