在乙個現代作業系統中,乙個程序如果想窺探系統中非自身所有的記憶體,有多少種漏洞或者方法可以利用?

時間 2021-05-12 00:04:38

1樓:帕安喬

沿著上面的幾個回答的思路簡單調研了一下,結論是通常情況下乙個程序訪問非自身的記憶體並不能簡單的說是正常的,至少這種這種功能不是提供給普通的程序使用的。相反的,為了支援多道程式並行,程序的非直接的、不可控的相互影響正是作業系統竭力要避免的,但是也存在以下兩種「非通常」的情況:

1.程序有root許可權。由於系統的管理員存在除錯程式,或臨時變更核心功能等需求,因此作業系統給這類程序特殊的介面,例如前面提到的/dev/mem這樣的方法去訪問本不屬於程序自己的記憶體。

2.系統或者應用程式有漏洞。有時候漏洞可以被用來提公升許可權,使得普通程序擁有root許可權,進而利用1中提到的介面。

另外一些時候漏洞不產生提權的效果,而是直接造成了其他程序甚至是遠端裝置的記憶體被讀取,例如心臟滴血攻擊。但是究竟針對各類系統都有哪些或者哪幾模擬較有名的漏洞,現在還歸納不全。

2樓:馮東

雖然「讀取其他程序的記憶體本來就是正常的作業系統提供的功能」,但是要正確的配置許可權來限制太容易了。所以正常情況下,unsolicited 的訪問其它程序記憶體只能靠 kernel 漏洞。

3樓:喻哼太

完全同意Tim Chen那句:

讀取其他程序的記憶體本來就是正常的作業系統提供的功能只說Linux,

可以用/proc/$pid/mem

可以ptrace(比如gdb)進去

可以用/dev/mem和/dev/kmem可以用LKM到核心裡想幹嘛幹嘛

所謂的漏洞只需要想辦法拿到root就可以了

4樓:Tim Chen

漏洞這麼多,怎麼寫得清楚。

讀取其他程序的記憶體本來就是正常的作業系統提供的功能,因為debugger必須要這個啊。

ReadProcessMemory function (Windows)

當然該程序需要有相應的許可權。所謂漏洞就是怎麼跳過許可權控制去做到這件事。

哪種作業系統可以相容另乙個作業系統的應用,但又不 基於 它?

linux,macos通過wine專案,不基於windows,相容exe。黑莓系統,曾經相容過安卓。好像諾基亞也相容過安卓。windows有個專案要相容安卓。windows 的wsl2 桃花島主 FreeBSD啊,可以通過Linux相容層跑Linux應用 不需要重新編譯 也可以直接載入Windows...

能用VHDL語言寫乙個作業系統嗎,實時作業系統之類的?

靈劍 先用VHDL寫乙個軟核和乙個ROM,然後往ROM裡載入靜態的bin檔案,再為生成這個bin檔案寫乙個C編譯器 要知道,實際上現在的x86 CPU的硬體指令都是這麼實現的 精簡核 微指令ROM 所以比這還複雜的作業系統,我猜大概也這麼實現比較好 如果要說可能還是不可能的話 我認為是可能的 畢竟語...

怎樣自己寫乙個簡單的作業系統?

長纓 現在作業系統的工程開發已經很少重新開發核心了,一般都是在某個作業系統的核心基礎上結合各種第三方開源庫開發發行版,比如Linux的各種桌面和嵌入式發行版 Android Firefox OS Chrome OS Tizen等等。 石緯 瀉邀。可以參考CMU的Operating System De...