9

我正在编写有关低级内容的代码。我需要知道内核符号地址才能编写可靠的代码。因此,当我在 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 ...

我怎样才能在用户模式下解决这个问题。当我是 root 并且一切都正常时,但这不是我需要的。

谢谢。

4

1 回答 1

11

故意/proc/kallsyms显示零而不是非 root 用户的真实地址。这降低了一点安全风险。

此上游提交中提供了详细信息。另请参阅如何在 kallsyms.c 的s_show() 函数中%pK使用打印说明符,负责在 .c 中提供记录。s_show/proc/kallsyms

我怀疑是否仍然有可能以某种方式获得符号地址而不是 root 用户。System.map没有root权限也无法访问。写到/proc/sys/kernel/kptr_restrict.

于 2012-05-05T07:03:14.677 回答