2013-07-24 22 views
0

如果我想掛鉤sys_read然後我可以使用sysent [SYS_read] .sy_call鉤住函數。freebsd驅動程序掛接mi_switch

但是我怎樣才能鉤mi_switch?除了運行時內核內存補丁之外沒有別的辦法嗎?

帶有運行時內存補丁我假設我應該添加一條指令並從mi_switch調用我的系統調用。

+0

從用戶空間還是從內核空間? mi_switch不是系統調用,它是內核的內部。 –

+0

是的正是這個問題,它不是一個系統調用:D對我來說沒有區別,想要從用戶空間或內核空間中修補它。 –

回答

0

一個可能的但真正骯髒的伎倆可能是設置kdb_active並調用kdb_jumpbuf() 來操縱kdb_jmpbufp。 然後讓kdb_reenter()中的longjmp()結束於你的函數中。