kprobe探测中使用offset存在兼容性问题

kprobe通过插入内核模块来做探测内核的工作。

使用offset成员,可以来指定从symbol指定的函数开始,距离该函数offset的位置的指令。


在kprobe的文档里有这么一句话:

Use the "offset" field of struct kprobe if the offset into the symbol to install a probepoint is known. This field is used to calculate the probepoint.


这里就存在一个问题。。兼容性。不同版本的内核,探测同一条指令时所需要的offset 是不一样的。

所以说如果使用kprobe来做内核探测,使用了offset之后,基本上只能在本系统中用。

把相同的代码(即不改变offset的情况)放到另外一个内核版本的系统中运行,插入模块时报错。

insmod:error inserting 'kprobe_switch_1.ko' : -1 Invalid or incomplete multibyte or wide character


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值