wireshark使用_使用Wireshark抓取罗克韦尔PLC MSG通讯数据

89a299448c5dbdc05762015193e64ffe.png使用Wireshark抓取AB  MSG通讯一本次实验使用工具

1、CompactLogix L36ERM、ContorLogix L71各一台;

2、MOXA  EDS 408 交换机一台;

3、装有Wireshark的笔记本电脑一台;

二实验步骤

1、在CompactLogix L36ERM里创建全局变量,我这里定义了一个二维数组;

3a18c9a3c6e200baedfd9b81a03a98c4.png

2、在ContorLogix L71组态L36ERM,并配置好MSG通讯;

a2167d2641133a0d0d021d0477c22569.png

6ec11a85a2687287ed674acfd79c3529.png

fac4506eab3b7d845db306e1e93c138d.png

3、因为Wireshark是抓取流经自己电脑端口的流量,所以需要用交换机将PLC的通讯端口映射到电脑上来,我的交换机配置如下;

6ccf87e0d8cfd2af2ebce1bc9226d268.png

4、打开Wireshark,并选择自己的连接路径。

a9d226c312ca44ab9bba3acd8a4a63b8.png

我这里是以太网2,双击进入如下界面就可以进行抓包了。

aeea0fec79c5f9d2453f250ee7fa6510.png

这里可以看到有很多无效的数据,我们过滤一下,在地址栏输入自己的两个PLC的IP地址。因为我在L71里将L36ERM组态到连接里了,所以他们每隔3S左右,会进行一个通讯确认。

1f1b6f79b7326f69920dd9f77fb715a8.png

5、重新开始捕获,让数据少一点,并使能一下MSG通讯,就得到下面四个数据包。到了这里,其实我们就已经成功抓取到了,继续分析数据内容;

657e5eb670951c87efc8fb423ff898dc.png

双击第一行,里面画圈的含义为从test1的0号数组开始读取2个数据。

9a55e9758c831a62b1907177ddb155f3.png

第二行和第四行分别为L36ERM的请求确认和L71的接收确认。

双击第三行,画圈的部分就是回复的数据,前面的C400暂时不管,我的标签数据类型是DINT,站四个字节,那么回复的数据分别为8E D7 3E 0D和2A 02 00 00。

cc90b1b8748cb292fee44c6bd5cb97e2.png

打开数据转换工具,高低位转换后,将16进值转换为10进值。cdbfcfd0ba8af16af596921ab685c95b.png

c2dec05904cb849d3f0c9ad4e6e58018.png

799db6ceece82aaa5080d2ca53c92e00.png

可以看到,和我们L71接收到的数据是一样的。

三实验总结

本次实验是将L36ERM组态到L71里了,如果组态而是使用的路径的话,还会看到TCP的三次握手。

52211fabf5e832c1a393629b067b82c7.png

当然,因为篇幅限制,本篇文章省略了很多步骤,各位有兴趣的话,可以自己动手试一下,有其他问题欢迎讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wireshark是一款开源的网络协议分析工具,支持Windows、Linux和Mac等多个操作系统。它可以捕获和分析网络数据包,帮助用户了解网络通信的细节,包括协议、数据流和错误等。 Java_Wireshark是一个Java编写的Wireshark插件,可以在Wireshark使用Java代码来处理捕获的数据包。使用Java_Wireshark需要先安装Wireshark和Java,在Wireshark的插件管理中添加Java_Wireshark插件,然后在Java_Wireshark中编写自己的处理逻辑。 下面是一个简单的Java_Wireshark示例,用于计算HTTP请求的数量: ```java import org.wireshark.api.*; import org.wireshark.api.annotations.*; import org.wireshark.api.plugins.*; @WiresharkPlugin(name = "HTTP Request Counter") public class HttpRequestCounter implements IPlugin { private int requestCount = 0; @Override public void run(final IPluginContext context) { final IPacketListener listener = new IPacketListener() { @Override public void onPacket(final IPacket packet) { if (packet.hasProtocol("HTTP")) { requestCount++; System.out.println(String.format("HTTP requests: %d", requestCount)); } } }; context.addPacketListener(listener); } } ``` 这个例子中,我们使用Wireshark提供的IPacketListener接口来监听捕获的数据包,判断是否包含HTTP协议,并统计请求的数量。通过Wireshark的插件管理,我们可以将这个插件加载到Wireshark中,然后使用它来分析HTTP请求。 需要注意的是,Java_Wireshark是一个比较高级的功能,需要一定的Java编程经验和Wireshark使用经验。如果您不熟悉Java和Wireshark,建议先学习基础知识再尝试使用Java_Wireshark

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值