我希望能够在scapy中显示来自StreamSocket的十六进制数据。这是我目前的scapy代码
from scapy.all import socket, StreamSocket, Raw
import data_packets, returned_data
data = data_packets.client_to_server_init()
mysocket = socket.socket()
mysocket.connect((args.IP_Address, args.dPort))
myStream = StreamSocket(mysocket)
result=myStream.sr1(Raw(data))
result.show()
结果类似于下面显示的结果
###[ Raw ]###
load = '\x00\x00\x02\x99R\x92\x05R\xec\x02R\xe9\x02R...
基本上我希望所有内容都是十六进制的,而目前返回的数据是以十六进制和ASCII字符的混合形式返回的,正如您从上面的输出中看到的那样(注意中间混合的大写R,它们是\ x52转换为ASCII)
注意:我已经尝试创建自己的show()函数,但它没有改变任何东西。该代码位于
之下def my_show(packet):
for f in packet.fields_desc:
fvalue = packet.getfieldval(f.name)
reprval = f.i2repr(packet,fvalue)
return "%s" % (reprval)
答案 0 :(得分:0)
您可以尝试从Python: print a string as hex bytes?
取一页并在您的外部使用encode('hex')
作为my_show的一部分:
return ':'.join(x.encode('hex') for x in fvalue)