利用RaspberryPI搭建无线AP抓取智能积木无线数据包

最近带孩子玩能力风暴机器人氪-2,Abilix 氪系列里面,这款入门级别的产品只能靠Wifi连接手机APP或者PAD APP。由于是做技术的,自然感兴趣能力风暴的控制协议,想抓包看看。结果,出乎意料的是为了抓取无线网络的包,折腾了一个白天。

1 初步尝试

现今家用的无线路由器基本上都不支持端口镜像,而过年锁在家里,为了闲暇探究去买一个高级货或者其他替代品,都有些太奢侈了。基于现有条件,自然想到使用软wifi在Windows下做热点,应该可以轻易抓取连接热点的各个终端的通信。

说干就干,在PC上连接无线网卡,而后安装360wifi,启动后,热点成功创建。然而,初步查看抓取的包,发现这种方法可以抓取各个终端与外部互联网的通信,却无法抓取终端内网之间的点对点通信。即使wireshark内设置虚拟AP(Microsoft Virtual WLAN)为混杂,也只能看到广播包。

这一点非常奇怪。按理来说,软AP终端之间的通信也是需要经过PC上的无线网卡,不应该抓不到。可能问题还是出在驱动上,驱动是不是支持混杂模式抓包?换驱动、折腾到下午,仍然无果。

2 Raspberry PI 解决问题

遇到上述困境,笔者自然想到在Linux下做。好在家里有树莓派,直接启动,而后参照文章《树莓派3简单设置无线AP-转载》,使用不用敲大量命令的创建方式:

  1. git clone https://github.com/oblique/create_ap.git
  2. cd create_ap
  3. sudo make install就这样安装好了
  4. 接下来安装依赖库sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq
  5. 就这么简单几个命令就能安装好全部环境
  6. 接下来保证你的网线插在pi3上并且能上网就行了。输入命令启动无线AP: sudo create_ap wlan0 eth0 热点名 密码
  7. 或者启动AP服务systemctl start create_ap ,然后添加到开机启动systemctl enable create_ap .此过程中需要输入密码

5分钟折腾好,安装wireshark, VNC上树莓派,开始抓包。
PI
终于看见通信啦!初步来看:

  1. 氪-2的握手前,发现过程用的是7777端口广播,由手机APP发起;
  2. 氪-2收到广播,通过7777、9999端口回应型号等信息,当然具体字段的意义不必深究;
  3. 每组UDP行为是成对出现的,应该是有确认机质;
  4. 完全连接后,UDP 9999端口用于大量心跳(或状态)、实时指令(比如电机、传感器)控制;
  5. 机器人开启TCP 10086端口 ( 额!)用于可靠通信,比如上载程序。
  6. 大量采用二进制结构,多以aa55 55aa 开始。

3 底层API参考

从官网下载C开发环境,VCJ4.3,即可看到API。和上述协议应该大致可以对应,但是由于不支持氪-2,无法验证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁劲犇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值