如何过滤Wireshark中数据包的内容?

我有一个与Oracle数据库进行通信的应用程序,它的日志logging是非常糟糕的,所以我唯一可以制定它发送到我们的数据库的SQL的唯一方法是通过数据包嗅探TNS.requests; 我想过滤这些包含特定名称的数据包,即数据包中存在特定的string。 我怎样才能做到这一点?

谢谢。

您是否尝试过“包含”或“匹配”运算符? 例如,

tns.request and tns contains "Marshmallows" 

或干脆

 frame matches "(?i)marshmallows" 

第一个示例查找包含区分大小写的string“Marshmallows”的TNS请求。 第二个例子在任何一个框架中的任何地方寻找“棉花糖”,忽略大小写。 (“contains”做简单的string匹配;“matches”让你使用PCRE修饰符)。

有几个解释你的问题:

  1. 您正在使用WireShark,并希望进行更复杂的过滤以更好地分析数据。 在这种情况下,阅读文档 。 如果你需要额外的performance力,你也可以在Lua中编程filter。

  2. 你想过滤这些数据包; 即应用级防火墙或NIDS 。 检查防火墙/整形L7filter ,或NIDS Snort (后者也可以使用一些Lua脚本,我想)

  3. 你想捕捉数据包logging,创build统计数据或任何其他自动化任务。 检查tcpdump / libpcap和/或我自己的libpcap绑定为Lua 。