我正在编写有关低级内容的代码.我需要知道内核符号地址才能编写可靠的代码.所以我在Ubuntu内核3.0.19中以用户模式尝试读取kallsyms.这就是在用户模式下输出的kallsyms.
…
00000000 r __ksymtab_prepare_kernel_cred
00000000 r __kcrctab_prepare_kernel_cred
00000000 r __kstrtab_prepare_kernel_cred
…
我该如何在用户模式下解决此问题.当我根并且一切都还可以的时候,那不是我所需要的.
谢谢.
解决方法:
/ proc / kallsyms故意显示零而不是非root用户的实际地址.这样可以降低安全风险.
有关详细信息,请参见this upstream commit.另请参见在s_show() function in kallsyms.c中如何使用%pK打印说明符,s_show负责在/ proc / kallsyms中提供记录.
我怀疑在没有root用户的情况下仍然有可能获得符号地址.没有root权限的人也无法访问System.map.与写入/ proc / sys / kernel / kptr_restrict相同.