В 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
экземпляров, но как?
Спасибо за вашу помощь.