【问题标题】:Reading Raw Bytes using Scapy?使用 Scapy 读取原始字节?
【发布时间】:2021-10-21 17:44:06
【问题描述】:

我有一个正在构建 DNS 转发器的项目。

我正在使用 UDP 服务器套接字来侦听端口 53 上的 DNS 请求(客户端使用 dig 命令),我必须将收到的原始 DNS 请求转发给 scapy 以对其进行剖析。我知道 scapy 用于伪造/发送/操作数据包。

原始请求看起来像这样 -

b'\xd6t\x01\x00\x01\x00\x00\x00\x00\x00\x01\x03www\x08facebook\x03com\x00\x00\x01\x00\x01\x00\x00)\x10\x00\x00\x00\x00\x00\x00\x00'

scapy 中是否有用于导入原始 DNS 请求以获取标志的方法/函数,询问什么记录?

【问题讨论】:

    标签: python networking dns scapy


    【解决方案1】:

    只需使用您的字节字符串初始化 DNS 有效负载:

    from scapy.all import DNS
    p = DNS(b'\xd6t\x01\x00\x01\x00\x00\x00\x00\x00\x01\x03www\x08facebook\x03com\x00\x00\x01\x00\x01\x00\x00)\x10\x00\x00\x00\x00\x00\x00\x00')
    

    然后您可以访问其字段:

    print(p.id)
    print(p.opcode)
    ...
    

    [编辑] 并打印其所有内容:

    p.show()
    

    【讨论】:

    • 好的..所以这个答案是部分正确的。要获取这些字段,我们必须在 p = DNS(........) 的末尾添加“.show()”
    • @Mr.X 对。我编辑了答案以添加这种可能性。
    猜你喜欢
    • 2022-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    相关资源
    最近更新 更多