我想捕获来自分叉进程的所有系统调用,修改它们,将它们发送到内核,然后将它们传递回分叉进程。这可能吗?如果可以,我该怎么办?
我做了一些研究,发现了 ptrace,但它看起来有点重,因为它做了很多事情(修改寄存器等......)。不过,如果我错了,请纠正我。
答案1
如果你可以等待5.11版本的内核,它将会有一种新的系统调用拦截机制专为快速(或不太慢)模拟系统调用而设计。最初的用例是针对 Wine,但它也可用于其他目的,只要信号处理程序可以工作(它依赖于SIGSYS
)。
我想捕获来自分叉进程的所有系统调用,修改它们,将它们发送到内核,然后将它们传递回分叉进程。这可能吗?如果可以,我该怎么办?
我做了一些研究,发现了 ptrace,但它看起来有点重,因为它做了很多事情(修改寄存器等......)。不过,如果我错了,请纠正我。
如果你可以等待5.11版本的内核,它将会有一种新的系统调用拦截机制专为快速(或不太慢)模拟系统调用而设计。最初的用例是针对 Wine,但它也可用于其他目的,只要信号处理程序可以工作(它依赖于SIGSYS
)。