代码之家  ›  专栏  ›  技术社区  ›  M.Hassan

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

  •  2
  • M.Hassan  · 技术社区  · 9 年前

    我尝试在Wireshark工具捕获的Pcap文件中搜索字符串。所有从/到sql server的字符串都被格式化为Unicode string(UTF-16)。

    当框架包含类似“select”的Unicode字符串时,它显示为“s e l e c t”,字符之间的空格为空字符\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

    • 是否有一种简单的方法来直接过滤Unicode字符串,而不是将字符串转换为十六进制字符串。
    • 拾取文本框时,我应该在查找工具中输入什么 搜索ASCII字符串,例如“select”,但作为Unicode字符串
    1 回复  |  直到 9 年前
        1
  •  2
  •   M.Hassan    9 年前

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

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

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

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

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

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

    Q、 当我选择文本框Wide(UTF-16)搜索ASCII字符串时,我应该在查找工具中输入什么,例如“select”但作为Unicode字符串

    选择“数据包字节”=>选择“窄&宽”=>选择“字符串”

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

    如果单词存在,则在“压缩字节”区域中找到帧数据

    推荐文章