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: 分布式编译优化。