我试图在python中创建小型监听模式嗅探器,嗅探器必须在屏幕上打印4个参数,SSID,Srouce MAC,RSSI,频率,我使用套接字库,因为Scapy没有解析Radiotap。
在我的情况下得到这个hexdump:
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字节是7B 09,向我们显示正确的频率,在这种情况下为2412mHz,
这里的问题是,如何将此十六进制转换为正确的频率? 我找到了这个页面http://www.radiotap.org/defined-fields/Channel
但不成功= \ 有谁知道如何将此十六进制转换为正确的频率?
答案 0 :(得分:0)
我解决了。
这两个字节首先包含通道" 7B"第二个" 09"是静态的。 我采取第一个并编码为hax(从原始数据)并在基数16上转换为值我添加2304我们得到了频率
蟒:
int(pkt[18].encode('hex'), 16)+2304)
答案 1 :(得分:0)
我建议使用结构库来解压缩值而不是简单的索引,并记住第二个字节0x09是通道标志。