LD_PRELOAD - Hook functions/methods - Symbol hook/fish - intercept methods - c/c++/python

LD_PRELOAD可以用来hook原有库中的函数。也可以用RDLD_NEXT在hook函数中调用原有函数的symbol。

从而实现用户无感知的加速原有程序性能的作用。

(需要在env里面加入LD_PRELOAD=.....so)

 

参考:

http://www.goldsborough.me/c/low-level/kernel/2016/08/29/16-48-53-the_-ld_preload-_trick/

 

C++也可以hook,见:

https://gist.github.com/mooware/1174572

 

Python也可以hook,复杂一些,好像是覆盖了方法的native地址,见:

https://github.com/dlshriver/intercepts/issues

 

灵感来自于Blink: 分布式编译优化。

 

posted @ 2021-10-13 10:56  xuyv  阅读(35)  评论(0编辑  收藏  举报