airkiss技术

最近研究airkiss微信配网,越研究觉得问题越多,为了避免大家走弯路,还是记录下过程中的心酸历程,以及一些知识点,希望能够帮到大家。

说在前面:
1,airkiss是微信开发的配网方案,个人觉得配网对于物联网来说太重要了,目前微信提供的sdk比较老,而且已经有很长时间没有更新了。网上也有说微信已经停止维护airkiss了。
2,airkiss由微信开发,代码未开源,不过据了解微信提供了安卓客户端的源码,或许可以找到一些蛛丝马迹。网上的资料也是少得可怜,有点技术含量更是寥寥无几,所以大多问题还是要靠自己查资料,反复调试解决。当然,这个技术用了随机数和加密,所以,如果要尝试破解,要做好被蹂躏的思想准备。
3,和airkiss功能类似的,有一个叫smartconfig的功能,我没有试过,但需要单独下载app,还是算了吧。
4,airkiss功能使用,需要一些配套的东西,先简单介绍下: 首先要有支持airkiss配网的硬件,即用来被配网的设备;其次要有微信;再次要有云服务器,用来提供airkiss配网自己设备发现的,后面会一一介绍。

一、airkiss原理
关于airkiss原理,网上找到一篇文章,但写得不是很详细,大致意思就是airkiss配网是通过报文长度进行编码。
首先,待配网设备要工作在混杂模式下,这个时候它是没有连接任何wifi,也就是说它收到的数据都是经过加密的。那么airkiss配网时,微信会通过硬件发送广播数据,数据长度分别是1,2,3,4,而设备收到的经过加密的数据长度是83,84,85,86,不同手机收到的长度可能存在差异,不过不影响配网。就类似pcap文件头部的魔术字,设备收到这样的报文,就可以锁定信道了,也表示正式开始配网了。
然后说说正式配网,实际配网需要将ssid和密码,以及随机数广播出来,设备收到这些数据后经过解密,最终得到配网数据。譬如ssid为hello,假设h对应的ascii码为0x11,对应的十进制为17,那么微信会发送一个udp广播报文,报文的udp负载内容为0x00,长度为17。我不确定是不是这样实现的,但差不多是这个意思,知道这些基本足够了,反正我们也不需要去破解。

这里顺便说一下,我使用的配网设备是esp8266,微信官网硬件平台提供的源码有误,实际不应该把所有收到的数据和长度传给微信提供的接口,而应该先转换为sniffer_buf才行,否则回调返回永远是0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值