Repository URL to install this package:
|
Version:
1.0.9-1 ▾
|
wlanpi-profiler
/
opt
/
wlanpi-profiler
/
lib
/
python3.7
/
site-packages
/
scapy
/
__pycache__
/
sessions.cpython-37.pyc
|
|---|
B
K ë(qã @ s° d Z ddlmZ ddlmZ ddlmZ ddlmZm Z ddl
mZ ddlmZm
Z
mZmZmZmZmZmZ G dd d eZG d
d deZG dd
d
eZG dd deZdS )z0
Sessions: decode flow of packets when sniffing
é )Údefaultdict)Úraw)Úconf)Ú NoPayloadÚPacket)Ú
PacketList)ÚAnyÚCallableÚDefaultDictÚDictÚListÚOptionalÚTupleÚcastc @ sj e Zd ZdZdddZedd Zejdd Zed d
Zejdd
Zedd
Z dd Z
dd ZdS )ÚDefaultSessionz#Default session: no stream decodingNFc O sH || _ || _g | _d| _|| _| jrD| j | j_| j| j_d| _d | _ d S )Nr F)Ú_DefaultSession__prnÚ_DefaultSession__storeÚlstÚ_DefaultSession__countÚ
_supersessionÚprnÚstore)Úselfr r ZsupersessionÚargsZkarg© r ú/build/wlanpi-profiler-8o1rr4/wlanpi-profiler-1.0.9/debian/wlanpi-profiler/opt/wlanpi-profiler/lib/python3.7/site-packages/scapy/sessions.pyÚ__init__ s
zDefaultSession.__init__c C s | j S )N)r )r r r r r 4 s zDefaultSession.storec C s | j r|| j _n|| _d S )N)r r r )r Úvalr r r r 9 s
c C s | j S )N)r )r r r r r A s zDefaultSession.prnc C s | j r|| j _n|| _d S )N)r r r )r Úfr r r r F s
c C s | j r| j jS | jS d S )N)r Úcountr )r r r r r N s zDefaultSession.countc C s$ | j rt| j jdS t| jdS d S )NZSniffed)r r r )r r r r ÚtoPacketListV s zDefaultSession.toPacketListc C st |sdS t |tr0x|D ]}t | |¡ qW dS | jd7 _| jrP| j |¡ | jrp| |¡}|dk rpt | dS )zpDEV: entry point. Will be called by sniff() for each
received packet (that passes the filters).
Né )
Ú
isinstanceÚlistr Úon_packet_receivedr r r Úappendr Úprint)r ÚpktÚpÚresultr r r r$ ] s
z!DefaultSession.on_packet_received)NFN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r Úpropertyr Úsetterr r r r$ r r r r r s
r c @ s( e Zd ZdZdd Zdd Zdd ZdS ) Ú IPSessionzVDefragment IP packets 'on-the-flow'.
Usage:
>>> sniff(session=IPSession)
c O s t j| f|| tt| _d S )N)r r r r# Ú fragments)r r Úkwargsr r r r x s zIPSession.__init__c C sÈ ddl m}m} ||kr|S || }d|_|jdks<|jjrÀ|j|j|j |j
f}| j| |¡ |jjs¼zH| j| d jdkr®g }|| j| |g |d }|
t|¡}|S W d | j|= X d S |S d S )Nr )Ú_defrag_listÚIP)Úscapy.layers.inetr3 r4 Z_defrag_posÚfragÚflagsZMFÚidÚsrcÚdstÚprotor1 r% Ú __class__r )r Úpacketr3 r4 ÚipZuniqÚdefragZdefragmented_packetr r r Ú_ip_process_packet} s(
zIPSession._ip_process_packetc C s |sd S t | | |¡¡ d S )N)r r$ r@ )r r' r r r r$ s
zIPSession.on_packet_receivedN)r* r+ r, r- r r@ r$ r r r r r0 q s r0 c @ sT e Zd ZdZdd Zdd Zdd Zdd Zd
d ZeZ dd
Z
dd Zdd ZdS )ÚStringBufferaW StringBuffer is an object used to re-order data received during
a TCP transmission.
Each TCP fragment contains a sequence number, which marks
(relatively to the first sequence number) the index of the data contained
in the fragment.
If a TCP fragment is missed, this class will fill the missing space with
zeros.
c C s t d| _d| _g | _d S )Nó r )Ú bytearrayÚcontentÚcontent_lenÚ
incomplete)r r r r r s
zStringBuffer.__init__c C s t |}|d }|| | jkrj| jd|| j | 7 _| j | j|f¡ || | _t | j| jksjt|t| j|||
<