我想玩一个安全工具,使用scapy来伪造UDP校验和中的ASCII字符。我可以做到这一点,但只有当我用十六进制表示法硬编码字节时。但我无法将ASCII字符串转换为二进制符号。这个工程送“他”(前两次的“世界你好”的字符)的字节: sr1(IP(dst=server)/UDP(dport=53, chksum=0x4865)/DNS(rd=1,qd=DNSQR(qname=query)),verbose=0)
通过网络欺骗字节的UDP校验和
但每当我尝试使用的test2
代替0x4865
一个变量,DNS报文不通过网络传输。这应该为此创造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)
当我打印test2的变量是表明正确的二进制记数法表示。
如何转换字符串,例如He
,以便在scapy接受的校验和符号中显示0x4865
?