工具

PCAP 分析器

qianmoQqianmoQ· 更新于 2026-10-01· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

PCAP Analyzer 会通过 PLC4X 编解码器回放捕获到的协议流量,并报告出现的问题。

对于每个数据包,它都会将应用层负载送入真实的 PLC4X 编解码器,对解析后的消息重新序列化,然后将结果与原始字节进行比对。若不一致,则说明该消息的读取器与写入器存在分歧,这使得该工具成为编解码器本身的回归测试工具——同时也是查明驱动为何在某个特定设备上失败的好方法。

它使用 Go 编写,位于 plc4x-extras 仓库中。

如果你想将捕获的数据回放到正在运行的驱动中,而不是回放到编解码器中,请参阅 Capture Replay 和 PCAP Replay 传输。

构建与运行

cd plc4go
go run ./tools/plc4xpcapanalyzer ui --demo

或者构建一个独立的可执行文件:

go build -o plc4xpcapanalyzer ./tools/plc4xpcapanalyzer
分析器通过 gopacket/pcap 读取抓包数据,因此 需要 cgo 和 libpcap。使用 CGO_ENABLED=0 构建会失败。
-----------------------------------------------------------------------------------------------------------------------------------------

命令

plc4xpcapanalyzer analyze <protocol> <capture>   # parse, reserialize and compare
plc4xpcapanalyzer extract <protocol> <capture>   # dump the application payloads
plc4xpcapanalyzer ui [capture]                   # the interactive terminal interface

支持的协议为 bacnetip 和 c-bus;bacnet 和 cbus 被接受为别名。

extract 只在详细程度为 2 及以上时才打印负载,因此请传入 -vv。

配置

设置来源于三处,按通常的顺序:内置默认值会被持久化的会话配置覆盖,而持久化配置又会被命令行上的标志覆盖。conf set 写入的是持久层,因此已保存的设置在重启后依然保留,同时绝不会覆盖显式传入的标志。

恰好等于默认值的标志与未设置的标志无法区分,因此对于该字段,以持久化的值为准。

评论

登录后参与评论

正在加载评论…