最强有力和最广泛使用的Unix命令列工具-Windows端口事实上相当普遍。我用过各种Windows版本搜索 工具,例如grep。其中最有用的就是tcpdump-为进一步分析记录、报告网络传输中数据包页眉的一种工具。Cace Technologies的工作人员已经编译一Windows端口程序命名为WinDump,它具有基于Unix系列的所有特征。方便你编译自定义界面, 该程序所有的源代码也包括在内。
网络流量的倾销有许多可能的应用。我已经用其判断恶性软件是否已经安装到已给的机器上,就是通过观察无任何程序运行的计算机中数据包是否播散 (它也可以识别页眉信息和目的地)。除登记所有可用的流量外,该程序仅记录、报告页眉中有某些匹配信息的信息包――如果你已经知道你在找什么并仅仅要这 些,那么这个工具很有用。
安装和基本用途
WinDump分两部分。第一部分是WinPcap一系列网络记录驱动,是WinDump用来获得计算机中信息包到网络界面的信息。第二部分是程序本身,windump,在安装WinPcap library后从命令列中调用。
当你运行windump时你第一个想要使用的选项是-D,它会列出目前系统中所有可使用的网络界面。默认情况下程序听从第一可用界面,但是在Windows中,它是典型的软件拨号配置器,不是实体网络配置器。-D的结果通常如下:
1.\Device\NPF_GenericDialupAdapter (Generic dialup adapter)
2.\Device\NPF_{707E0236-BEE4-4097-93B1-56DEC35564AA} (Intel DC21140 PCI Fast Ethernet Adapter (Microsoft's Packet Scheduler) )
要使用专门的配置器,用-i命令和配置器号运行程序。例如,如果你想使用上述Ethernet配置器,用windump -i 2。这要比通过GUID向配置器提交简单得多,但是要注意如果新硬件或软件配置器增加,那么配置器号不是保持固定不变的。
Windump具有通过详细标准过滤已记录数据的能力――详细的网络协议,主机或端口――通常在命令列中有详细说明。其中的语法相当复杂。在程序文件中有详细解释,这有一些例子:
windump -i 2 port 80
通过端口80从界面#2记录所有流量
windump -i 2 host im-chat.com
记录所有从the host im-chat.com.或来或到界面#2的流量
windump -i 1 net 127
这些参数也可以自由组合。
输出记录
默认情况下,程序的输出记录存在控制台。除非,你使用程序仅仅是为了观察网络流量,你都想用-w
如果你打算在程序运行时查看输出文件,用-U选项。它使得程序将每一已接收信息包写到输出文件中。默认情况下,程序为数据保留1MB的缓存空间。
默认情况下,windump只记录每个信息包的标题,不是full payload。-s 0选项使程序为每个信息包堆积整个raw payload。如果你和-A选项一起用,你可以以ASCII格式记录结果。例如,用这种方式记录网页,服务器会提供可读形式,不会以 gzip/deflate形式发送记录。
另一个有用的选项, -C
当你停止程序(通过点击Ctrl-Break)时,程序向控制台提交一份报告列出所记录、阻止、丢弃(由于缺少缓存空间)的信息包数。如果程序开始丢弃信息包,你可以向记录缓冲器增加分配空间,通过-B
高端性能
WinDump一个更强有力的用途就是它能通过IPsec将已加密的网络数据流解密。这不是简单的操作,她要求你有IPsec加密的ESP密匙,同时将tcpdump应用软件与密码使用法选项结合才能解密(一些本文以外的内容)。
如果你想将有滤镜参数的外部文件列入清单,你可以用-F
最后,如果你想使程序阅读、过滤之前已标记的数据而不是网络适配器上的现时数据,使用-r