我試圖在linux內核中攔截__do_page_fault()
方法。註冊kprobes
正常方式,即限定kp.addr
作爲Kprobe機制攔截do_page_fault
kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("__do_page_fault");
不工作。什麼是正確的方法來做到這一點?
編輯: 攔截do_page_fault的其他方法也適用於我。
我試圖在linux內核中攔截__do_page_fault()
方法。註冊kprobes
正常方式,即限定kp.addr
作爲Kprobe機制攔截do_page_fault
kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("__do_page_fault");
不工作。什麼是正確的方法來做到這一點?
編輯: 攔截do_page_fault的其他方法也適用於我。
當模塊中未使用GPL許可證時,通常會出現此錯誤。在模塊中添加以下行應刪除此錯誤:
MODULE_LICENSE("GPL");
MODULE_LICENSE("GPL v2");
嗯,我發現(至少)在最近的內核上4.4.0-rc6源),__do_page_fault例程標記爲 NOKPROBE_SYMBOL(__ do_page_fault); 宏在函數定義的末尾。 此外,/ sys/kernel/debug/kprobes/blacklist確認它被列入黑名單。 所以,只是好奇,它怎麼工作? – kaiwan
請指定「不工作」的含義。有錯誤嗎?還有別的嗎? – ptd
在執行insmod時,出現錯誤:「錯誤:無法插入模塊:無效的參數」 –
user1344
編輯您的問題以粘貼完整模塊 –