首页
社区
课程
招聘
[原创]在内核中直接使用uprobe的一些坑
发表于: 2025-7-1 12:34 4291

[原创]在内核中直接使用uprobe的一些坑

2025-7-1 12:34
4291

前段时间因为想要写个trace工具,要用到能够同时hook大量native函数的框架,frida排除在外。在尝试使用github上其他开源的inline-hook框架后,发现效果均不佳,要么是稳定性太差,要么是无法达到我想要的效果。偶然间发现uprobe能在内核直接使用,于是便开始尝试写个基于uprobe用于大量hook应用层函数的kpm内核模块即Kernel-Trace

在内核直接注册uprobe挂载点主要就是依赖uprobe_register这个函数,取消注册则是要使用uprobe_unregister,这两个函数符号在5.10及以上版本的内核都是直接导出的,这就方便了kpm内核模块的编写。uprobe_register函数的参数为(struct inode *inode, loff_t offset, struct uprobe_consumer *uc),第一个参数是要hook的二进制文件对应的inode,这个可以通过文件名来获取,第二个参数是设置uprobe的偏移值,第三个参数主要包含了对应uprobe挂载点的一些回调函数,uprobe_unregister函数的参数与uprobe_register一致。

通过在内核直接主动调用uprobe_registeruprobe_unregister即可实现对任意用户态函数的挂载。

在使用uprobe_register注册了若干uprobe挂载点后,如果再直接使用uprobe_unregister函数取消这些挂载点有可能会致使内核发生严重错误而直接崩溃,通过查看内核日志后发现错误日志,在网上搜索后发现在调用uprobe_unregister函数前调用rcu_read_unlock函数先行解锁即可正常取消相应挂载点。


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-7-1 12:35 被安卓逆向test编辑 ,原因:
收藏
免费 187
支持
分享
最新回复 (85)
雪    币: 5
活跃值: (3615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持一下
2025-7-1 14:14
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2025-7-1 16:07
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
支持一下
2025-7-1 16:07
0
雪    币: 684
活跃值: (1667)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
66666666
2025-7-1 16:08
0
雪    币: 0
活跃值: (1628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持一下
2025-7-1 16:12
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
666
2025-7-1 16:22
0
雪    币: 94
活跃值: (4127)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
666666
2025-7-1 16:25
0
雪    币: 144
活跃值: (1943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
666666
2025-7-1 16:36
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
666666
2025-7-1 16:37
0
雪    币: 1840
活跃值: (6057)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
666
2025-7-1 17:48
0
雪    币: 4502
活跃值: (4295)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持一下
2025-7-1 17:57
0
雪    币: 8222
活跃值: (4753)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢分享
2025-7-1 20:02
0
雪    币: 178
活跃值: (1305)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
666
2025-7-1 20:19
0
雪    币: 602
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
666
2025-7-2 09:55
0
雪    币: 5627
活跃值: (9427)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
可以的
2025-7-2 10:01
0
雪    币: 11
活跃值: (720)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
可以的
2025-7-2 10:49
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
66666
2025-7-2 13:03
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
 可以,正好最近也在研究
2025-7-2 14:10
0
雪    币: 19
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
2025-7-2 15:48
0
雪    币: 117
活跃值: (2081)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
666
2025-7-2 21:40
0
雪    币: 242
活跃值: (3330)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
666
2025-7-3 08:26
0
雪    币: 2357
活跃值: (2921)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
6666
2025-7-3 09:52
0
雪    币: 203
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
很好
2025-7-3 10:15
0
雪    币: 0
活跃值: (1535)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
66666
2025-7-3 11:37
0
游客
登录 | 注册 方可回帖
返回