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

发布于 2024-11-16 23:45:51 字数 129 浏览 2 评论 0原文

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

I have a project about linux kernel. We can't compile linux kernel and we have to call the not exported functions but this function can be found in /proc/kallsyms.(We can get the address of the function). But we don't know the specific method to call the function.
Would you please help us to solve the problem?
Thank you very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久伴你 2024-11-23 23:45:51

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

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

funcp(param1, param2, ...);

如果它是一个模块,事情会有点困难,因为您需要记录该函数从内核模块加载开始的偏移量地址,在运行时从内核获取加载地址并计算函数地址......

Assuming it is a function in the kernel itself and not a module all you have to do is:

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

funcp(param1, param2, ...);

If it is a module things are a little bit more difficult since you need to record the offset of the function from the start of the kernel module load address, grab the load address from the kernel at runtime and compute the function address...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文