我想用Utrace写一个系统调用插入。我了解到 Utrace 项目已被放弃,但其部分代码用于 kprobe 和 uprobe。
我不太了解这些是如何工作的。特别是 uprobe 你能解释一下它们之间有什么区别吗?我可以在不编写模块的情况下使用 uprobe 来检查系统调用的实际参数吗?
谢谢
我想用Utrace写一个系统调用插入。我了解到 Utrace 项目已被放弃,但其部分代码用于 kprobe 和 uprobe。
我不太了解这些是如何工作的。特别是 uprobe 你能解释一下它们之间有什么区别吗?我可以在不编写模块的情况下使用 uprobe 来检查系统调用的实际参数吗?
谢谢
Kprobe 在内核代码中创建和管理探测点,也就是说,您要探测一些内核函数,例如 do_sys_open()。您需要查看Documentation/trace/kprobetrace.txt以了解 kprobe 的一些用法。
Uprobe 在用户应用程序中创建和管理探查点,也就是说,您要探查一些用户空间功能,但探查代表被探查的进程在内核空间中运行。您需要查看Documentation/trace/uprobetracer.txt以了解 uprobe 的基本用法,了解它的用途。