上一篇, 我们用钩子拦截系统接口调用的方法验证某个程序是否调用了getaddrinfo系统接口. 这样的钩子技术可以应用在很多其它情况下. 并不会因为钩子的源代码是C, 就只能钩C写的程序 (curl 是 C写的). 编译钩子请参考 上一篇 , 略. 钩子文件是 /root/ hook_getaddrinfo.so 钩 Python 程序 感谢 Debian中文群的群友的 python 代码 https://t.me/c/1039975886/766756 python3 -c 'import sys, socket; [print(res) for res in socket.getaddrinfo(sys.argv[1], int(sys.argv[2] if len(sys.argv) > 2 else 80))]' api.myip.la 上面的代码是python调用系统 getaddrinfo. 我们在开头加上钩子, 得到 LD_PRELOAD=/root/ hook_getaddrinfo.so python3 -c 'import sys, socket; [print(res) for res in socket.getaddrinfo(sys.argv[1], int(sys.argv[2] if len(sys.argv) > 2 else 80))]' api.myip.la 日志如下