是否可以拦截Linux文件系统中文件的stat调用? (来自用户空间)

时间:2017-02-24 15:16:50

标签: linux system-calls

我想拦截特定文件上的状态调用,并在检测到后立即快速执行操作。

过去我曾使用过INotify库,但这只对我开放/写入/关闭文件等有用。如果我没记错,stat只读取文件系统上i-node的内容所以使用在用户空间中运行的二进制文件拦截调用的最佳方法是什么?

我想这也可以推广到拦截来自用户空间的系统调用?

另请注意,我确实知道我定位的过程,但无法控制何时运行等。

谢谢!

2 个答案:

答案 0 :(得分:0)

该技术有可能被称为function interposition

适用于您启动或控制启动环境的应用程序,以便能够设置LD_PRELOAD环境变量。

答案 1 :(得分:0)

您可以使用 LD_PRELOAD 在库级别使用函数劫持,但这仅适用于非setuid / setgid的动态链接二进制文件。对于static或setuid / setgid二进制文件,你必须实现一个内核模块来劫持内核级别的函数。