Jacob_linux 发表于 2016-08-15 11:43

内核中如何动态监控,动态链接库的调用呢

在Linux 内核中有很多启进程的函数, 可以动态截获进程启动事件, 我想获取进程动态加载的so,试过sys_uselib,根本不调用,请教! 用什么方式可以获得的?

amarant 发表于 2016-08-15 15:42

我记得,内核的do_execv 里面,会调用 execv ld-linux.so.2 。然后由这个程序帮忙动态链接库。
其实你的需求也可以通过 cat /proc/<pid>/maps 搞定呀?

Jacob_linux 发表于 2016-08-16 10:07

回复 2# amarant

这种方法倒是可以实现,但是性能等方面不太理想。我是想动态监控到一条so动态链接库的调用,就处理一条,这种方法需要我轮询pid,并过滤出新调用的so,实现比较复杂。
我使用对sys_mmap 进行截获,可以获取到动态加载映射的so,但是映射的不止有so,这个没办法筛选出so,是个问题。


   

nswcfd 发表于 2016-08-16 17:33

ltrace好像可以监控lib库的调用,不知道有没有参考意义。
http://blog.packagecloud.io/eng/2016/03/14/how-does-ltrace-work/

_nosay 发表于 2016-08-16 22:38

回复 1# Jacob_linux

什么意思,看进程加载了哪些.so文件吗?有个lsof命令吧。

Jacob_linux 发表于 2016-08-17 09:13

不指定so ,监控那些so被那些进程加载。
回复 5# _nosay


   
页: [1]
查看完整版本: 内核中如何动态监控,动态链接库的调用呢