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 ...

ユーザーモードでこの問題を解決するにはどうすればよいですか。私がルートで、すべてが問題ない場合、それは私が必要とするものではありません。

ありがとう。

4

1 に答える 1

11

/proc/kallsymsroot 以外のユーザーの実際のアドレスの代わりにゼロを表示するのは、意図的なものです。これにより、セキュリティリスクが少し低下します。

詳細は、このアップストリーム コミットで入手できます。kallsyms.cのs_show() 関数で%pK印刷指定子がどのように使用されているかも参照してください。s_show/proc/kallsyms

root ユーザーでなくても、シンボル アドレスを取得できるとは思えません。System.mapまた、root 権限がないとアクセスできません。への書き込みも同様です/proc/sys/kernel/kptr_restrict

于 2012-05-05T07:03:14.677 に答える