golang 通过抓包,如何解析modbus 和 s7等工控协议

golang 通过抓包,如何解析modbus 和 s7等工控协议;或者解析 pcap 文件等;

gopacket是基于libpcap(数据包捕获函数库)的,该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。
著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。Libpcap可以在绝大多数Linux平台上运行。
主要有以下功能:
数据包捕获:捕获流经网卡的原始数据包
自定义数据包发送:构造任何格式的原始数据包
流量采集与统计:采集网络中的流量信息
规则过滤:提供自带规则过滤功能,按需要选择过滤规则