我想玩一個安全工具,使用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
?