Sto provando a giocare con uno strumento di sicurezza usando scapy per falsificare i caratteri ASCII in un checksum UDP. Posso farlo, ma solo quando ho hardcode i byte nella notazione esadecimale. Ma non posso convertire la parola stringa ASCII in notazione binaria. Questo funziona per inviare i byte di He
(i primi due caratteri di "Hello world"):
sr1(IP(dst=server)/UDP(dport=53, chksum=0x4865)/DNS(rd=1,qd=DNSQR(qname=query)),verbose=0)'
Ma ogni volta che provo a usare una variabile di test2
invece di 0x4865
, il pacchetto DNS non viene trasmesso sulla rete. Questo dovrebbe creare binari per questo ASCII:
test2 = bin(int(binascii.hexlify('He'),16))
sr1(IP(dst=server)/UDP(dport=53, chksum=test2)/DNS(rd=1,qd=DNSQR(qname=query)),verbose=0)
Quando stampo la variabile test2
viene mostrata la corretta rappresentazione della notazione binaria.
Come faccio a convertire una stringa come He
in modo che sia visibile nella notazione checksum accettata da scapy, di 0x4865
??