数据包嗅探器的原理

1 c proxy winapi network-programming tcp-ip

我想知道数据包嗅探器的原理.他们如何捕获其他应用程序的数据包?

我一直在考虑这个问题.我有一个理论.这与代理服务器的工作方式有关吗?当使用某些特殊API时,所有本地应用程序都会将其数据包发送到指定的ip而不是原始数据包.数据包嗅探器接收并复制,最后将它们发送回原始目的地.是对的吗?

你能解释一下数据包嗅探器是如何工作的吗?提前谢谢你的帮助.

Jon*_*Jon 8

网络接口(即硬件网络适配器卡)接收线路上的所有流量,无论它是否发送给它们.

接收到帧后,驱动程序检查收件人的MAC地址帧报头,并将其与所述接口的MAC.如果地址匹配,则帧被转发到OS以供消费; 如果没有,它就被丢弃了.

接口还提供了进入混杂模式的选项,其中所有帧都被转发到操作系统.这就是数据包嗅探器的作用:它们向驱动程序发送命令,使卡处于混杂模式,然后可以读取从网络实际到达的所有流量,无论它是谁.

当然,混杂模式并不能保证您将收到网络上的所有流量; 网络拓扑可以很容易地防止发往其他人的流量首先到达您的系统(例如,交换机通常会做什么).