我正在尝试创建一个网络数据包检查器。
我知道你可以用 libpcap 做到这一点,但它不是嗅探器,我需要伪造网络数据包,然后才能将其发送到网络上。(通过 socks 服务器发送)
我找到了两种方法来做到这一点:
- 使用 NKE。(网络内核扩展)
- 使用 DYLD_INSERT_LIBRARIES 插入库以挂钩网络功能。
你认为哪种方法最好?
我正在尝试创建一个网络数据包检查器。
我知道你可以用 libpcap 做到这一点,但它不是嗅探器,我需要伪造网络数据包,然后才能将其发送到网络上。(通过 socks 服务器发送)
我找到了两种方法来做到这一点:
你认为哪种方法最好?
也不要使用 tun/tap 设备:http ://tuntaposx.sourceforge.net/
您需要将流量路由到该设备,对其进行修改,然后将其发回。您可以使用防火墙规则执行此操作。开源世界有很多使用 tun/tap 的例子,这并不难。
优点:它是一个内核扩展,但是一个标准的内核扩展,因此您不必担心调试它。