我尝试在python中创建小型监控模式嗅探器,嗅探器必须在屏幕上打印4个参数,SSID,Srouce MAC,RSSI,Frequency,我使用了socket库,因为Scapy不能解析Radiotap。
在我的例子中,获取这个十六进制转储:
0000 00 00 1A 00 2F 48 00 00 73 B7 E3 38 67 01 00 00 ..../H..s..8g...
0010 10 02 7B 09 C0 00 AE 00 00 00 80 00 00 00 FF FF ..{.............
0020 FF FF FF FF 00 1B 9E A8 1D 6E 00 1B 9E A8 1D 6E .........n.....n
0030 F0 FC 08 60 69 8F 24 00 00 00 64 00 11 04 00 05 ...`i.$...d.....
0040 41 72 6F 6D 61 01 08 82 84 8B 96 24 30 48 6C 03 Aroma......$0Hl.
0050 01 06 05 04 00 01 00 04 2A 01 04 2F 01 04 32 04 ........*../..2.
0060 0C 12 18 60 DD 0E 00 50 F2 04 10 4A 00 01 10 10 ...`...P...J....
0070 44 00 01 01 DD 09 00 10 18 02 04 F0 00 00 00 DD D...............
0080 18 00 50 F2 01 01 00 00 50 F2 02 01 00 00 50 F2 ..P.....P.....P.
0090 02 01 00 00 50 F2 02 0C 00 DD 18 00 50 F2 02 01 ....P.......P...
00a0 01 80 00 03 A4 00 00 27 A4 00 00 42 43 5E 00 62 .......'...BC^.b
00b0 32 2F 00 C6 93 C8 81 2/.....在第二行(0010)中,第3和第4字节IS7B09向我们显示了正确的频率,在这种情况下为2412 the,
这里的问题是,我如何将这个十六进制转换为正确的频率?我找到了这个页面http://www.radiotap.org/defined-fields/Channel
但不是成功=\有人知道如何将这个十六进制转换为正确的频率吗?
发布于 2015-02-25 19:28:39
我解决了。
这两个字节首先包含通道"7B“,第二个"09”是静态的。我取第一个并编码为hax (从原始数据),然后以16为基数转换为I加上2304的值,我们得到了频率
python:
int(pkt[18].encode('hex'), 16)+2304)发布于 2015-03-13 22:51:01
我建议使用结构库来解压这些值,而不是简单的索引,并且记住第二个字节0x09是通道标志。
https://stackoverflow.com/questions/28715161
复制相似问题