【Wireshark 抓 CAN 总线】Wireshark 抓取 CAN 总线数据的实现思路

最近看到一个帖子
Wireshark 对接 Windows 系统命名管道,抓取数据
我突然想到一个很有意思的方式
你没看错
用 Wireshark 来抓取 CAN 总线数据
【其实 Wireshark 上有 CAN 总线的的解码器,不信你可以在表达式栏打 can 试下,是有这个解码器的】

Wireshark 的自定义 lua 插件,强大的表达式过滤,数据着色标记等等,我可以说这是很多 CAN 总线调试工具的上位机都不具备的。

那么这整套流程怎么走下来呢
首先,需要有 CAN 调试工具厂家的驱动库,这个肯定会提供。
然后,用你熟悉的语言写一个 Windows 命名管道服务器的“转换器”,将你的调试工具对接到 Windows 命名管道服务器上,然后按照 Wireshark 中对于数据格式的定义进行编码,然后 Wireshark 就可以通过监听对应的命名管道服务器来实现对数据的接收和展示了。

那怎么编码呢
Wireshark 其实提供了范例代码
官方范例代码
那么如何将用熟悉的调试工具的数据在 wireshark 上展示成 can 总线数据呢

你需要将从命名管道服务器上发出的数据进行一定的包装,也就是范例代码的实现,实现的时候,传入的参数按照下面的链路代码给出的值,找到 socket CAN 对应的值,它有提供其数据帧的字节定义格式,照着做就可以了。
网络链路代码

然后自定义 lua 解码器的实现,可以去 Github 上找找和 can 数据有关的解码器实现。

按照这个弄法。其实我觉得只要是网络链路代码存在的协议,应该都可以通过这个方式实现对对应协议的 Wireshark 解码展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值