【发布时间】:2022-11-17 01:20:37
【问题描述】:
我想在用户模式程序中获取 .so 文件的基址。我希望能够通过使用我的内核模块来获取该地址。在用户模式下,我通常使用grep [lib-name].so /proc/[pid]/maps | head -n 1 | cut -d "-" -f1。
我知道我可以使用 kernel_read 直接读取文件,我知道 /proc 是一个提供内核数据的伪文件系统。所以我的问题是,是否有更简单的方法直接从内核获取该地址,或者是否有更好的 API 可用于访问/proc/[pid]/maps?
【问题讨论】:
-
我不认为你目前可以使用
kernel_read来读取/proc/[pid]/maps,因为kernel_read需要read_iter文件操作,/proc/[pid]/maps没有提供。
标签: c linux module linux-kernel base-address