kprobe/jprobe使用

当想要实时获取内核模块的信息,或想更改内核模块内的数据,这时就会用到kprobes或jprobes工具。

jprobes更简单,可以轻松在函数调用前注入自己的代码,获取或更改函数的参数。

使用方法示例:

1. 通过cat /proc/kallsyms查看想要注入的函数,如果没有的话,说明函数没有导出,不可用此方法。

2. 明天继续

https://www.ibm.com/developerworks/cn/linux/l-cn-systemtap1/

http://blog.sina.com.cn/s/blog_71d4915701011tys.html

时间: 2024-08-24 22:16:29

kprobe/jprobe使用的相关文章

Linux x86 64内核终止D状态的进程

在上一篇文章<Linux x86内核终止D状态的进程>中,我展示了32位x86系统中如何编码杀死D进程.本文我将展示一种64位x86系统上的方法.        说实话,64位系统上做这样的事是比较难的,因为你无法通过修改p->thread.ip来到达将进程拽出死循环的目的.要想知道64位系统上到底该怎么把进程执行绪引出,我们得先看看"标准"的做法是什么. 标准的做法就是fork时的行为,一个新进程刚刚被创建,它第一次进入运行状态之前,并不是通过switch_to切出

Linux内核调试技术——jprobe使用与实现

前一篇博文介绍了kprobes的原理与kprobe的使用与实现方式,本文介绍kprobes中的第二种探测技术jprobe,它基于kprobe实现,不能在函数的任意位置插入探测点,只能在函数的入口处探测,一般用于监测函数的入参值.本文首先通过一个简单的示例介绍jprobe的使用方式,然后通过源码详细分析jprobe的实现流程. 内核源码:Linux-4.1.x 实验环境:Fedora25(x86_64).树莓派1b 1.jprobe使用实例 使用jprobe探测函数的入参值,需要编写内核模块.同k

使用jprobe构建镜像协议栈的原理与感悟

突然回想起了往事,那是2007年的冬天的一个周五,我在看我的老湿调试Linux协议栈的IP层,只见他修改了路由查找的逻辑,然后直接make install了一下就即时生效了,当时我只知道的是,修改了这个逻辑需要重新编译内核,而他并没有重新编译,好像只是编译了一个文件...编译内核这个耗时又无聊的工作阻碍了我对Linux内核的探索进度,直到今天,我依然对编译内核有相当的恐惧,不怕出错,而是怕磁盘空间不够,initrd的组装拆解之类,太繁琐了.我之所以知道2007年的那天是周五,是因为第二天我要加班

使用jprobe建设镜面层叠的原则和见解

忽然想起的回忆,那是2007上周五在冬季,我看我的老湿调试Linux堆IP层,只看到他改变路由查找的逻辑,然后直接make install上的立竿见影的效果有点,我只知道,,这种逻辑必须再次更改编译内核.再一次,他没有编译,就像刚才编译的文件...时又无聊的工作阻碍了我对Linux内核的探索进度,直到今天,我依旧对编译内核有相当的恐惧,不怕出错,而是怕磁盘空间不够,initrd的组装拆解之类,太繁琐了.我之所以知道2007年的那天是周五,是由于第二天我要加班.没有谁逼我.我自愿的,由于我想知道师

哎呀,发现自己不会用模块的方式用kprobe啊,弱爆了

一直以来,用kprobe比较多的是kprobe event的用法,之前用过模块的方式编译过kprobe,但是感觉比较麻烦啊 今天要看看怎么用模块的方法简单编译kprobe: 如何单独编译内核模块 http://blog.sina.com.cn/s/blog_9011bd8c01015ms7.html 这个说得还是比较清楚,但是有几个东西还是不清楚呢,比如make设置了源码的目录,那么内核里面的数据结构他是怎么知道的呢? 1 obj-m := kprobe_example.o 2 obj-m +=

kprobe 内核模块

代码来自于linux内核sample/kprobe kprobe_example.c /* * NOTE: This example is works on x86 and powerpc. * Here's a sample kernel module showing the use of kprobes to dump a * stack trace and selected registers when do_fork() is called. * * For more informati

Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试

本文是本人前一段时间做一个简单Java监控工具调研总结,主要包括VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,以及对Java微基准测试的简单介绍,总结下来比较推荐,Visualvm,Perfino,yourkit和Jprofiler(推荐值按顺序依次递减),其它工具不太推荐使用.下面是文章目录结构:  一.VisualVm  1.简介 2 2.安装插件并启动VisualVM 2 3.内存分析 3 4.CPU分析 5 5.线程分析 6 6.连接

kprobe原理解析(二)

上一篇文章和大家简要说明了下kprobe到底应该怎样用,那么现在我们就揭开kprobe神秘的面纱,刨根问底,一睹kprobe的庐山真面目. kprobe的工作过程大致如下: 1)注册kprobe.注册的每个kprobe对应一个kprobe结构体,该结构中记录着插入点(位置),以及该插入点本来对应的指令original_opcode: 2)替换原有指令.使能kprobe的时候,将插入点位置的指令替换为一条异常(BRK)指令,这样当CPU执行到插入点位置时会陷入到异常态: 3)执行pre_handl

Linux上部署JProbe

1.在本机PC上安装JProbe: JProbeforWindowsEXEFormat_810 2.上传JProbe文件到linux服务器上: 3.给予权限: chmod a+x jprobe810_install.bin 4.开始安装: ./jprobe801_install.bin -i console 至此,JProbe安装完成 5.破解: 拷贝已经破解的文件client-support.jar到/opt/JProbe_8.1/lib下面 给予权限 chmod a+x client-sup