我正在尝试创建一个网络数据包检查器。

我知道你可以使用 libpcap 来做到这一点,但它不是嗅探器,我需要在网络数据包发送到网络之前伪造网络数据包。(通过socks服务器发送)

我找到了两种方法来做到这一点:

  • 使用 NKE。(网络内核扩展)
  • 使用 DYLD_INSERT_LIBRARIES 插入库来挂钩网络功能。

您认为哪种方法最好?

有帮助吗?

解决方案

两者都不是,使用 tun/tap 设备: http://tuntaposx.sourceforge.net/

您需要将流量路由到该设备,对其进行修改,然后将其发回。您可以使用防火墙规则来做到这一点。开源世界里有很多使用 tun/tap 的例子,这并不难。

优势:它是一个内核扩展,但是 标准 内核扩展,因此您无需担心调试它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top