Ring3下的系统调用/库函数hook
http://www.cnblogs.com/LittleHann/p/3854977.html
http://www.cnblogs.com/LittleHann/p/4594641.html
LD_PRELOAD动态链接库函数劫持
- 在编写待HOOK的函数,在其中添加自定义功能,并调用原始函数:dlopen + dlsym
- 以LD_PRELOAD环境变量启动待HOOK的程序
ref :
http://blog.chinaunix.net/uid-24585858-id-2125516.html?page=3
https://blog.csdn.net/wonderdaydream/article/details/74349403
该方案的缺陷: - 对静态编译的ELF程序无效;
- 对设置了SUID权限(setuid,setgid)的ELF程序无效;
- 有些程序会检测LD_PRELOAD环境变量(getenv and check),对这类程序也无效;
基于ptrace调试技术HOOK API
ref:
https://www.cnblogs.com/pannengzhi/p/5203467.html
Ring0下HOOK系统调用
Hook sys_call_table
sys_call_table的地址可在/boot/System.map-xxx文件中查找
略
利用kprobe机制Hook系统调用
ref:
https://blog.csdn.net/tianxuhong/article/details/50974400
按kprobe接口编写内核模块(linux/kprobes.h),并加载之;
LSM(linux security module)钩子
ref:
https://www.ibm.com/developerworks/cn/linux/l-lsm/part1/
http://www.cnblogs.com/cslunatic/p/3709356.html
http://lsm.immunix.org/lsm_modules.html