我有一个与Oracle数据库进行通信的应用程序,它的日志logging是非常糟糕的,所以我唯一可以制定它发送到我们的数据库的SQL的唯一方法是通过数据包嗅探TNS.requests; 我想过滤这些包含特定名称的数据包,即数据包中存在特定的string。 我怎样才能做到这一点?
谢谢。
您是否尝试过“包含”或“匹配”运算符? 例如,
tns.request and tns contains "Marshmallows"
或干脆
frame matches "(?i)marshmallows"
第一个示例查找包含区分大小写的string“Marshmallows”的TNS请求。 第二个例子在任何一个框架中的任何地方寻找“棉花糖”,忽略大小写。 (“contains”做简单的string匹配;“matches”让你使用PCRE修饰符)。
有几个解释你的问题:
您正在使用WireShark,并希望进行更复杂的过滤以更好地分析数据。 在这种情况下,阅读文档 。 如果你需要额外的performance力,你也可以在Lua中编程filter。
你想过滤这些数据包; 即应用级防火墙或NIDS 。 检查防火墙/整形L7filter ,或NIDS Snort (后者也可以使用一些Lua脚本,我想)
你想捕捉数据包logging,创build统计数据或任何其他自动化任务。 检查tcpdump / libpcap和/或我自己的libpcap绑定为Lua 。