preneond Asked: 2020-07-19 05:22:37 +0800 CST2020-07-19 05:22:37 +0800 CST 2020-07-19 05:22:37 +0800 CST 如何按 IRC 通道拆分 pcap 772 我想知道是否有一种方法可以拆分每个通道包含(仅)IRC 的 pcap。我正在尝试使用现有的 IDS(suricata、snort)比较通道中僵尸网络检测的准确性。如何检查检测到哪个 IRC 通道的唯一方法似乎是按 IRC 通道拆分 pcap 并尝试分别分析每个 pcap。有没有办法在tcpdump 或任何其他工具中做到这一点? 非常感谢! irc tcpdump pcap 1 个回答 Voted Best Answer Esa Jokinen 2020-07-19T06:24:35+08:002020-07-19T06:24:35+08:00 这应该很简单,因为每条消息(RFC 2812, 3.3;RFC 1459, 2.3)和通道操作(RFC 2812, 3.2;RFC 1459, 4.2)在两个方向上都有通道名称: 客户端消息到通道: PRIVMSG #channel :Hello! 来自频道的服务器消息: :[email protected] PRIVMSG #channel :Hello! 通道相关操作命令示例,往返服务器: JOIN #channel :[email protected] JOIN #channel MODE #channel +ts :[email protected] MODE #channel +ts TOPIC #test :new topic :[email protected] TOPIC #test :new topic 当然,如果它在消息、主题等中,您必须创建一个不计算频道名称的正则表达式:。我认为使用该字符作为分隔符是可以的,如下所示: /^(:|)[^:]*(PRIVMSG|JOIN|PART|MODE|TOPIC) #channel( |$)/gm ^(:|)允许可选:的作为来自服务器的消息的第一个字符 [^:]*在下一个之后禁用所有查找: (PRIVMSG|JOIN|PART|MODE|TOPIC)您正在寻找的命令列表 - 根据需要完成! #channel频道名称 ( |$)拖尾空间或行尾(我们不想匹配#channelfoo) 全局和/gm多行标志 这应该适用于您的用例:它可能会在边界情况下失败,并且不是真正的完整 IRC 协议解析器。
这应该很简单,因为每条消息(RFC 2812, 3.3;RFC 1459, 2.3)和通道操作(RFC 2812, 3.2;RFC 1459, 4.2)在两个方向上都有通道名称:
客户端消息到通道:
来自频道的服务器消息:
通道相关操作命令示例,往返服务器:
当然,如果它在消息、主题等中,您必须创建一个不计算频道名称的正则表达式
:
。我认为使用该字符作为分隔符是可以的,如下所示:^(:|)
允许可选:
的作为来自服务器的消息的第一个字符[^:]*
在下一个之后禁用所有查找:
(PRIVMSG|JOIN|PART|MODE|TOPIC)
您正在寻找的命令列表 - 根据需要完成!#channel
频道名称( |$)
拖尾空间或行尾(我们不想匹配#channelfoo
)/gm
多行标志这应该适用于您的用例:它可能会在边界情况下失败,并且不是真正的完整 IRC 协议解析器。