rub*_*uby 4 linux linux-kernel
所有,我想知道如何在不修改linux内核的情况下替换模块中的内核静态函数。我知道Linux hook可以替换一些函数,但问题是我想在不修改linux内核的情况下替换静态函数。你能帮我一下吗?谢谢。
一般来说,Linux 内核的编译方式不可能在运行时替换/挂钩静态函数(如果您正在谈论模块代码,则无法卸载/重新加载整个模块)。
这是因为编译内联 static在很多时候都会起作用(除非您将其地址放在某个地方),因此它们甚至不会出现在符号表中。编译后无法找出static代码在生成的二进制文件中的最终位置 - 并非不可能,您会在调用该 func 的所有调用站点中找到它的几个内联版本。
所以基本问题是:为什么这个函数必须是static?您到底想要做什么来强制使用static?