Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
B

È4¥$¿“ã
@sxdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	mZddl
mZe d¡ 
ej¡y`ddlmZddlmZddlmZdd	lmZmZmZmZdd
lmZddlmZmZmZWnNek
rZz.ejdkròed
ƒn
ee›ƒe  ej!¡WddZ[XYnXddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*Gdd„dƒZ+Gdd„dej,ƒZ-Gdd„dej,ƒZ.dS)z`
profiler.fakeap
~~~~~~~~~~~~~~~

fake ap code handling beaconing and sniffing for the profiler
éN)ÚsleepÚtime)ÚDictz
scapy.runtime)ÚDot11Beacon)ÚDot11Elt)ÚDot11ProbeResp)ÚDot11Ú	Dot11AuthÚRadioTapÚScapy_Exception)Úconf)Ú
get_if_hwaddrÚget_if_raw_hwaddrÚsniffZscapyz required module scapy not found.é)ÚCHANNELSÚDOT11_SUBTYPE_ASSOC_REQÚDOT11_SUBTYPE_AUTH_REQÚDOT11_SUBTYPE_BEACONÚDOT11_SUBTYPE_PROBE_REQÚDOT11_SUBTYPE_PROBE_RESPÚDOT11_SUBTYPE_REASSOC_REQÚDOT11_TYPE_MANAGEMENTc@sHeZdZdZeedœdd„ƒZeeedœdd„ƒZee	dœdd	„ƒZ
d
S)Ú_UtilszFake AP helper functions)Úreturnc*Csb| d¡ d¡}t| d¡ d¡ƒ}d}|tdkr8d}| d¡ d¡}| d¡ d¡}t|d	ƒ}td
|d}dd
ddddddg}tdt|ƒd}	t|gƒ}td|d}
d}td|d}d}
td|
d}|rÒd}nd}td|d}d}td|d}t|ƒd}td |d}d!}td"|d}d#}td$|d}d%}td&|d}d'}td(|d}d)}td*|d}d+}td,|d} d-}!td,|!d}"d.}#td,|#d}$d/}%td,|%d}&d0}'td,|'d}(|rÎ||	|
||||})nd|r||	|
||||||||})n0||	|
|||||||||})|rB|)|})n|)| |"|$|&|(|})|)S)1z*Build base frame for beacon and probe respÚGENERALÚssidÚchannelFZ6GTÚft_disabledÚhe_disabledzutf-8ZSSID)ZIDÚinfoéŒéé˜é$é°éHé`élZRatesZDSsetsZTIMsïÿÿÿÿ é-s¬¬¬€sEÂé6s¬¬¬¬Œé0sé=séFs@és2€ªÿªÿé¿s$éÀsPòФ'¤BC^b2/éÝs##
@p‰€ªªªª{ÇqÇqÇqÇqéÿs$ô?üÿs's&	¤('¤(Bs(br(s;)ÚgetÚintrÚbytesr)*ÚconfigrrZis_6ghzrrZ
ssid_bytesZessidZ
rates_dataZratesZdssetZ	dtim_dataZdtimZht_cap_dataZht_capabilitiesZrsn_dataZmobility_domain_dataZmobility_domainZrsnZht_info_dataZht_informationZrm_enabled_dataZrm_enabled_capZ
extended_dataÚextendedZvht_cap_dataZvht_capabilitiesZvht_op_dataZ
vht_operationZwmm_dataZwmmZhe_cap_dataZhe_capabilitiesZ
he_op_dataZhe_operationZspatial_reuse_dataZ
spatial_reuseZmu_edca_dataZmu_edcaZsix_ghz_cap_dataZsix_ghz_capÚframe©r9ú/build/wlanpi-profiler-SHjkbd/wlanpi-profiler-1.0.8/debian/wlanpi-profiler/opt/wlanpi-profiler/lib/python3.7/site-packages/profiler/fakeap.pyÚbuild_fake_frame_ies<sn

	.0

z_Utils.build_fake_frame_ies)Ú	interfacercCsByt|ƒ}Wn0tk
r<d dd„t|ƒdDƒ¡}YnX|S)z-Get the mac address for a specified interfaceú:css|]}t|dƒVqdS)Z02xN)Úformat)Ú.0Úxr9r9r:ú	<genexpr>Æsz!_Utils.get_mac.<locals>.<genexpr>r)r
rÚjoinr)r<Úmacr9r9r:Úget_macÀs
"z_Utils.get_maccCs|jdd|_|jS)z6Update a sequence number of type multiprocessing Valueri)Úvalue)Úsequence_numberr9r9r:Únext_sequence_numberÉsz_Utils.next_sequence_numberN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodrr;ÚstrrDr4rGr9r9r9r:r9srcsFeZdZdZejdœ‡fdd„Zeddœdd„Zdd	œd
d„Z‡Z	S)Ú	TxBeaconszHandle Tx of fake AP frames)Ú	boot_timec

s tt|ƒ ¡t t ¡dd d¡d¡|_|j 	dt
 ¡t
 ¡¡||_
||_||_| d¡ d¡|_| d¡ d¡|_| d¡ d	¡}|sštd
ƒ‚t|ƒ|_|jt_ytj|jd|_WnJtk
r
}z*d|jkrú|j d
|j¡t tj ¡Wdd}~XYnX|j 	|jj!¡d|_"|Tt# $|j¡|_%t&t't(d|j%|j%d}t)dd}t# *|j¡}	t+ƒ|||	|_,WdQRX|j -d¡| .|j"|j/¡dS)Nrrú/éÿÿÿÿzbeacon pid: %s; parent pid: %srrr<rz%cannot determine channel to beacon on)ÚifacezNo such devicez.TxBeacons: No such device (%s) ... exiting ...g-Cëâ6º?zff:ff:ff:ff:ff:ff)ÚtypeÚsubtypeÚaddr1Úaddr2Úaddr3i)Úcapzstarting beacon transmissions)0ÚsuperrNÚ__init__ÚloggingÚ	getLoggerÚinspectÚstackÚsplitÚlogÚdebugÚosÚgetpidÚgetppidrOr6rFr3rr<Ú
ValueErrorr4rÚ	scapyconfrRÚL2socketÚl2socketÚOSErrorÚstrerrorÚwarningÚsysÚexitÚsignalÚSIGTERMÚoutsZbeacon_intervalrrDrCrrrrr;r
Úbeacon_framer ÚeveryÚbeacon)
Úselfr6rOÚlockrFrÚerrorZdot11Zdot11beaconZbeacon_frame_ies)Ú	__class__r9r:rZÓsF"




zTxBeacons.__init__N)ÚintervalrcCs,tƒ}x |ƒt|tƒ||ƒqWdS)zAttempt to address beacon driftN)rr)rtrxÚtaskÚ
start_timer9r9r:rrszTxBeacons.every)rc
Cs’|j}|j ¡t |j¡|_WdQRXy|j |¡WnRtk
rŒ}z4x.dD]&}||jkrR|j	 
d¡t t
j¡qRWWdd}~XYnXdS)zUpdate and Tx Beacon FrameN)zNetwork is downzNo such devicez
exiting...)rqrFÚget_lockrrGrhÚsendrirjr`r rlrmrnro)rtr8rvÚeventr9r9r:rs
s

zTxBeacons.beacon)
rHrIrJrKÚdatetimerZÚfloatrrrsÚ
__classcell__r9r9)rwr:rNÐs-rNcs`eZdZdZejdœ‡fdd„Zddœdd„Zddœd	d
„Zddœdd„Zddœd
d„Z	‡Z
S)ÚSnifferz/Handle sniffing probes and association requests)rOc

sþtt|ƒ ¡t t ¡dd d¡d¡|_|j 	dt
 ¡t
 ¡¡||_
||_||_||_| d¡ d¡|_| d¡ d¡|_| d¡ d	¡}|s td
ƒ‚t|ƒ|_| d¡ d¡|_i|_d|_|jrÔd
|_|jt_ytj|jd|_WnLtk
r<}z,d|j kr,|j !d|j¡t" #t$j%¡Wdd}~XYnX|j 	|jj&¡|j'|_(|j)|_*|j+|_,|j-|_.|lt/ 0|j¡}	t/ 1|j¡|_2t3ƒt4t5|j2|j2dt6dd|	|_7t3ƒt4t8|j2|j2dt9dd|_:WdQRXt;|j|j(d|jddS)NrrrPrQzsniffer pid: %s; parent pid: %srrr<rz!cannot determine channel to sniffÚlisten_onlyzqtype mgt subtype probe-req or type mgt subtype auth or type mgt subtype assoc-req or type mgt subtype reassoc-reqÚ)rRzNo such devicez,Sniffer: No such device (%s) ... exiting ...)rTrVrWi)rXé)Zseqnum)rRZprnÚstoreÚfilter)<rYrrZr[r\r]r^r_r`rarbrcrdÚqueuerOr6rFr3rr<rer4rr‚Ú
assoc_reqsZ
bpf_filterZno_sniffer_filterrfrRrgrhrirjrkrlrmrnrorpÚreceived_frameZreceived_frame_cbÚprobe_responseÚdot11_probe_request_cbÚ	assoc_reqÚdot11_assoc_request_cbÚauthÚ
dot11_auth_cbrr;rDrCr
rrrÚprobe_response_framerr	Ú
auth_framer)
rtr6rOrurFr‡ÚargsrrvZprobe_resp_ies)rwr9r:rZ/sR	"

(.zSniffer.__init__N)rcCsš|jtkr$|j|jkr–| |j¡nr|jtkr\|tj}||j	ksP|tj
dkr–| |¡n:|jtksp|jt
kr–|j|jkr†| |¡|jr–| |¡dS)z%Handle incoming packets for profilingrN)rTrrUrCrrVrrr rÚlenr‹rrrr‚)rtÚpacketrr9r9r:r‰vs





zSniffer.received_framec
Csž|j}|j ¡t |j¡|_WdQRX|j|t_y|j 	|¡WnRt
k
r˜}z4x.dD]&}||jkr^|j 
d¡t tj¡q^WWdd}~XYnXdS)z1Send probe resp to assist with profiler discoveryN)zNetwork is downzNo such devicez
exiting...)rrFr{rrGrVrrUrhr|rirjr`Ú	exceptionrlrmrnro)rtZ
probe_requestr8rvr}r9r9r:rЉs

zSniffer.probe_responsecCs,||j|j<|j d|j¡|j |¡dS)z1Put association request on queue for the Profilerz!adding assoc req from %s to queueN)rˆrVr`rar‡Úput)rtr8r9r9r:rŒ˜szSniffer.assoc_reqc
Cs |j}||t_|j ¡t |j¡d|_WdQRXy|j |¡WnRt	k
rš}z4x.dD]&}||j
kr`|j d¡t
 tj¡q`WWdd}~XYnXdS)zGSend authentication frame to get the station to prompt an assoc requestrN)zNetwork is downzNo such devicez
exiting...)r‘rrUrFr{rrGrhr|rirjr`r rlrmrnro)rtZreceiverr8rvr}r9r9r:rŽžs


zSniffer.auth)rHrIrJrKr~rZr‰rŠrŒrŽr€r9r9)rwr:r,sDr)/rKr~r]r[ÚmultiprocessingrbrnrlrrÚtypingrr\ÚsetLevelÚERRORZ	scapy.allrrrrr	r
rrrfr
rrÚModuleNotFoundErrorrvÚnameÚprintrmÚSIGABRTÚ	constantsrrrrrrrrrÚProcessrNrr9r9r9r:Ú<module>
s6


(\