您的位置:首页 > 其它

深度剖析WinPcap之(十)——数据包的内核过滤(7)

2010-06-23 11:05 239 查看
本文转自http://eslxf.blog.51cto.com/918801/241953



Tcpdump与WinDump

Tcpdump软件最初是由美国加里福利亚大学伯克利分校洛仑兹实验室的Vin Jacobson,Craig Leres和Steve McCanne共同开发完成,它可以收集网上的IP报文,井用来分析网络可能存在的问题。现在,Tcpdump已被移植到几乎所有的UNIX系统上,如:HP-UX、SCO
UNIX、SunOS、Mach、Linux和FreeBSD等。更为重要的是,Tcpdump是一个开源软件,可以在Tcpdump的基础上进行改进,诸如添加辅助分析的功能,增强网络分析能力,也可对其离线网络流量文件做进一步分析。
Tcpdump使用语法格式如下:

tcpdump[ -AdDeflLnNOpqRStuUvxX ] [ -c count ]

[ -C file_size ] [ -F file ]
[ -i interface ] [ -m module ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ][ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -Z user ]

[ expression ]

下面列出此处所关心的参数与具体含义,并针对过滤条件ip给出各自对应的输出码:
-d参数 把高层容易理解的过滤字符串编译为代码,以标准格式输出。执行tcpdump -d ip命令,将获得如下输出:

(000) ldh [12]

(001) jeq #0x800 jt 2 jf 3
(002) ret #96

(003) ret #0

-dd参数 把高层容易理解的过滤字符串编译为代码,以C程序段格式输出。如执行tcpdump -dd ip命令,将获得下面的输出:

{ 0x28, 0, 0, 0x0000000c },

{ 0x15, 0, 1, 0x00000800 },
{ 0x6, 0, 0, 0x00000060 },

{ 0x6, 0, 0, 0x00000000 },

-ddd参数 把高层容易理解的过滤字符串编译成代码,以十进制数值格式输出。如执行tcpdump -ddd ip命令,将获得下面的输出(第一行为输出的指令个数):

4
40 0 0 12

21 0 1 2048
6 0 0 96

6 0 0 0

-O参数 对编译的代码不进行优化。如执行tcpdump -Od ip命令,将获得下面的输出(该过滤条件过于简单,看不出优化与不优化的区别,进一步参见后续章节):

(000) ldh [12]

(001) jeq #0x800 jt 2 jf 3
(002) ret #96

(003) ret #0

WinDump在Windows实现了Tcpdump的功能,其命令使用格式与功能与Tcpdump一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: