【问题标题】:decode raw data from 802.11 Radiotap解码来自 802.11 Radiotap 的原始数据
【发布时间】:2015-04-27 05:15:29
【问题描述】:

我尝试在 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

但没有成功=\ 有人可以知道如何将此十六进制转换为正确的频率吗?

【问题讨论】:

    标签: python sockets wireless wifi


    【解决方案1】:

    我解决了。

    这两个字节首先包含通道“7B”,第二个“09”是静态的。 我取第一个并编码为hax(来自原始数据)并在base 16上转换为我添加2304的值,我们得到了频率

    蟒蛇:

    int(pkt[18].encode('hex'), 16)+2304)
    

    【讨论】:

      【解决方案2】:

      我建议使用结构库来解压值而不是简单的索引,并记住第二个字节 0x09 是通道标志。

      【讨论】:

        猜你喜欢
        • 2020-05-27
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多