System call instrumentation on Linux/x86‑64 using memory‑indirect calls, part I

原始链接: https://www.humprog.org/~stephen/blog/2026/06/15/#system-call-instrumentation-on-intel-negative-result

在这段 Hacker News 的讨论中,用户 "mstr" 对 Linux 内核关于系统调用的设计提出了批评。与其他操作系统不同,Linux 允许任意用户空间代码直接调用系统调用,这带来了稳定性和安全性方面的挑战。 该评论者认为,这种设计在根本上是有缺陷的,因为它阻碍了在进入高开销的内核态之前对系统调用进行有效的拦截。他建议 Linux 应该采用类似于 OpenBSD 的模型,即所有系统调用必须通过像 `libc` 或 VDSO(虚拟动态共享对象)这样稳定的接口。 通过强制所有新的系统调用都经由 VDSO 路由,内核可以执行一项禁止直接使用 `SYSCALL` 指令的策略,对不合规的代码触发 `SIGKILL`。作者总结称,这种转变将允许通过 `LD_PRELOAD` 等技术实现无缝的系统调用挂钩(hooking),从而不再需要目前监控或拦截内核转换时所必需的复杂指令重写和插桩技巧。
相关文章

原文
联系我们 contact @ memedata.com