在 WireShark 捕获的 PCap 文件中搜索 unicode 字符串 (UTF-16)

Search for unicode string (UTF-16) in PCap file captured by WireShark

我尝试在Wireshark 工具捕获的Pcap 文件中搜索字符串。所有字符串 from/to sql 服务器都格式化为 Unicode 字符串 (UTF-16)。

当frame包含Unicode字符串如"select"时,显示为"s e l e c t",字符之间的space为空字符\x00.

如果使用以下显示过滤器:

  frame contains "s e l e c t"

帧未被过滤。

所以,我必须手动将字符串 "select" 转换为十六进制十进制,并且 运行 显示过滤器:

  frame contains 73:00:65:00:6c:00:65:00:63:00:74:00

它正在运行。

此外,我尝试使用查找工具(在工具栏中)并选择 Wide (UTF-16) 并输入 "s e l e c t",但找不到字符串。

我使用 WireShark v 2.2.0 sample of data

Q.Is 有一种简单的方法可以直接过滤 Unicode 字符串,而不是将字符串转换为十六进制字符串

"matches" 运算符允许过滤器应用于 Perl 兼容的正则表达式 (PCRE)。

对于单词 "select",显示过滤器将为:

  frame matches "s.e.l.e.c.t"

这里的点代表任意字符,在我们的例子中是\x00字符

对于不区分大小写的 Select , SELECT :

   frame matches "(?i)s.e.l.e.c.t"

(?i) 执行不区分大小写的模式匹配。

问。选择宽文本框 (UTF-16) 搜索 ASCII 字符串时,我应该在查找工具中输入什么,例如"select" 但作为 Unicode 字符串

单击工具栏中的 "find tool",在下拉列表 select 中显示以下内容:

选择 "Packet bytes" => 选择 "Narrow & Wide" => 选择 "String"

输入要搜索的词,例如"select" 在文本框中。

如果该词存在,则在"Pack Bytes"区查找帧数据