好的,所以基本上我想要做的是拦截一些我知道包含一些JSON数据的数据包。但是HTTP数据包不是人类可读的,所以这是我的问题,我需要使整个数据包(不仅仅是报头,它已经是纯文本)是人类可读的。我对网络一点经验都没有。
import pcap
from impacket import ImpactDecoder, ImpactPacket
def print_packet(pktlen, data, timestamp):
if not data:
return
decoder = ImpactDecoder.EthDecoder()
ether = decoder.decode(data)
iphdr = ether.child()
tcphdr = iphdr.child()
if iphdr.get_ip_src() == '*******':
print tcphdr
p = pcap.pcapObject()
dev = 'wlan0'
p.open_live(dev, 1600, 0, 100)
try:
p.setfilter('tcp', 0, 0)
while 1:
p.loop(1, print_packet)
except KeyboardInterrupt:
print 'shutting down'我找到了libpcap-python、scapy、Impacket pcapy等工具。它们看起来都很好,但我想不出如何用它们正确地解码数据包。
Wireshark有一个叫做"Line-based text data: text/html“的东西,它基本上显示了我想要的信息,所以我认为用python获取相同的信息是微不足道的,事实证明并非如此。
发布于 2012-04-05 15:44:47
HTTP和JSON都是人类可读的。在Wireshark上,选择与您的HTTP事务相关的数据包,然后右键单击,选择Follow TCP Stream,这将以人类可读的形式显示事务。
https://stackoverflow.com/questions/5052925
复制相似问题