sto usando i prodotti F5 Networks BIG-IP, che sono l'aggiunta di un Ethernet II telaio del rimorchio su misura per il debug. Sto provando con Scapy a legare un nuovo livello per questo trailer, ma non sono in grado di farlo.Scapy - Come sezionare un campo Trailer Ethernet
posso vedere il carico utile di interesse nel campo del riempimento ma utilizzando bind_layers non esegue la corretta dissezione della sezione di riempimento desiderato.
class MyEthTrailer(Packet):
name = "Ethernet Trailer"
fields_desc = [ ####Fields Mapping Section ]
def dissect(self, s):
self.payl,self.pad = self.extract_padding(s)
s = self.do_dissect(self.pad)
Una soluzione che stavo pensando era quello di creare una nuova classe di sostituzione Ethernet (o sovraccarico), che posso poi si riferisce alla tipica payload Ethernet e il mio nuovo trailer. Ma io non sono un super programmatore di Python/scapy, e non sono sicuro che questa sia l'opzione migliore.
Questo è il modo in Scapy attualmente associa il mio pacchetto dopo applico bind_layers (TCP, MyEthTrailer). Le informazioni che ho dovuto parse è nella classe Imbottitura
<Ether dst=00:00:00:00:00:00 src=00:00:00:00:00:01 type=0x8100 |<Dot1Q prio=0L id=0L vlan=01L type=0x800 |<IP version=4L ihl=5L tos=0x0 len=67 id=1 flags=DF frag=0L ttl=255 proto=tcp chksum=0x01 src=10.0.0.1 dst=10.0.1.1 options=[] |<TCP sport=1111 dport=https seq=1 ack=1 dataofs=5L reserved=0L flags=PA window=4380 chksum=0xb718 urgptr=0 options=[] |<MyEthTrailer |<Padding load='\xPayload of MyEtherTrailer' |>>>>>>
posso forzare la decodifica di un pacchetto TCP SYN chiamando [UPDATE-1]
:packet[TCP].decode_payload_as(MyEthTrailer)
Tuttavia, il metodo bind_layers , non sembra funzionare automaticamente, e questo non funziona con più complesso pacchetto perché è mescolare TCP Imbottitura con MyEthTrailer payload.
[UPDATE-2]
ho preso parte a lavorare, ma ogni pacchetto deve essere colato correttamente, allora posso leggere il payload rimorchio e decodificarlo. Ad esempio se un pacchetto è TCP/DNS/MyEthTrailer, funzionerà. Se non so che è DNS, e non è impostato correttamente, è ancora mescolato nel carico utile TCP e Padding.
vostro aiuto è apprezzato.
L'origine del plug-in F5 è qui: https://devcentral.f5.com/wiki/AdvDesignConfig.F5WiresharkPlugin.ashx. Spero che questo ti aiuterà a isolare. –