Estoy tratando de jugar con una herramienta de seguridad usando scapy para simular caracteres ASCII en una suma de comprobación UDP. Puedo hacerlo, pero solo cuando codifiqué los bytes en notación Hex. Pero no puedo convertir la palabra de cadena ASCII en notación binaria. Esto funciona para enviar los bytes de He
(dos primeros caracteres de "Hola mundo"):
sr1(IP(dst=server)/UDP(dport=53, chksum=0x4865)/DNS(rd=1,qd=DNSQR(qname=query)),verbose=0)'
Pero siempre que trato de usar una variable de test2
en lugar de 0x4865
, el paquete DNS no se transmite a través de la red. Esto debería crear binario para este 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)
Cuando imprimo la variable test2
se muestra la representación de notación binaria correcta.
¿Cómo convierto una cadena como He
para que se muestre en la notación de suma de comprobación aceptada por scapy, de 0x4865
??