**获取内核符号地址或符号名**

获取内核符号地址或符号名
获取内核符号地址或符号名
分类: LINUX2013-09-24 18:35:41
1已知内核符号地址,获取内核符号名
1.1 使用sprint_symbol内核函数

#include <linux/kallsyms.h>
int sprint_symbol(char *buffer, unsigned long address)
函数功能描述:

该函数根据一个内存中的地址address查找一个内核符号,并将该符号的基本信息,如符号名name,它在内核符号表中的偏移offset和大小size ,所属的模块名(如果有的话)等信息连接成字符串赋值给文本缓冲区buffer 。其中所查找的内核符号可以是原本就存在于内核中的符号,也可以是位于动态插入的模块中的符号。

输入参数说明:buffer :文本缓冲区,它用来记录内核符号的信息,它是一个输出型参数。

address:内核符号中的某一地址,为输入型参数。

返回参数说明:返回值是一个int型,它表示内核符号基本信息串的长度,也即是buffer所表示的字符串的长度。

2已知内核符号,获取内核符号地址
2.1 使用 kallsyms_lookup_name()
该函数在kernel/kallsyms.c文件中定义的,要使用它必须启用CONFIG_KALLSYMS编译内核。
kallsyms_lookup_name()接受一个字符串格式内核函数名,返回那个内核函数的地址。
kallsyms_lookup_name(“函数名”);

3通用
3.1利用System.map
$ grep “函数名或地址” /usr/src/linux/System.map

3.2使用nm 命令:
$ nm vmlinuz | grep “函数名或地址”

3.3利用 /proc/kallsyms
$ cat /proc/kallsyms | grep “函数名或地址”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值