o
    àý°j_  ã                   @   sf   d dl mZ d ZdZdZdZdZdZdZdZ	dZ
G dd„ dejƒZG dd	„ d	ejƒZG d
d„ dƒZdS )é    )Ú	structureé   é   é   u	   "Ã”ÃƒÂ²Â¡c                   @   s$   e Zd ZdefdddddddfZd	S )
ÚPCapFileHeaderÚmagic)ÚversionMajorz<H=2)ÚversionMinorz<H=4)ÚGMT2localCorrectionz<l=0)ÚtimeAccuracyú<L=0)Ú	maxLengthz	<L=0xffff)ÚlinkTypez<L=1)Úpacketsz*:=[]N)Ú__name__Ú
__module__Ú__qualname__ÚMAGICr   © r   r   ú„/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/pcapfile.pyr      s    ør   c                   @   s   e Zd ZdZdd„ ZdS )ÚPCapFilePacket))Útsecr   )Útmsecr   )ÚsavedLengthú<L-data)Ú
realLengthr   )Údataú:c                 O   s&   t jj| g|¢R i |¤Ž d| d< d S )Nó    r   )r   Ú	StructureÚ__init__)ÚselfÚargsÚkargsr   r   r   r    .   s   zPCapFilePacket.__init__N)r   r   r   r   r    r   r   r   r   r   %   s    r   c                   @   s†   e Zd Zd!dd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ ZdS )"ÚPcapFileNÚrbc                 C   s$   |d ur
t ||ƒ| _d | _d| _d S )NF)ÚopenÚfileÚhdrÚwroteHeader)r!   ÚfileNameÚmoder   r   r   r    3   s   
zPcapFile.__init__c                 C   s   d | _ | j d¡ d S )Nr   )r(   r'   Úseek©r!   r   r   r   Úreset9   s   zPcapFile.resetc                 C   s   | j  ¡  d S ©N)r'   Úcloser-   r   r   r   r0   =   s   zPcapFile.closec                 C   s
   | j  ¡ S r/   )r'   Úfilenor-   r   r   r   r1   @   ó   
zPcapFile.filenoc                 C   s
   || _ d S r/   )r'   )r!   r'   r   r   r   ÚsetFileC   r2   zPcapFile.setFilec                 C   ó   |   ¡  || jd< d S ©Nr   ©ÚcreateHeaderOncer(   )r!   ÚsnapLenr   r   r   Ú
setSnapLenF   ó   zPcapFile.setSnapLenc                 C   ó   |   ¡  | jd S r5   ©ÚreadHeaderOncer(   r-   r   r   r   Ú
getSnapLenJ   ó   
zPcapFile.getSnapLenc                 C   r4   ©Nr   r6   )r!   r   r   r   r   ÚsetLinkTypeN   r:   zPcapFile.setLinkTypec                 C   r;   r@   r<   r-   r   r   r   ÚgetLinkTypeR   r?   zPcapFile.getLinkTypec                 C   s    | j d u rt | j¡| _ d S d S r/   )r(   r   ÚfromFiler'   r-   r   r   r   r=   V   s   
ÿzPcapFile.readHeaderOncec                 C   s   | j d u rtƒ | _ d S d S r/   )r(   r   r-   r   r   r   r7   Z   s   
ÿzPcapFile.createHeaderOncec                 C   s:   | j sd| _ | j d¡ |  ¡  | j | j ¡ ¡ d S d S )NTr   )r)   r'   r,   r7   Úwriter(   ÚgetDatar-   r   r   r   ÚwriteHeaderOnce^   s   üzPcapFile.writeHeaderOncec                 C   s<   |   ¡  zt | j¡}| j |d ¡|d< |W S    Y d S )Nr   r   )r=   r   rC   r'   Úread©r!   Úpktr   r   r   rG   e   s   zPcapFile.readc                 C   s   |   ¡  | j t|ƒ¡ d S r/   )rF   r'   rD   ÚstrrH   r   r   r   rD   n   s   zPcapFile.writec                 c   s(   � |   ¡  	 |  ¡ }|d u rd S |V  qr/   )r.   rG   )r!   Úanswerr   r   r   r   r   s   €üzPcapFile.packets)Nr%   )r   r   r   r    r.   r0   r1   r3   r9   r>   rA   rB   r=   r7   rF   rG   rD   r   r   r   r   r   r$   2   s     
	r$   N)Úimpacketr   ÚO_ETHÚO_IPÚO_ARPÚO_UDPÚO_TCPÚO_ICMPÚ
O_UDP_DATAÚO_ICMP_DATAr   r   r   r   r$   r   r   r   r   Ú<module>   s   