不详细讲述原因,我正在寻找一种尽可能清晰的方法来替换内核函数和系统调用。我的最初想法是编写代码来覆盖一些函数,这些函数将采用原始函数(如果可能的话,调用函数),然后添加一些我自己的代码。关键是,我编写的函数必须具有原始函数的名称,这样其他代码在尝试访问它时,将访问我的函数。
我可以直接在内核中轻松地(相对地)执行此操作,只需将我的代码放入适当的函数中即可,但我想知道是否有人知道一些 C 的魔法,不是必须可怕的内核(或 C )编码实践,可以实现相同的结果。
思考 #define 和 typedefs,但我无法在脑海中完全理解它们。
简而言之:有没有人知道一种有效地覆盖 Linux 内核中函数的方法(从模块)?
编辑:由于已经有人问过,我基本上想要记录某些函数(创建/删除目录等)在内核内部,但为了健康起见,似乎使用可加载模块比每次更改都必须编写大型内核代码并重新编译要有意义。可以向内核添加最少量的代码,但我想将大部分工作卸载到模块中。