Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97954
  • 博文数量: 23
  • 博客积分: 545
  • 博客等级: 中士
  • 技术积分: 112
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-06 19:22
文章分类
文章存档

2013年(13)

2009年(9)

2008年(1)

分类: LINUX

2013-07-23 12:09:24

本文以获取内核函数 sys_open()的地址为例。
   1)从System.map文件中直接得到地址
      $ grep sys_open /usr/src/linux/System.map
   
   2)使用 nm 命令
      $ nm vmlinuz | grep sys_open
   
   3)从 /proc/kallsyms 文件获得地址
      $ cat /proc/kallsyms | grep sys_open
   
   4)使用 kallsyms_lookup_name() 函数
      是在kernel/kallsyms.c文件中定义的,要使用它必须启用CONFIG_KALLSYMS编译内核。
      kallsyms_lookup_name()接受一个字符串格式内核函数名,返回那个内核函数的地址。
        kallsyms_lookup_name("sys_open");

http://linux.chinaunix.net/techdoc/develop/2008/12/31/1055912.shtml

阅读(2211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~