kprobe相关内容
我正在尝试编写一个BPF程序,该程序检查调用 tty_write 内核函数的任何进程的会话ID。我试图通过从当前 task_struct 结构中检索一个字段来做到这一点。我的代码如下: SEC(“ kprobe / tty_write”) int kprobe__tty_write(struct pt_regs * ctx) { struct task_struct * task;
..
在Linux内核中有kprobe事件支持ftrace的情况下,使用跟踪点事件的用例是什么?似乎可以使用kprobe事件使用"tracepoint事件"完成所有操作,因为可以将kprobe事件设置在可用tracepoint事件的同一点. 我错过了什么吗? 解决方案 由于kprobes跟踪任意函数,因此依赖它们的工具可以轻松地从一个Linux版本过渡到另一个Linux版本.例如,可以更改
..
我想用fedora中的Kprobe计算malloc系统调用. 我知道malloc不是系统调用,而是在用户空间中实现的,但是如果可能的话,我想用kprobe来计算malloc. 我必须给Kprobe打电话的系统名称是什么? 例如do_work: kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("do_fork"); 解决方案 对
..
我知道Kprobes可用于探测任何内核功能.但是,在阅读了其文档之后,我意识到它主要是一种被动实体.它只是将探针放在执行序列的中间. 但是,如果我想直接调用任何内核函数而不用担心执行顺序该怎么办. 我该如何实现? 已更新: 注意:我想在我的内核模块中调用任何内核函数,而不是从任何用户空间应用程序中调用. 解决方案 如果我想直接调用任何内核函数怎么办 并非所
..
我正在尝试使用kprobes拦截模块中的以下功能.为此函数传递了"register_kprobe",但调用该函数时未触发Kprobe处理程序. 奇怪的是,如果我在探测函数中打印函数地址,它将开始工作(调用kprobe处理程序).它也适用于内核中的其他功能. 为什么不触发kprobe处理程序,并且打印功能的地址有何不同? 系统在x86_64上安装了3.10内核. 无效的代码:
..