【发布时间】:2021-06-12 09:05:25
【问题描述】:
如何在 UDP 段的头部末尾注入零以使其等于 20 个字节。 谁能帮帮我?
这是我的代码:
if UDP in packet:
"""get layers after udp"""
layer_after = packet[UDP].payload.copy()
"""build a padding layer"""
pad = Padding()
pad.load = '\x00' * 12
layer_before = packet.copy()
layer_before[UDP].remove_payload()
packet = layer_before / pad / layer_after
这是一个 udp 数据包的输出:
before : b'\xb8\xaco6\x1c\xa2\xe8\xe72<eP\x08\x00E\x00\x00.\x0bT@\x00\xec\x11\x18~MH\xa9\x82\x83\xca\xf0W+iC8\x00\x1a\x85+H\x00Y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
--------------------------------------------------------------
after : b'\xb8\xaco6\x1c\xa2\xe8\xe72<eP\x08\x00E\x00\x00.\x0bT@\x00\xec\x11\x18~MH\xa9\x82\x83\xca\xf0W+iC8\x00\x1a\x85+H\x00Y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
但它会在数据包的末尾添加零!!!!!
【问题讨论】:
-
我不清楚您要做什么,抱歉。你想创建一个包含 20 个字节数据的 UDP 数据包,所有这些字节都设置为 0,是吗? (所以你会有 IP 头 + UDP 头 + 20 个字节的 0)
-
不,我想在 UDP 段的头部的末尾注入零,使其等于 20 个字节
-
但 UDP 的标头是不变的。所以“在 UDP 报文头的末尾注入零”意味着添加 12 个字节的有效负载。
-
但我想在标题之后添加零,而不是有效载荷的结尾
标签: python header scapy packet