【发布时间】:2013-08-31 11:24:31
【问题描述】:
当我们 cat 'proc/kallsyms' 或 'system.map' 时,我们会得到这样的符号
....
c033718c T nf_hook_slow
c04ca284 r __ksymtab_nf_hook_slow
c04ca28c r __ksymtab_nf_hooks
c04d24a0 r __kcrctab_nf_hook_slow
c04d24a4 r __kcrctab_nf_hooks
c04e9122 r __kstrtab_nf_hook_slow
c04e9179 r __kstrtab_nf_hooks
c054d854 D nf_hooks
c0571ca0 d nf_hook_mutex
....
- T、r、D、d 的东西是什么意思?
- 我可以在内核源代码中找到符号 EXPORT_SYMBOL(...) 但还有其他前缀为 __ksymtab... 或 __kstrtab... 这些是什么?
- 是否可能 System.map 中有符号但 /proc/kallsyms 中排除了符号? (假设内核编译正确)
- 我启用了 netfilter 的 linux 内核,但我找不到符号 'nf_hooks' 但有'__ksymtab_nf_hook'。有没有办法获取 nf_hooks 的地址 使用 __ksymtab_nf_hook?
- 我在我的 linux 源代码中看到 EXPORT_SYMBOL(nf_hook) 但如果我找不到它 '猫/proc/kallsyms'。这有什么典型的原因吗?
提前谢谢你。
【问题讨论】: