我想知道wireshark是如何运作的。可以监听给定计算机所有端口上的流量的应用程序的设计是什么?这种应用程序产生的窃听是什么类型的?编写监控流量的应用程序会有什么好方法?
由于
答案 0 :(得分:1)
一种方法是使用Windows Filtering Platform(这适用于Vista +,但在XP中可以实现类似功能 - WFP只是简化了事情)。 WFP允许您在驱动程序中侦听“标注”,该标注在数据包处理堆栈中的各个位置调用您的代码,以便您可以在数据移动时捕获,过滤甚至修改数据。
答案 1 :(得分:1)
Wireshark利用unix平台上的libpcap和Windows上的端口WinPcap。这个库提供了一个API来捕获数据包(Wireshark也能够捕获帧,但我没有在pcap文档中找到pcap能够做到这一点)。
图书馆如何做到特定于平台,这就是为什么一个好方法是使用图书馆为你做繁重的工作; unix上的libpcap或tcpdump(取决于你需要它的低级别)和Windows上的WinPcap或Windows过滤平台。
文档: http://www.tcpdump.org/pcap3_man.html http://www.winpcap.org/docs/docs_412/html/main.html