예제 #1
0
    name = "CtrlPDU"
    fields_desc = [
        XByteField("optcode", 0),
        ByteEnumField("version", 0, BTLE_Versions),
        LEShortEnumField("Company", 0, BTLE_Corp_IDs),
        XShortField("subversion", 0)
    ]


bind_layers(BTLE, BTLE_ADV, access_addr=0x8E89BED6)
bind_layers(BTLE, BTLE_DATA)
bind_layers(BTLE_ADV, BTLE_ADV_IND, PDU_type=0)
bind_layers(BTLE_ADV, BTLE_ADV_DIRECT_IND, PDU_type=1)
bind_layers(BTLE_ADV, BTLE_ADV_NONCONN_IND, PDU_type=2)
bind_layers(BTLE_ADV, BTLE_SCAN_REQ, PDU_type=3)
bind_layers(BTLE_ADV, BTLE_SCAN_RSP, PDU_type=4)
bind_layers(BTLE_ADV, BTLE_CONNECT_REQ, PDU_type=5)
bind_layers(BTLE_ADV, BTLE_ADV_SCAN_IND, PDU_type=6)

bind_layers(BTLE_DATA, L2CAP_Hdr, LLID=2)  # BTLE_DATA / L2CAP_Hdr / ATT_Hdr
# LLID=1 -> Continue
bind_layers(BTLE_DATA, CtrlPDU, LLID=3)

conf.l2types.register(DLT_BLUETOOTH_LE_LL, BTLE)
conf.l2types.register(DLT_BLUETOOTH_LE_LL_WITH_PHDR, BTLE_RF)

bind_layers(BTLE_RF, BTLE)

bind_layers(PPI, BTLE, dlt=147)
addPPIType(30006, BTLE_PPI)
예제 #2
0
    name = "CtrlPDU"
    fields_desc = [
        XByteField("optcode", 0),
        ByteEnumField("version", 0, BTLE_Versions),
        LEShortEnumField("Company", 0, BTLE_Corp_IDs),
        XShortField("subversion", 0)
    ]


bind_layers(BTLE, BTLE_ADV, access_addr=0x8E89BED6)
bind_layers(BTLE, BTLE_DATA)
bind_layers(BTLE_ADV, BTLE_ADV_IND, PDU_type=0)
bind_layers(BTLE_ADV, BTLE_ADV_DIRECT_IND, PDU_type=1)
bind_layers(BTLE_ADV, BTLE_ADV_NONCONN_IND, PDU_type=2)
bind_layers(BTLE_ADV, BTLE_SCAN_REQ, PDU_type=3)
bind_layers(BTLE_ADV, BTLE_SCAN_RSP, PDU_type=4)
bind_layers(BTLE_ADV, BTLE_CONNECT_REQ, PDU_type=5)
bind_layers(BTLE_ADV, BTLE_ADV_SCAN_IND, PDU_type=6)

bind_layers(BTLE_DATA, L2CAP_Hdr, LLID=2)  # BTLE_DATA / L2CAP_Hdr / ATT_Hdr
# LLID=1 -> Continue
bind_layers(BTLE_DATA, CtrlPDU, LLID=3)

conf.l2types.register(DLT_BLUETOOTH_LE_LL, BTLE)
conf.l2types.register(DLT_BLUETOOTH_LE_LL_WITH_PHDR, BTLE_RF)

bind_layers(BTLE_RF, BTLE)

bind_layers(PPI, BTLE, dlt=147)
addPPIType(30006, BTLE_PPI)
예제 #3
0
_PPIDot11CommonChFlags = ['', '', '', '', 'Turbo', 'CCK', 'OFDM', '2GHz', '5GHz',  # noqa: E501
                          'PassiveOnly', 'Dynamic CCK-OFDM', 'GSFK']

_PPIDot11CommonPktFlags = ['FCS', 'TSFT_ms', 'FCS_Invalid', 'PHY_Error']

# PPI 802.11 Common Field Header


class Dot11Common(Packet):
    name = "PPI 802.11-Common"
    fields_desc = [LEShortField('pfh_type', PPI_DOT11COMMON),
                   LEShortField('pfh_length', 20),
                   PPITSFTField('TSF_Timer', 0),
                   FlagsField('Pkt_Flags', 0, -16, _PPIDot11CommonPktFlags),
                   LEShortField('Rate', 0),
                   LEShortField('Ch_Freq', 0),
                   FlagsField('Ch_Flags', 0, -16, _PPIDot11CommonChFlags),
                   ByteField('FHSS_Hop', 0),
                   ByteField('FHSS_Pat', 0),
                   dBmByteField('Antsignal', -128),
                   dBmByteField('Antnoise', -128)]

    def extract_padding(self, p):
        return b"", p
# Hopefully other CACE defined types will be added here.


# Add the dot11common layer to the PPI array
addPPIType(PPI_DOT11COMMON, Dot11Common)
예제 #4
0
    HCSINullField("Reserved21", None),  # noqa: E501
    HCSINullField("Reserved22", None),
    HCSINullField("Reserved23", None),  # noqa: E501
    HCSINullField("Reserved24", None),
    HCSINullField("Reserved25", None),  # noqa: E501
    HCSIDescField("SerialNumber", None),
    HCSIDescField("ModelName", None),  # noqa: E501
    HCSIDescField("DescString", None),
    XLEIntField("AppId", None),
    HCSIAppField("AppData", None),
    HCSINullField("Extended", None)
]


class Antenna(HCSIPacket):
    name = "PPI Antenna"
    fields_desc = [
        LEShortField('pfh_type', PPI_ANTENNA),  # pfh_type
        LEShortField('pfh_length', None),  # pfh_len
        ByteField('geotag_ver',
                  CURR_GEOTAG_VER),  # base_geotag_header.ver  # noqa: E501
        ByteField('geotag_pad', 0),  # base_geotag_header.pad
        LEShortField('geotag_len', None)
    ] + _HCSIBuildFields(ANT_Fields)  # noqa: E501


addPPIType(PPI_GPS, GPS)
addPPIType(PPI_VECTOR, Vector)
addPPIType(PPI_SENSOR, Sensor)
addPPIType(PPI_ANTENNA, Antenna)
예제 #5
0
파일: ppi_geotag.py 프로젝트: commial/scapy
              Fixed3_6Field("HorizBw", None), Fixed3_6Field("VertBw", None),
              Fixed3_6Field("PrecisionGain", None), XLEShortField("BeamID", None),  # noqa: E501
              HCSINullField("Reserved06", None), HCSINullField("Reserved07", None),  # noqa: E501
              HCSINullField("Reserved08", None), HCSINullField("Reserved09", None),  # noqa: E501
              HCSINullField("Reserved10", None), HCSINullField("Reserved11", None),  # noqa: E501
              HCSINullField("Reserved12", None), HCSINullField("Reserved13", None),  # noqa: E501
              HCSINullField("Reserved14", None), HCSINullField("Reserved15", None),  # noqa: E501
              HCSINullField("Reserved16", None), HCSINullField("Reserved17", None),  # noqa: E501
              HCSINullField("Reserved18", None), HCSINullField("Reserved19", None),  # noqa: E501
              HCSINullField("Reserved20", None), HCSINullField("Reserved21", None),  # noqa: E501
              HCSINullField("Reserved22", None), HCSINullField("Reserved23", None),  # noqa: E501
              HCSINullField("Reserved24", None), HCSINullField("Reserved25", None),  # noqa: E501
              HCSIDescField("SerialNumber", None), HCSIDescField("ModelName", None),  # noqa: E501
              HCSIDescField("DescString", None), XLEIntField("AppId", None),
              HCSIAppField("AppData", None), HCSINullField("Extended", None)]


class Antenna(HCSIPacket):
    name = "PPI Antenna"
    fields_desc = [LEShortField('pfh_type', PPI_ANTENNA),  # pfh_type
                   LEShortField('pfh_length', None),  # pfh_len
                   ByteField('geotag_ver', CURR_GEOTAG_VER),  # base_geotag_header.ver  # noqa: E501
                   ByteField('geotag_pad', 0),  # base_geotag_header.pad
                   LEShortField('geotag_len', None)] + _HCSIBuildFields(ANT_Fields)  # noqa: E501


addPPIType(PPI_GPS, GPS)
addPPIType(PPI_VECTOR, Vector)
addPPIType(PPI_SENSOR, Sensor)
addPPIType(PPI_ANTENNA, Antenna)