
    h                        d dl T d dlmZ d dlZd dlmZ d dlmZmZ ere	Z
ej        d         dz   Zej                            e          rfedz   ej        d	         z   ej        d	<   ej                            e           e                    ed
z              e                    edz             Zn ed          Z[n%eZ
 ed          Zes ed           ee          ZeZeZeZeZeZeZ e!Z"eZ#e$Z% G d de&          Z' G d de&          Z(er9 G d de&          Z) G d de&          Z* G d de&          Z+ G d de&          Z,n* G d de&          Z) G d de&          Z* G d de&          Z+ G d de&          Z- G d  d!e&          Z. G d" d#e&          Z/d$e	fd%e	fd&e	fgZ0erEe01                    d'e	f           e01                    d(e	f           e01                    d)e	f           e0e/_2         G d* d+e&          Z3d, e4e3          fd- e4e)          fd. e4e)          fd/ e4e)          fd0 e4e)          fge3_2         G d1 d2e&          Z5d, e4e5          fd3e%fd4e%fd5 e4e3          fd6efge5_2        d7Z6d8Z7d9Z8d:Z9d Z:d:Z;d;Z<d<Z=d=Z>d>Z?d?Z@d@ZAdAZBdBZCdCZDdDZEdEZFd:ZGd7ZHdFZIeZJe ZKe5ZLe3ZM eNd e4e!           e4e.           e4e!                    ZOejP        ZP e4eJ          eP_Q        e%eeee%geP_R        ejS        ZS e4eJ          eS_Q        eegeS_R        ejT        ZT e4eJ          eT_Q        e%e%geT_R        	 ejU        ZUeeU_Q         e4eJ          egeU_R        ejV        ZV e4eJ          eV_Q        e%e%geV_R        ejW        ZWeeW_Q         e4eJ          egeW_R        ejX        ZXeeX_Q         e4eJ          egeX_R        ejY        ZYeeY_Q         e4eJ          egeY_R        ejZ        ZZeeZ_Q         e4eJ          geZ_R        ej[        Z[ee[_Q         e4eJ          eege[_R        ej\        Z\e%e\_Q        ege\_R        ej]        Z]ee]_Q         e4eJ          ege]_R        n# e^$ r Y nw xY wej_        Z_ e4eK          e__Q         e4eJ          e%ge__R        ej`        Z`ee`_Q         e4eJ          ee%ge`_R        eja        Zaeea_Q         e4eJ          e%gea_R        ejb        Zbeeb_Q         e4 e4eL                    e%geb_R        ejc        Zcdec_Q         e4eL          gec_R        ejd        Zde%ed_Q        e%ged_R        eje        Zeeee_Q        e% e4e           e4e          e%gee_R        ejf        Zfeef_Q         e4eJ          eeO e4e"          gef_R        ejg        Zgeeg_Q         e4eJ          eeO e4e"          geg_R        ejh        Zh e4e"          eh_Q         e4eJ           e4e.          geh_R        eji        Zieei_Q         e4eJ           e4 e4e.                     e4 e4e"                    gei_R        ejj        Zjdej_Q         e4eJ          gej_R        ejk        Zkeek_Q         e4eJ          eegek_R        ejl        Zldel_Q         e4eK           e4e.           e4e"          gel_R        ejm        Zmenem_Q         e4eK          gem_R        ejo        Zoeeo_Q         e4eJ           e4e          e%eegeo_R        ejp        Zpeep_Q        ee e4e          e%eegep_R        ejq        Zqeeq_Q         e4eJ           e4e          geq_R        ejr        Zrder_Q         e4e          ger_R        ejs        Zsees_Q         e4eJ          ges_R        ejt        Zteet_Q        eju        Zueeu_Q         e4eJ          egeu_R        ejv        Zveev_Q        e%gev_R        ejw        Zwe%ew_Q        egew_R        ejx        Zxe%ex_Q        egex_R        ejy        Zyeey_Q         e4eJ          gey_R        ejz        Zzeez_Q         e4eJ          gez_R        ej{        Z{ee{_Q         e4eJ          ge{_R        ej|        Z|ee|_Q         e4eJ          ge|_R        ej}        Z}e#e}_Q         e4eJ          ge}_R        ej~        Z~ee~_Q         e4eJ           e4e/          ge~_R        ej        Zde_Q         e4eJ          e%ge_R        ej        Ze%e_Q         e4eJ          ge_R        ej        Ze%e_Q        ege_R        ej        Ze%e_Q        g e_R        ej        Zde_Q         e4eJ          ge_R        ej        Ze#e_Q         e4eK          ge_R        ej        Zee_Q         e4eK          ge_R        ej        Zde_Q         e4eK          ge_R        esej        Zee_Q         e4eJ          ge_R        erKeZd7ZdFZd8ZdGZdHZd:Zd7Zd8ZdIZdJZd Zd:Zd7Zd Zd:ZdKZdKZ G dL dMe&          Z G dN dOe&          Z G dP dQe&          Zej        Zee_Q         e4e           e4e.           e4e"          ge_R        ej        Zee_Q         e4eJ           e4e          eege_R        ej        Zee_Q         e4eJ          ege_R        ej        Z e4e/          e_Q         e4eJ           e4e          ge_R        ej        Zee_Q         e4eJ          ege_R        ej        Zee_Q         e4eJ          ege_R        ej        Zee_Q         e4eJ          ege_        ej        Zee_Q         e4eJ          ge_R        ej        Z e4e          e_Q        e	ge_R        ej        Zde_Q         e4e          ge_R        ej        Zee_Q         e4e           e4e.           e4e"          ge_R        ej        Zee_         e4eJ           e4e          ege_R        ej        Zee_        e% e4e           e4 e4eL                    e%ge_R        ej        Zee_Q        e%ee%e%e%e%ge_R        ej        Zee_        e% e4e          e%e%e%e%ge_R        ej        Z e4eJ          e_Q        e%eee e4e          e%ge_R        ej        Z e4e          e_Q         e4eJ          ge_R        ej        Ze
e_Q        e%e%e%e% e4e          e%ge_R        ej        Zee_        e%e%ge_R        ej        Zde_        g e_R        ej        Zee_Q        e%eee%ge_R        dS dS )R    )*)find_libraryN)bpf_program)WINDOWSBSDWINDIRz\System32\Npcap;PATHz\Packet.dllz
\wpcap.dllz	wpcap.dllpcapzCannot find libpcap.so libraryc                       e Zd ZdefdefgZdS )bpf_versionbv_majorbv_minorN)__name__
__module____qualname__c_ushort_fields_     W/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/libs/winpcapy.pyr   r   :   s%        X&X&(HHHr   r   c                       e Zd ZdefdefgZdS )timevaltv_sectv_usecN)r   r   r   c_longr   r   r   r   r   r   ?   s%        6"F#%HHHr   r   c                   *    e Zd Zdefdefdedz  fgZdS )sockaddrsa_len	sa_familysa_data   N)r   r   r   c_ubyter   r   r   r   r   r   L   s1        w' '*"-/r   r   c                   <    e Zd Zdefdefdefddez  fddez  fgZdS )	sockaddr_insin_len
sin_familysin_portsin_addr   sin_zero   N)r   r   r   r#   c_uint16c_charr   r   r   r   r%   r%   Q   sE        (!7+*W-V,	.r   r%   c                   <    e Zd Zdefdefdefdefddez  fdefgZdS )	sockaddr_in6sin6_lensin6_family	sin6_portsin6_flowinfo	sin6_addr   
sin6_scopeN)r   r   r   r#   r-   c_uint32r   r   r   r   r0   r0   X   sI        )"G, (+$h/ "w,/!8,.r   r0   c            
       H    e Zd Zdefdefdefdefdefdefdefdd	ez  fgZd
S )sockaddr_dlsdl_len
sdl_family	sdl_indexsdl_typesdl_nlensdl_alensdl_slensdl_data.   N)r   r   r   r#   r   r   r   r   r   r:   r:   `   sY        (!7+ (+))))g.0r   r:   c                   $    e Zd Zdefdedz  fgZdS )r   r    r!   r"   N)r   r   r   r   r#   r   r   r   r   r   r   m   s)         (+"-/r   c                   *    e Zd Zdefdefddez  fgZdS )r%   r'   r(   r)   r*   N)r   r   r   r   r-   r#   r   r   r   r   r%   r%   q   s1        !8,*W-/r   c                   6    e Zd Zdefdefdefddez  fdefgZdS )r0   r2   r3   r4   r5   r6   r7   N)r   r   r   r   r-   r8   r#   r   r   r   r   r0   r0   v   sA        "H- (+$h/ "w,/!8,	.r   c                   <    e Zd ZdefdefdefdefdefdefdefgZdS )	pcap_file_headermagicversion_majorversion_minorthiszonesigfigssnaplenlinktypeN)r   r   r   bpf_u_int32u_short	bpf_int32r   r   r   r   rH   rH      sM        +& '* '*Y'K(K([)+HHHr   rH   c                   $    e Zd ZdefdefdefgZdS )pcap_pkthdrtscaplenlenN)r   r   r   r   rP   r   r   r   r   rT   rT      s,        w;'$&HHHr   rT   c                       e Zd ZdS )	pcap_statNr   r   r   r   r   r   rY   rY              Dr   rY   ps_recvps_drop	ps_ifdropps_captps_sent
ps_netdropc                       e Zd ZdS )	pcap_addrNrZ   r   r   r   rc   rc      r[   r   rc   nextaddrnetmask	broadaddrdstaddrc                       e Zd ZdS )pcap_ifNrZ   r   r   r   rj   rj      r[   r   rj   namedescription	addressesflags   r*         iiiiii   zfile://zrpcap://r,   r6   i   c                   $    e Zd ZdefdefdefgZdS )pcap_send_queuemaxlenrW   bufferN)r   r   r   c_uintc_char_pr   r   r   r   ry   ry     s,        v&FOx(*r   ry   c                   $    e Zd ZdefdefdefgZdS )pcap_rmtauthtypeusernamepasswordN)r   r   r   c_intr}   r   r   r   r   r   r   "  s,        UO**,r   r   c                       e Zd ZdefdefgZdS )	pcap_sampmethodvalueN)r   r   r   r   r   r   r   r   r   r   )  s%        u%e$&r   r   )ctypesctypes.utilr   osscapy.libs.structuresr   scapy.constsr   r   r|   SOCKETenvironnpcap_folderpathexistswindllkernel32SetDllDirectoryWcdllLoadLibrary_libCDLLr   	_lib_nameOSErrorr   rQ   rR   u_intrP   c_void_pr   pcap_dumperr#   u_charFILEr}   STRING	Structurer   r   r   r%   r0   r:   rH   rT   rY   _tmpListappendr   rc   POINTERrj   PCAP_VERSION_MAJORPCAP_VERSION_MINORPCAP_ERRBUF_SIZEPCAP_IF_LOOPBACK	MODE_CAPT	MODE_STAT
PCAP_ERRORPCAP_ERROR_BREAKPCAP_ERROR_NOT_ACTIVATEDPCAP_ERROR_ACTIVATEDPCAP_ERROR_NO_SUCH_DEVICEPCAP_ERROR_RFMON_NOTSUPPCAP_ERROR_NOT_RFMONPCAP_ERROR_PERM_DENIEDPCAP_ERROR_IFACE_NOT_UPPCAP_ERROR_PROMISC_PERM_DENIED"PCAP_ERROR_TSTAMP_PRECISION_NOTSUPPCAP_WARNINGPCAP_WARNING_PROMISC_NOTSUPPCAP_WARNING_TSTAMP_TYPE_NOTSUPpcap_tpcap_dumper_t	pcap_if_tpcap_addr_t	CFUNCTYPEpcap_handlerpcap_open_liverestypeargtypespcap_open_deadpcap_open_offlinepcap_set_rfmonpcap_createpcap_set_snaplenpcap_set_promiscpcap_set_timeoutpcap_activatepcap_injectpcap_statustostrpcap_set_buffer_sizeAttributeErrorpcap_dump_openpcap_setnonblockpcap_getnonblockpcap_findalldevspcap_freealldevspcap_lookupdevpcap_lookupnetpcap_dispatch	pcap_loop	pcap_nextpcap_next_expcap_breaklooppcap_sendpacket	pcap_dumppcap_dump_ftellr   pcap_compilepcap_compile_nopcappcap_setfilterpcap_freecodepcap_datalinkpcap_list_datalinkspcap_set_datalinkpcap_datalink_name_to_valpcap_datalink_val_to_name pcap_datalink_val_to_descriptionpcap_snapshotpcap_is_swappedpcap_major_versionpcap_minor_version	pcap_file
pcap_statspcap_perrorpcap_geterrpcap_strerrorpcap_lib_version
pcap_closepcap_dump_filepcap_dump_flushpcap_dump_closepcap_get_selectable_fdHANDLEPCAP_SRC_FILEPCAP_SRC_IFLOCALPCAP_SRC_IFREMOTEPCAP_SRC_FILE_STRINGPCAP_SRC_IF_STRINGPCAP_OPENFLAG_PROMISCUOUSPCAP_OPENFLAG_DATATX_UDPPCAP_OPENFLAG_NOCAPTURE_RPCAPPCAP_OPENFLAG_NOCAPTURE_LOCAL PCAP_OPENFLAG_MAX_RESPONSIVENESSPCAP_SAMP_NOSAMPPCAP_SAMP_1_EVERY_NPCAP_SAMP_FIRST_AFTER_N_MSRPCAP_RMTAUTH_NULLRPCAP_RMTAUTH_PWDPCAP_BUF_SIZERPCAP_HOSTLIST_SIZEry   r   r   pcap_offline_filterc_boolpcap_live_dumpr.   pcap_live_dump_endedpcap_stats_expcap_setbuffpcap_setmodepcap_setmintocopyargtypepcap_geteventpcap_sendqueue_allocpcap_sendqueue_destroypcap_sendqueue_queuepcap_sendqueue_transmitretypepcap_findalldevs_expcap_createsrcstrpcap_parsesrcstr	pcap_openpcap_setsamplingpcap_remoteact_acceptpcap_remoteact_closerestypespcap_remoteact_cleanuppcap_remoteact_listr   r   r   <module>r!     s       $ $ $ $ $ $ 				 - - - - - - % % % % % % % %
 F:h'*==L	w~~l## 
!)C/"*V2DD
6((666 	6777} <==tK   FV$$I 8g67774	??D 			( ( ( ( () ( ( (
% % % % %i % % %  2./ / / / /9 / / /
. . . . .i . . .. . . . .y . . .0 0 0 0 0i 0 0 0 0/ / / / /9 / / // / / / /i / / /
. . . . .y . . .&+ + + + +y + + +& & & & &) & & &	 	 	 	 		 	 	 	 )V!4{F6KL
 ,OOY'(((OOY'(((OO\6*+++	 	 	 	 	 		 	 	 	 wwy112wwx001 ''("3"34"GGH$5$56 ''("3"34	6	 	 	 	 	 	i 	 	 	 WWW--.V$"F+ '')"4"45k*	, "         	 	 
                
 "%  &) "     #$ $ 
  	 $ yGGGKGG	  $  !5%?  $   %.  * #GFOO  $f-  :	 (N"N&wv6N "K!'&//K"F+K ,$!(% 8 ,$!(% 8 ,$!(% 8 &M!M%gfoo.M "KK#GFOOXu=K ,%!&  4#( %,WV__e$<!! 	 	 	D	
 $ // "76??F3  (    $WV__eV<   (    $WV__f5  
 (    $WWWY%7%788&A   (   $WY//0   $ !(  $ 
GKGK
	  " GFOO	GFOO	  N		 gfooulGGFOOL	  N	GFOO	 gfooww{';';<	    GFOOG  G   $ "76??+ 
 & #GFOOXu=  N		 GMGKGFOO	  &  #GM223    GFOOGK
	  . #  		GK
	    $ "76??GGK,@,@A  " !'+../  " !'&//*  . #   * !  %gfoou5   !: $)  !&,X  "
 !: $*  !&+W  "
 $(#H  +1   (-2G   )
 " !'&//* 
 & #GFOO, 
 , "  &wv/  
 , "  &wv/   N		 gfoo&	  _

 wv	(:(:;
 
  0   (  "   ( !     _

 wv'
 
 $ "7=112  & #GM223  & #GM223  8
 "8%*"'.wv&7#  NCF M %# !"  !$%! %&! (*$   "#   M * * * * *) * * *, , , , ,y , , ,& & & & &I & & & 2"($  (N"N&wvNN
  4#( %,WV__e$<! &M#GI..M%gfoowwu~~>M $L L$WV__e4L $L L$WV__e4L . %!(% 8 &M"M%gfoo.M  4#*7?#;#; %+H! "8%)"'.w'?'?&@#  4#(   %! #:%*"115(:$
 2!&GI	
 	
 	$  . %vvvv" ,#! III ,&wy11!( 1 !6$*!&"  4$)!%+V$4! "8&*#&(#
 2"'$*FE6#B   ]NC NCs   =DQ QQ