Описание тега kprobe

A dynamic instrumentation system that allows one to gather additional information about kernel operation without recompiling or rebooting a kernel.
1 ответ

Могу ли я заблокировать выполнение нового процесса с помощью Kprobe?

Kprobe имеет предварительно обработанную функцию, смутно задокументированную следующим образом: User's pre-handler (kp->pre_handler):: #include <linux/kprobes.h> #include <linux/ptrace.h> int pre_handler(struct kprobe *p, struct pt_re…
24 ноя '18 в 11:35
0 ответов

Отслеживать жесткие запросы в Linux

Мой опыт работы с ядром Linux очень минимален. Я только начал играть с этим недавно. Я пытался отследить самое раннее время прибытия пакета для моих исследовательских целей. Я могу сделать это на уровне драйвера устройства, изменив драйвер устройств…
05 апр '18 в 11:45
1 ответ

Получить возвращаемое значение функции в обработчике kretprobe

Я хочу знать, возможно ли подключить kretprobe к функции ядра и перехватить его возвращаемое значение в обработчике возврата kretprobe.
08 июл '15 в 06:31
0 ответов

Почему `my_do_fork` и`post_handler` выполняются, а `pre_handler` - нет?

Я использовал jprobe в модуле ядра и все работает просто отлично. кроме того факта, что pre_handler не выполняется. static struct jprobe my_jprobe = { .entry = my_do_fork, .kp = { .symbol_name = "do_fork", .pre_handler = pre_handler, .post_handler =…
20 ноя '12 в 09:01
1 ответ

Systemtap - вызов системного вызова из пространства ядра

Я пытаюсь создать жесткую ссылку, вызывая sys_link напрямую из кода Systemtap Embedded C. По сути, код выглядит так: function sys_link:long(oldname, newname) %{ /* pure */ int error; mm_segment_t old_fs; old_fs = get_fs(); set_fs(get_ds()); error = …
20 июн '18 в 08:31
2 ответа

Были ли удалены jprobes из ядра v4?

E сть jprobe_example.c в ст. Но это отсутствует в v4. Я попытался скомпилировать пример v3 с ядром v4, и он работает, давая мне jprobe_example.ko, но когда я пытаюсь insmod это не с insmod: ERROR: could not insert module jprobe_example.ko: Operation…
02 мар '19 в 11:16
1 ответ

Зонд ядра не вставлен для функции system_call

Я могу использовать kprobe механизм для прикрепления обработчиков, используя следующий пример кода: #include <asm/uaccess.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/version.h> #include <linux/ka…
18 ноя '13 в 09:49
1 ответ

Как я могу считать malloc в ядре Linux с помощью kprobe

Я хочу посчитать malloc Системный вызов с Kprobe в Fedora. я знаю это malloc это не системный вызов, он реализован в пространстве пользователя, но я хочу посчитать malloc с помощью kprobe, если это возможно. Как называется системный вызов, который я…
23 янв '13 в 09:30
1 ответ

Какова роль неопределенного обработчика исключений (__und_svc) в kprobes?

Я попытался преобразовать kprobe как загружаемый модуль ядра. Я могу запустить образцы, доступные в samples/kprobes/ папка из дерева ядра. Если мы настроим kprobes в ядре (CONFIG_KPROBES), затем svc_entry макрос будет расширен на 64 байта в __und_sv…
13 дек '13 в 06:00
1 ответ

Получение аргументов из kprobe не находит regs->rdi x86_64

Я пишу модуль ядра под Scientific Linux 6.3 x86_64 и ищу использовать kprobes. В этом модуле мне нужен доступ к первому аргументу функции при возврате, поэтому jprobes отсутствуют. Я нашел этот очень полезный пост: получение аргументов функции с пом…
08 янв '13 в 18:24
1 ответ

Почему kprobes отключает вытеснение и когда его можно снова включить?

Согласно документам, kprobes отключает приоритетное прерывание: Обработчики проб выполняются с отключенным вытеснением. В зависимости от архитектуры и состояния оптимизации, обработчики также могут работать с отключенными прерываниями (например, обр…
02 фев '18 в 15:30
1 ответ

Kprobe механизм для перехвата do_page_fault

Я пытаюсь перехватить __do_page_fault() метод в ядре Linux. Нормальный способ зарегистрироваться kprobes то есть определяя kp.addr как kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("__do_page_fault"); не работает. Какой правильный способ сделат…
16 янв '15 в 21:44
0 ответов

kprobe не работает для некоторых функций

Я пытаюсь использовать kprobe для отслеживания handle_pte_fault вызовы функций в ядре Linux. Я могу прощупать handle_mm_fault но когда я пытаюсь исследовать handle_pte_daultобработчик kprobe для handle_pte_fault ничего не печатает. Используя это, я …
25 мар '18 в 19:42
0 ответов

Несогласованные значения регистров после их настройки в модуле Jprobes

Этот вопрос является продолжением моего предыдущего вопроса о перехвате загрузчика ELF. Теперь точная проблема заключается в том, что ранее кодовая логика была реализована в рамках load_elf_binary функция, в которой в конце функции eax, ebx, ecx and…
19 июн '15 в 02:31
1 ответ

insmod: ОШИБКА: не удалось вставить модуль kprobe_example.ko: операция не разрешена

Я имел в виду: http://www-users.cs.umn.edu/~boutcher/kprobes/kprobes.txt.html чтобы понять kprobe. Я использовал kprobe_example.c, как указано в документе. Я скомпилировал его, используя make-файл (код взят из того же документа) Я получил ошибки ком…
19 сен '16 в 07:06
1 ответ

Являются ли точки трассировки избыточными в ядре Linux после поддержки ktrabes для ftrace?

Каковы случаи использования событий tracepoint, когда в ядре Linux доступна поддержка событий kprobe для ftrace? Кажется, что все, что можно сделать с помощью "событий трассировки", возможно с помощью событий kprobe, поскольку можно установить событ…
10 авг '17 в 15:50
1 ответ

Открытие / запись в файл из обработчика Kprobe

Я пишу модуль ядра Linux, используя Kprobes чтобы отслеживать конкретные системные вызовы, и мне нужно записать в файл изнутри KProbe обработчик (в частности, Kretprobe). Я знаю, что обычно это не рекомендуется, но мне нужно записать вывод в очень к…
14 июл '15 в 12:41
2 ответа

register_kprobe возвращает -2

Я пытаюсь подключить некоторые функции ядра для целей обучения, ниже я написал простой модуль ядра, но по некоторым причинам register_kprobe всегда возвращает -2. Я не нашел ничего о том, что там написано, что означает эта ошибка, и понятия не имею,…
27 апр '14 в 08:13
2 ответа

Как вызвать любую функцию ядра?

Я знаю, что Kprobes можно использовать для проверки любой функции ядра. Но после просмотра его документов я понимаю, что это в основном некая пассивная сущность. Он просто помещает зонд в середину последовательности выполнения. Но что, если я хочу в…
24 янв '16 в 14:56
2 ответа

Удаление зависимости стека из кода сборки

Я пытаюсь удалить зависимость стека из следующего кода. void myfunction(struct kprobe *p, struct pt_regs *regs) { register void *rregs asm("r1") = regs; register void *rfn asm("lr") = p->ainsn.insn_fn; __asm__ __volatile__ ( "stmdb sp!, {%[regs],…
27 ноя '13 в 08:42