2016-10-23 20 views
4

爲什麼從用戶空間調用內核空間的回調函數被認爲是「壞」,而在用戶空間中調用用戶空間的回調函數呢?爲什麼在內核模式下執行回調函數不好?

+0

[用戶模式與內核模式中的回調函數]可能的重複(http://stackoverflow.com/questions/36266834/callback-function-in-user-mode-vs-kernel-mode) –

+0

答案前面的問題含糊不清。 – Nadeemm

+0

你能詳細說說你的意思嗎?你是指從用戶空間調用內核空間的回調函數,還是從用戶空間調用用戶空間的回調函數?或者你的意思是從內核空間調用內核空間的回調函數,或者是從用戶空間調用用戶空間的回調函數? – glauxosdever

回答

3

允許用戶在內核模式下執行代碼將是一個巨大的安全風險。也就是說,如果用戶空間程序在內核模式下執行,那麼就不是安全性:遊戲完全丟失,用戶可以完全訪問所有人和所有內容。

請注意,如果您在內核模式下執行,虛擬內存查找不再受特權級別的保護。在x86中,當處於內核模式時,您的權限級別爲0;這意味着你可以訪問任何物理內存。所以,如果一個進程的回調函數在內核空間中執行,那麼它可以在機器上做任何事情。

想抹去每個人的頁面表嗎? K.想改爲查看這些頁表中的內容?你說對了。想要清零內核內存並導致整個系統崩潰?洛爾斯好主意。想要破解機器上的另一個進程,以便記錄其I/O流量?似乎是合法的。

不要讓用戶在內核空間中運行代碼。

相關問題