2013-05-09 96 views
3

我正在爲我的操作系統類寫一個rootkit(老師在我這裏尋求幫助的時候沒問題)。我的rootkit掛接sys_read系統調用來隱藏用戶的「魔術」端口。當我將用戶緩衝區* buf(sys_read的參數之一)複製到內核空間(到一個名爲kbuf的緩衝區)時,出現內核恐慌/核心轉儲錯誤。這可能是因爲違反閱讀條款會導致系統停止運行,但我想知道是否有人對此有任何看法。Kernel Panic - 失敗的copy_from_user,kmalloc?

該代碼在線提供。看看第207行:https://github.com/joshimhoff/toykit/blob/master/toykit.c

我掛鉤了getdent,並使用copy_from_user將getdents結構帶入內核空間,這很好用!我不確定閱讀有什麼不同。

感謝您的幫助!

回答

1

我想通了。我調用了實際的sys_read函數,並沒有檢查返回值。有時候表示錯誤是負面的。我沒有提前失敗,而是問了kmalloc負數的字節數。

想象一下。分配負面記憶。那將是一個瘋狂的世界。

+0

這將是一個瘋狂的世界! – cpimhoff 2016-08-13 05:54:55