在过去的几年中,我一直在使用Wireshark成功捕获和分析网络流量样本。 然后,我通常需要通过将捕获文件封装在GTP层中来修改它,以便可以使用专有工具对pcap进行后期处理。 我一直在linux环境中使用python脚本成功地实现了这一目标,该脚本使用类似于
import sys
import dpkt
from dpkt.ip import IP
from dpkt.udp import UDP
from optparse import OptionParser
import struct
import socket
# from pcapy import *
ETHERNET_SRC = "\x01\x02\x03\x04\x05\x06"
ETHERNET_DST = "\xA1\xA2\xA3\xA4\xA5\xA6"
GGSN_IP_SRC= "\xd5\xe9\x82\x38" #"213.233.130.56"
GGSN_IP_DST= "\xd5\xe9\x82\x37" #"213.233.130.55"
userip = None
global_userip = "\x0a\x44\x17\x5b"
total_packets_writes = 0
pcap_writer = None
# pcap file pid383_session1_272017012778276.pcap is on the Destkop
# GTP HEADER FOR CREATE PDP CONTEXT
# TID \x84\xba\x40\x11 for downstream
# TID 81fbe032 for upstream
# ip client 0a 44 17 5b
gtp_pdp_context_request = "\x32\x10\x00\xa1\x00\x00\x00\x00\x20\xac\x00\x00\x02\x72\x02\x71"\
"\x10\x72\x87\x72\xf6\x0f\xfc\x10\x84\xba\x40\x11\x11\x80\xce\x00"\
"\x11\x14\x0a\x80\x00\x02\xf1\x21\x83\x00\x15\x05\x74\x65\x73\x74"\
"\x31\x02\x68\x73\x08\x76\x6f\x64\x61\x66\x6f\x6e\x65\x02\x69\x65"\
"\x84\x00\x1d\x80\xc0\x23\x06\x01\x06\x00\x06\x00\x00\x80\x21\x10"\
"\x01\x01\x00\x10\x81\x06\x00\x00\x00\x00\x83\x06\x00\x00\x00\x00"\
"\x85\x00\x04\xd5\xe9\x82\x38\x85\x00\x04\xd5\xe9\x82\x38\x86\x00"\
"\x07\x91\x53\x83\x97\x23\x75\x33\x87\x00\x0f\x02\x22\x92\x1f\x93"\
"\x96\xfe\xfe\x74\x05\x01\x01\x00\x4f\x00\x97\x00\x01\x01\x98\x00"\
"\x08\x01\x72\xf2\x10\x0b\xcc\xcc\x65\x99\x00\x02\x40\x01\x9a\x00"\
"\x08\x53\x88\x85\x40\x19\x74\x27\x50"
gtp_pdp_context_response="\x32\x11\x00\x57\x80\xce\x00\x11\x20\xac\x