2015-01-16 3 views
0

Im пытается перехватить метод __do_page_fault() в ядре linux. Нормальный способ регистрации kprobes, то есть определение, как kp.addrKprobe механизм для перехвата do_page_fault

kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("__do_page_fault"); 

не работает. Каков правильный способ сделать это?

Редактировать: Любой другой метод перехвата do_page_fault также будет работать для меня.

+0

Пожалуйста, уточните, что вы подразумеваете под словом "not working". Есть ли ошибка? Что-то другое? – ptd

+0

При выполнении insmod, я получаю сообщение об ошибке: «ОШИБКА: не удалось вставить модуль : Неверные параметры» – user1344

+0

Редактировать свой вопрос, чтобы вставить полный модуль –

ответ

1

Эта ошибка обычно возникает, когда лицензии GPL не используются в модуле. Добавление следующих строк в ваш модуль должно устранить эту ошибку:

MODULE_LICENSE("GPL"); 
MODULE_LICENSE("GPL v2"); 
+0

Ну, я нахожу, что (по крайней мере) на недавнем ядре (я смотрю на Источник 4.4.0-rc6), процедура __do_page_fault помечена NOKPROBE_SYMBOL (__ do_page_fault); макрос в конце определения функции. Кроме того,/sys/kernel/debug/kprobes/blacklist подтверждает, что он включен в черный список. Итак, просто любопытно, как это работает? – kaiwan

Смежные вопросы