我有一个问题,也许你有一些关于这方面的信息。我想在运行进程中挂钩套接字接收函数(recv)并修改传入数据。
我怎么知道,我可以使用内核模块来做到这一点,但我找不到有关如何执行此类挂钩的信息。
我尝试过其他方法,例如 Netfilter、iptables,但这些方法速度很慢。
请注意,可以使用多种不同的系统调用 - 不仅仅是recv()。
假设相关应用程序通过 C 库进行内核交互(而不是手动编写系统调用),并且您可以重新启动它来设置测试,一个相当简单的想法可能是使用 LD_PRELOAD 环境变量首先加载自定义库,用拦截系统调用包装器替换感兴趣的系统调用包装器。
或者您可以像 strace 那样设置系统调用拦截,然后对感兴趣的进行猴子处理。
另一种选择是不让应用程序直接连接到远程系统,而是创建一个代理,让它连接到代理,然后让代理连接到远程系统。这样做的一个主要优点是它非常便携,几乎不需要特定于平台的细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)