kprobe vs uprobe系统调用interposition

Giu*_*Pes 2 linux selinux system-calls linux-device-driver linux-kernel

我想通过使用Utrace编写系统调用插入.我知道Utrace项目已被放弃,但其部分代码用于kprobe和uprobe.

我还不太了解这些是如何运作的.特别是uprobe您能解释一下他们之间存在什么差异?我可以使用uprobe而无需编写模块来检查哪些是系统调用的实际参数?

谢谢

Con*_*ang 7

Kprobe在内核代码中创建和管理探测点,也就是说,你想要探测一些内核函数,比如do_sys_open().您需要查看Documentation/trace/kprobetrace.txt以获取kprobe的一些用法.

Uprobe在用户应用程序中创建和管理探测点,也就是说,您希望探测某些用户空间函数,但探测器代表探测进程在内核空间中运行.您需要查看Documentation/trace/uprobetracer.txt以获取uprobe的基本用法,以了解它的目的.