Обнюхивать пользовательские пакеты на Scapy - PullRequest
0 голосов
/ 18 апреля 2020

В Scapy, когда мы перехватываем трафик c с помощью функции sniff(), возможно ли отфильтровать типы пакетов, которые мы создали самостоятельно? Например, я создал пакет с именем CSTP, например, так:

class CustomPacket(Packet):
    name = "CSTP"
    fields_desc = [
        ShortField("custom_field", random.getrandbits(16)),
        ...
    ]

Можно ли тогда фильтровать только наш специальный тип пакетов, чтобы напрямую манипулировать экземпляром CustomPacket в действии prn, а не пакет TCP или IP?

def verify_cstp(pkt):
    print("CSTP packet received!", pkt.custom_field)

if __name__ == "__main__":
    sniff(filter="cstp", prn=verify_cstp)

Важная функция, которую я хочу иметь, - это непосредственное управление экземпляром CustomPacket в функции verify_cstp. Возможно, вместо этого можно фильтровать TCP-пакеты и использовать их полезную нагрузку для создания CustomPacket экземпляров, но как?

Спасибо за вашу помощь.

...