kprobe vs uprobe интерпозиция системного вызова

Я хочу написать интерпозицию системного вызова с помощью Utrace. Я так понял, что проект Utrace заброшен, но часть его кода используется на kprobe и uprobe.

Я не очень хорошо понял, как они работают. Особенно uprobe Можете ли вы объяснить, какая разница существует между ними? И могу ли я использовать uprobe без написания модуля для проверки того, какие параметры являются фактическими для системного вызова?

Благодарность


person Giuseppe Pes    schedule 26.12.2012    source источник
comment
Почему вы отметили linux-device-driver и selinux?   -  person Matheus Santana    schedule 03.04.2018


Ответы (1)


Kprobe создает и управляет контрольными точками в коде ядра, то есть вы хотите протестировать какую-либо функцию ядра, скажем, do_sys_open(). Чтобы получить некоторое использование kprobe.

Upprobe создает и управляет контрольными точками в пользовательских приложениях, то есть вы хотите протестировать какую-то функцию пользовательского пространства, но проверка запускается в пространстве ядра от имени проверяемого процесса. Чтобы получить базовое использование uprobe, чтобы увидеть, для чего он предназначен.

person Cong Wang    schedule 26.12.2012
comment
Спасибо за ответ: я уже видел эти файлы. Как я могу использовать uprobe для отслеживания процесса, а не файла bin? - person Giuseppe Pes; 26.12.2012