Wireshark中文简明使用教程 下载本文

内容发布更新时间 : 2024/5/14 18:54:43星期一 下面是文章的全部内容请认真阅读。

项目 Copy/Bytes(Offset Text) 对应主菜单项 - 描述 以16进制转储格式将包字节复制到剪贴板。不包括文本部分。 以ASCII码格式将包字节复制到剪贴板,包括非打印字符。 以16进制未分段列表数字方式将包字节复制到剪贴板,(an unpunctuated list of hex digits 应该有专有名词,有兴趣的查一下) 以raw binary格式将包字节复制到剪贴板。数据在剪贴板以\application/octet-stream\存储,该功能在GTK+1.x环境下不支持 与文件菜单同名项目功能一样。允许将Raw packet 字节转换为二进制文件它 打印包 在新窗口显示选中的包 Copy/ Bytes (Printable - Text Only) Copy/ Bytes (HEX Stream) Copy/ Bytes (Binary Stream) - - Export Selected Packet File Bytes... --- Decode As... Print... Show Packet in New Window File View Analyze 在两个解析之间建立或修改新关联(不知所云) 6.2.2. 包详情面板的弹出菜单

图 6.4. 包详情面板弹出上下文菜单项

下表介绍了包详情列表菜单项的功能描述,及其他可以提供该功能的主菜单 表 6.2. 包详情面板弹出上下文菜档项

项目 对应的主菜单 描述 项目 Expand Subtrees Expand All Collapse All ----- Copy/Description Copy/AS Filter Copy/Bytes(Offset Hex Text) Copy/Bytes(Offset Hex) 对应的主菜单 View View View - Edit - - 展开当前选择的子树 展开捕捉文件的所有包的所有子树 关闭包中所有已展开的子树 复制选择字段显示的文本到剪贴板 描述 将选择项目作为显示过滤内容复制到剪贴板 将包字节以Hexdump-like格式存储到剪贴板;类似于包列表面板中同名的命令,但是拷贝结果仅仅是树分支中被选中部分(包字节面板中被选中字节) 以Hexdump-linke格式保存到剪贴,不包括文本部分。类似于包列表命令,不同之处在于此处仅拷贝树分支选中部分(包字节面板选中部分) 以ASCII格式拷贝包字节,非打印字符除外;类似于包列表面板中同样的命令。不同点在于此处仅拷贝选择的树分支(包字符被选择部分) j以unpunctuated list hex digits形式保存到剪贴板,类似于包列表面板中的命令,不同之处在于仅复制选中子树部分(包字节面板选中部分) 以raw binary格式拷贝到剪贴板;类似于包列表面板中的命令,不同之处在于仅拷贝选中部分子树(包字节面板选中部分)。数据以MIME-type“Application/octet-stream”存储在剪贴板.该功能在GTK+1.x下不可用 同文件菜单中的同名项一样。导出raw packet 字节为二进制文件。 COPY/Bytes - (printable Text Only) Copy/Bytes(Hex Stream) Copy/Bytes(Binary Stream) Export Selected Packet Bytes... --- Apply as Filter Preapare a Filter Follow TCP Stream Follow SSL Stream ----- Wiki Protocol Page Filter Field Reference Protocol Preferences... ----- Decode As... Resolve Name... - - File analyze 将当前选择项作为过滤内容,并应用 Analyze 将当前选择项作为过滤内容,但不立即应用 Analyze 追踪两个节点见,被选择包所属TCP流的完整数据 Analyze 同上 - - - View 显示当前选择协议的对应WIKI网站协议参考页 显示当前过滤器的WEB参考 如果协议字段被选中,点击该选项,打开属性对话框,选择对应协议的页面,??? 对选择的包进行名称解析,不是指所有的包 跳到当前选择包的相应包。 Analyze 更改或应用两个解析器之间的关联(什么鸟意思?) Go to corresponding Go Packet ... TNND,表格让人崩溃

6.3. 浏览时过滤包

Wireshark有两种过滤语法:一种是捕捉包时使用,另一种是显示包时使用。本节介绍第二种过滤语法:显示过滤。第一种过滤语法在第 4.8 节 “捕捉时过滤”提到

显示过滤可以隐藏一些你不感兴趣的包,让你可以集中注意力在你感兴趣的那些包上面。你可以用从以下几个方面选择包:

? ? ? ? ?

协议 预设字段 字段值 字段值比较 。。。以及许多

根据协议类型选择数据报,只需要在Filter框里输入你刚兴趣的协议,然后回车开始过滤。???显示了你输入tcp进行过滤后的图。

图 6.5. 用TCP协议过滤

或许你没有注意到,上图显示的已经仅有TCP协议了(从图中可以看到1-10号包已经被隐藏)。因为包的编号是固定不变的,所以第一个包显示的编号是11。

注意

当你使用过滤时,所有的包依然保留在捕捉文件里。显示过滤只是更改捕捉文件的显示方式而非内容。

你只能对Wireshark可以识别的协议进行过滤。你也可以对解析器已经添加到树视图的字段进行过滤,但仅限于解析器已经为字段加上了协议缩写的。在Add Expression...对话框可以看到可用的字段列表.详见第 6.5 节 ““Filter Expression/过滤表达式”对话框”

例如:想要限制包列表面板仅显示来自或指向192.168.0.1的包,可以使用ip.addr==192.168.0.

注意

点击Clear可以移除过滤

6.4. 建立显示过滤表达式

Wireshark提供了简单而强大的过滤语法,你可以用它们建立复杂的过滤表达式。你可以比较包中的值,合并表达式为多个指定表达式。本节介绍了相关操作。

提示

你可以在Wireshark Wiki Display页找到发现大量的显示过滤范例。 http://wiki.wireshark.org/DisplayFilters.

6.4.1. 显示过滤字段

包详情面板的每个字段都可以作为过滤使用。应用这些作为过滤将会仅显示包含该字段的包。例如:过滤字符串:TCP将会显示所有包含TCP协议的包。

通过\帮助/协议支持菜单项访问\显示过滤字段\可以查看完整完整的过滤字段列表。

6.4.2. 比较值

你可以通过在许多不同的比较操作建立比较过滤。详见表 6.3 “显示滤镜比较操作符”

提示

你可以使用下表中的英语和比较符(c-link)项达到同样的效果,它们也可以混合使用。

表 6.3. 显示滤镜比较操作符 English C-linke eq ne gt lt ge le == != > < >= <= 描述及范例 Equal ip.addr==10.0.0.5 Not equal ip.addr!=10.0.0.5 Greate than frame.pkt_len>10 Less than frame.pkt_len<128 Greater than or equal to frame.pkt_len ge 0x100 Equal frame.pkt_len <= 0x20 6.4.3. 组合表达式

你可以用逻辑操作符将过滤表达式组合在一起使用,见表 6.4 “显示过滤的逻辑操作符” 表 6.4. 显示过滤的逻辑操作符 English C-linke and && or || Logical AND ip.addr==10.0.0.5 and tcp.flags.fin Logical OR ip.addr==10.0.0.5 or ip.addr==192.1.1.1 Logical XOR tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29 Logical Not not llc Substring Operator Wireshark允许选择一个序列的子序列。在标签后你可以加上一对[]号,在里面包含用逗号(是不是冒号?)分离的列表范围。 eht.src[0:3] == 00:00:83 上例使用n:m格式指定一个范围。在这种情况下,n是起始位置偏移(0表示没有偏移,即是第一位,同理1表示向右偏移一位,便是第二位),m是从指定起始位置的区域长度。 eth.src[1-2] == 00:83 [...] 上例使用n-m格式一个范围。在本例中n表示起始位置偏移,m表示终止位置偏移 eth.src[:4]=00:00:83:00 上例使用:m格式,表示从起始位置到偏移偏移位置m。等价于0:m eth.src[4:]=20:20 上例使用n:格式,表示从最后位置偏移n个序列 eht.src[2] == 83 描述和范例 xor ^^ not ! English C-linke 描述和范例 上例使用 n 形式指定一个单独的位置。在此例中中序列中的单元已经在偏移量n中指定。它等价于n:1 eth.src[0:3,102,:4,4:,2] == 00:00:83:00:83:00:00:83:00:20:20:83 Wireshark 允许你将多个分号隔开的列表组合在一起表示复合区域,如上例所示 6.4.4. 常见的错误

警告

在组合表达式中使用\操作符,像eth.addr,ip.addr,tcp.port,udp.port等元素可能会产生非预期效果

经常有人用ip.addr ==1.2.3.4 表达式来选择所有包含ip地址为1.2.3.4的包,

如果有人想用ip.addr !=1.2.3.4 表达式来排除ip地址为1.2.3.4的包,很不幸。它不会像你期待的那样。 相反,那个表达式为真值得条件是源地址或目标地址中的任意一个不等于1.2.3.4即可。因此,那个表达式

ip.addr !=1.2.3.4 可以被读作:\该包包含的ip字段值必须不为1.2.3.4\。因为一个ip数据报同含源地址和目标地址,只要两个地址有一个不为1,2,3,4表达式就为真。

接着上面的话题,如果你真想过滤捕捉文件中,ip地址包含1.2.3.4的包,正确的表达式应该是!(ip.addr==1.2.3.4)。它可以读作:\显示所有'字段名为ip.addr值存在1.2.3.4'为非真的包'\换句话说:\筛选所有字段名ip.addr的值中未出现1.2.3.4的包\

6.5. “Filter Expression/过滤表达式”对话框

当你熟悉Wireshark过滤系统,并了解你可以用那些标签进行过滤以后,你可以快速简单地输入过滤字符

但如果你是一个Wireshark新手,或者处理一些相对陌生的协议,你可能很难通过直接输入字符进行过滤。过滤表达式对话框会帮你解决这些问题

提示

过滤表达式对话框是学习输入表达式的不错的工具。(不知道用不错是不是有点委屈)

图 6.6. 过滤表达式对话框

打开上图的对话框以后。将会显示一个按协议类型分组的树分支列表,一个关系选择框。 Field Name