查看来自我的应用程序的事件以及 Wireshark 中的剖析通信

See events from my application together with dissected communication in Wireshark

我有时需要使用 Wireshark 来分析我的应用程序使用的特定协议的通信问题。 Wireshark 已经带有协议解析器,并以我能想象的最好的方式显示通信。

但我还需要查看实际通信以及应用程序内部发生的事件。该应用程序能够生成各种日志和跟踪。它们中的信息实际上更加结构化,但为了简单起见,假设它只是一个条目序列,其中每个条目都有一个时间戳和一条文本消息。

目前,我必须将 Wireshark 和日志并排放置在屏幕上,并痛苦地将时间戳关联起来,以便弄清楚它们是如何归属在一起的。为了使我的分析更容易,我想查看我的日志中的信息与 Wireshark 中的通信协议消息合并在一起,并按时间戳正确排序。

我发现 Wireshark 具有合并功能,所以这就是我的调查方向。我认为通过一些努力,我可以做到以下几点: 1) 设计我自己的 "protocol",并从我的应用程序生成 PCAPNG 文件,其中包含事件时间戳和消息,以及 2) 为上面开发一个Wireshark解析器,这样我就可以在Wireshark中查看事件了。

我的问题的第一部分是我的方法是否正确。

但我也想知道我是否无法通过更简单的方式实现我想要的。理想情况下,我想重用已经存在的东西,特别是避免开发专门的解析器。难道没有一个具有相同功能(只是时间戳和文本消息)的协议,以及 Wireshark 已有的解析器,我可以使用吗?

也许你可以利用 syslog along with syslogd or rsyslogd?

在没有系统日志服务器的情况下将任意消息注入跟踪文件的一种方法是使用 nc (netcat)。例如:

echo -n "Hello World" | nc -w 0 -u 1.1.1.1 514

Wireshark 还将此消息解析为系统日志流量。这在尝试将 "markers" 插入感兴趣事件发生位置附近的捕获文件时非常有用。

无论如何,使用 syslog 工具将使您不必编写协议。