Linux
如何檢測 linux 核心模組中的記憶體安全錯誤?
在過去的一周裡,我正在研究一個簡單的核心模組,它創建了一個允許在使用者和核心空間之間傳遞消息的字元設備驅動程序。
一切都很好,我找到了 KEDR ( https://github.com/euspectre/kedr ),現在我可以檢測到記憶體洩漏。
但是,問題是:有沒有辦法檢測越界訪問和任何其他錯誤,例如未初始化的記憶體等?在使用者空間程序中,我們有時可能會看到segfault,或者我們可以使用valgrind來嘗試檢測大多數這些錯誤。
我試圖人為地寫出數組的界限,作業系統沒有抱怨。
KASAN與 KASAN非常接近
memcheck
,這就是您所說的意思valgrind
。它是核心地址清理器
$$ LWN.net 2014 $$. 另請參閱基於軟體標籤的 KASAN $$ LWN.net 2018 $$.