我正在编写有关低级别内容的代码。我需要知道内核符号地址来编写可靠的代码。因此我试图在Ubuntu kernel-3.0.19中使用用户模式时读取kallsyms。这是用户模式下的kallsyms输出。
... 00000000 r __ksymtab_prepare_kernel_cred 00000000 r __kcrctab_prepare_kernel_cred 00000000 r __kstrtab_prepare_kernel_cred ...
如何在用户模式下解决此问题。当我的根和每个人都可以,但这不是我需要的。
感谢。
答案 0 :(得分:8)
有意/proc/kallsyms
显示零而不是非root用户的真实地址。这有点降低了安全风险。
详细信息可在this upstream commit中找到。另请参阅%pK
s_show
如何使用/proc/kallsyms
打印说明符,System.map
负责在/proc/sys/kernel/kptr_restrict
中提供记录。
我怀疑仍然可能以某种方式获取符号地址而不是root用户。没有root权限的人也无法访问{{1}}。写入{{1}}也一样。