组播方式进行wifi信息配置的一些要点



1.抓到的包有的是来自路由器,有的是来自手机.

           虽然都是从手机端发出的组播包,但是wifi模块抓到的包从from_ds,to_ds的标记位来看,有时候这些组播包是来自路由器端,有的是来自手机端.(TODO:从我们外行的角度看,应该都是来自手机端的,为什么会来自路由器,需要进一步进行深究.)

           来自手机端和来自路由器端的包头,地址信息是不同的.同时,收到的数据包长度也会不同.

 

 


关于包长的不同:

           实际测试发现, 来自路由器的包长会多2个字节,因为它的帧类型为QOS_DATA_FRAME=0x88. 所以对包长的计算需要在wlan_netif.c中用如下代码进行区分.

if(frame->frame_type&0x80 == 0)

           sniffer_callback(frame, datalen-30);//将包头和包长通过回调函数上传给上层

else  // QOS_DATA_FRAME,帧头多2  个字节.

                    sniffer_callback(frame, datalen-32);//将包头和包长通过回调函数上传给上层

关于mac地址的不同:

           当数据是发向路由器的:发送端地址就是实际发送设备的地址,接收端地址是路由器的mac地址(bssid),附加地址是实际的目的地址.

           当数据包发自路由器的:发送端地址就是路由器的mac地址(bssid),接收端地址是实际的目的地址,附加地址是实际的发送设备的地址.

           所以,在对抓到的包进行分析的时候,要判断fromDS和toDS标志位,然后提取出正确的源地址和路由器地址,从而判断是否是同一系列的数据包.

          


2.不同加密方式,包长不同.


         阅读”乐鑫esp8266”的抓包代码发现:假设不加密时的包长为x,那么wep加密的包长为x+8,wpa(2)-aes加密的包长为x+16,wpa(2)-aes加密的包长为x+20

比如只发一个字节,那么抓到的包长:不加密为77,wep加密为85,aes加密为93,tkip加密为97.

因此,可以根据包长来判断是何种加密方式.

 

 

参考文献:

<802.11无线网络权威指南(第二版全_非扫描)  >

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值