Wireshark - 如何过滤未通过 HTTP 发送的 JSON 内容

Wireshark - How to filter on JSON content not sent over HTTP

我有一个使用 winsock 的 windows 服务与另一个使用 winsock 的 windows 服务通信。我们正在讨论 TCP/IP 使用 JSON。

我正在尝试证明我的服务运行正常,并且与之通信的服务未发送预期的数据。

我将 wireshark 设置为在我在本地计算机上使用的以太网卡上进行捕获并在 ip.addr == 上进行过滤,我可以看到流量。

我期待包含 "Message One" 的消息,而且我可以看到它们,数以千计。 当我收到所有这些时,我希望收到一些包含 "Message Two"

的消息

如何设置过滤器以证明我没有收到 "Message Two" 消息?

我用谷歌搜索了一下,有人说使用数据文本行包含 "Message Two",但这不起作用。我可以通过查看包含 "Message One" 的消息然后过滤包含 "Message One" 的数据文本行来验证它不起作用,并且它们在不应该消失的时候全部消失。我有一种感觉,只适用于http。

我用什么做过滤器?


编辑 - 回复 v.j 的回复并能够上传 img:

我没有看到 "Expression" 按钮。这是一些屏幕截图。

Wireshark 也支持 JSON 的过滤器。转到 Analyze->Display Filter,然后单击 Expression 按钮配置不同的过滤器字符串,如 -> JSON 对象、JSON 数组等以及 "contains" 或 [=24= 等关系]

这应该有助于设置 JSON 相关过滤器。

编辑:附上关于如何通过按钮访问表达式的截图

EDIT2:可以在 Wireshark 版本 2.4.0 中访问表达式,如下所示

使用这个:

 http.content_type == "application/json"