2017-08-14 73 views
0

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

回答

0

我能通過刪除bin()來得到這個工作。此作品:

test2 = int(binascii.hexlify('He'),16)