【问题标题】:Linux kernel: get function address for kernel driverLinux内核:获取内核驱动程序的函数地址
【发布时间】:2014-05-04 20:35:12
【问题描述】:

是否有可能在 linux 内核模块中获取由另一个内核模块(类似于cat /proc/kallsyms)导出的函数的指针,但使用 api 调用。此外,如果它不存在,是否可以将预期的模块加载到内存中。 基本上我想做的是在两个模块之间引入软依赖。所以我可以执行一个有或没有另一个。

【问题讨论】:

  • 过去有一种方法可以通过 module_request()、inter_module_get() 和 inter_module_get_request() 来实现。这个功能可能在很久以前就被删除了。 +1,因为我会对其他人必须添加的内容非常感兴趣。

标签: c linux linux-kernel linux-device-driver


【解决方案1】:

是的,这是可能的。使用以下 Linux 内核 API,

  1. 使用find_symbol API,您可以搜索所需的符号是否存在
  2. 如果找不到符号,那么您可以尝试使用名为find_modulerequest_module 的API 加载导出您打算使用的符号的所需模块。以下是这些 API 的示例代码here

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 1970-01-01
    • 2016-07-29
    • 2014-02-05
    • 2015-12-31
    • 2013-07-24
    • 2022-01-08
    • 2020-12-20
    • 2011-02-10
    相关资源
    最近更新 更多