我正在尝试读取linux内核的符号表,vmlinux文件,到目前为止我试过了readelf
,
readelf -s vmlinux
但是什么都没有打印出来。
列出存储在里面的所有字符串,使用strings
命令,我可以找到类似的符号名称sys_close
,所以我想应该有一个可行的解决方案。
更新
我没有 System.map,我认为它在 vmlinux 内部,否则如何使用导出的名称构建内核模块sys_close
?
我正在尝试读取linux内核的符号表,vmlinux文件,到目前为止我试过了readelf
,
readelf -s vmlinux
但是什么都没有打印出来。
列出存储在里面的所有字符串,使用strings
命令,我可以找到类似的符号名称sys_close
,所以我想应该有一个可行的解决方案。
更新
我没有 System.map,我认为它在 vmlinux 内部,否则如何使用导出的名称构建内核模块sys_close
?
尝试做
objdump -t vmlinux
objdump -t vmlinux
它和 readelf 一样
检查你的 make 文件,看看 vmlinux 是如何准备的。
我确信那里有旗帜。或者在这里发布你的makefile
内核二进制文件有点不同。它的符号位于 System.map 文件中,该文件与内核 (/boot) 位于同一目录中。
维基百科将为您提供有关 System.map 的更多信息。