linux模块调用函数,它位于/ proc / kallsyms但未导出

时间:2011-06-23 14:05:19

标签: linux linux-kernel

我有一个关于linux内核的项目。我们无法编译linux内核,我们必须调用未导出的函数,但是这个函数可以在/proc/kallsyms中找到。(我们可以得到函数的地址)。但我们不知道调用该函数的具体方法。 你能帮我们解决问题吗? 非常感谢你。

1 个答案:

答案 0 :(得分:2)

假设它是内核本身的一个函数,而不是一个模块,你所要做的就是:

int (funcp *)(int param1, int param2, ...) = FUNCTION_ADDRESS;

funcp(param1, param2, ...);

如果它是一个模块,因为你需要从内核模块加载地址的开头记录函数的偏移量,所以事情要困难一些,在运行时从内核中获取加载地址并计算函数地址。 ..