- 适配驱动程序工作量太大,内核版本、补丁版本差异太大,所以想在应用层寻求一个一劳永逸的方法
- 由于其主要是利用预加载机制使被hook的符号先于本来的符号被找到,所以无法hook不依赖libc的程序,例如:
- 越来越多的go程序
- 对于静态连接libc的程序
- 直接利用汇编调用系统调用的汇编程序
- dl系列函数难以hook
- 对于刻意使用dlopen\dlsym来查找libc中符号的程序难以适用
- 与系统中原本的安全机制的兼容问题
- seccomp
- Snap
- 临界资源问题
- 即使利用TLS机制,我记得有些地方也不容易进行处理
- 一旦被装载,只能重启被hook的服务才能卸载的问题
- 这不算太严重,在hook的接口前装一个开关即可,但对于hook接口外的其它代码,一旦出现问题,只能重启机器,这对服务器来说,是十分不可靠的