我注意到以下几点。如果我写以下两个类
from scapy.all import *
class Incorrect(Packet):
fields_desc=[
BitField(
"X", 0, 1
),
BitField(
"Y", 0, 2
),
BitField(
"Z", 0, 3
),
]
class Correct(Packet):
fields_desc=[
BitField(
"X", 0, 3
),
BitField(
"Y", 0, 3
),
BitField(
"Z", 0, 2
),
]
并实例化它们
^{pr2}$调用Incorrect
包的show2()
方法失败,它给出以下输出
WARNING: No route found for IPv6 destination :: (no default route?)
Traceback (most recent call last):
File "/home/lk/code/BACnetFuzzingProject/src/scapytest.py", line 32, in <module>
i.show2()
File "/usr/local/lib/python2.7/dist-packages/scapy/packet.py", line 848, in show2
self.__class__(str(self)).show()
File "/usr/local/lib/python2.7/dist-packages/scapy/packet.py", line 268, in __str__
return self.build()
File "/usr/local/lib/python2.7/dist-packages/scapy/packet.py", line 330, in build
p = self.do_build()
File "/usr/local/lib/python2.7/dist-packages/scapy/packet.py", line 323, in do_build
p = self.post_build(pkt,pay)
File "/usr/local/lib/python2.7/dist-packages/scapy/packet.py", line 337, in post_build
return pkt+pay
TypeError: can only concatenate tuple (not "str") to tuple
但它与Correct
包一起工作。我认为它失败是因为Incorrect
包的大小不是8的倍数,至少每次都会失败。但这有什么不好的呢?为什么要这么做?
目前没有回答
相关问题 更多 >
编程相关推荐