基本的に、私がやりたいことは、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には、基本的に私が求めている情報を表示する「行ベースのテキストデータ:text / html」と呼ばれるものがあるので、Pythonで同じ情報を取得するのは簡単だと思っていましたが、そうではありませんでした。