
    ŌjO                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SKJr  S SKJr  S SKJr  S SKr " S S5      rg)    N)Optional)urlparse)requests)AESGCMc                      \ rS rSr% 0 r\\S'   Sr\R                  S5      r
\" \
5      rSrSrSrSS	S
SSS.rSrSrSSSS.SSSS.SSSS.SSSS./rSGS\S\S\S\S S4
S! jjrSHS"\S#\R.                  S \4S$ jjrS \R.                  4S% jrS \4S& jrSHS'\S(\S \4S) jjrS*\S \4S+ jrS,\S \4S- jrS \4S. jrS/\S \4S0 jr S \4S1 jr!\"S2\S3\#S \$4S4 j5       r%S5\S6\S3\#S \4S7 jr&S5\S6\S3\#S \4S8 jr'S5\S6\S3\#S \4S9 jr(\"S \)4S: j5       r*\"S"\S \+\   4S; j5       r,\"S"\S \4S< j5       r-\"S"\S \+\   4S= j5       r.\"S>\S \4S? j5       r/\"S@\S \4SA j5       r0SB\S \4SC jr1SB\S \4SD jr2SHS"\S#\R.                  S \4SE jjr3SFr4g)IAwsWaf	   _JS_CONFIG_CACHE   @6f71a512b1e035eaab53d8be73120d3fb68a0ca346b9560aab3e5cdf753d5e98Ah72f957df656e80ba55f5d8ce2e8c7ccb59687dba3bfb273d54b08a261b2f3002Ah7b0c470f0cfe3a80a9e26526ad185f484f6817d0832712a4a37a908786a6a67fAha9faaffd31b4d5ede2a2e19d2d7fd525f66fee61911511960dcbb52d3c48ce25   i (  i  i   i                  z2.4.0zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36zGoogle Inc. (Apple)zFANGLE (Apple, ANGLE Metal Renderer: Apple M2 Pro, Unspecified Version)aw  ANGLE_instanced_arrays;EXT_blend_minmax;EXT_clip_control;EXT_color_buffer_half_float;EXT_depth_clamp;EXT_float_blend;EXT_frag_depth;EXT_shader_texture_lod;EXT_texture_compression_bptc;EXT_texture_compression_rgtc;EXT_texture_filter_anisotropic;EXT_sRGB;OES_element_index_uint;OES_standard_derivatives;OES_texture_float;OES_texture_float_linear;OES_texture_half_float;OES_texture_half_float_linear;OES_vertex_array_object;WEBGL_color_buffer_float;WEBGL_compressed_texture_s3tc;WEBGL_compressed_texture_s3tc_srgb;WEBGL_debug_renderer_info;WEBGL_debug_shaders;WEBGL_depth_texture;WEBGL_draw_buffers;WEBGL_lose_context;WEBGL_multi_drawvendormodel
extensionszGoogle Inc. (AMD)zDANGLE (AMD, AMD Radeon(TM) Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)af  ANGLE_instanced_arrays;EXT_blend_minmax;EXT_color_buffer_half_float;EXT_depth_clamp;EXT_float_blend;EXT_frag_depth;EXT_shader_texture_lod;EXT_texture_compression_bptc;EXT_texture_compression_rgtc;EXT_texture_filter_anisotropic;EXT_sRGB;OES_element_index_uint;OES_standard_derivatives;OES_texture_float;OES_texture_float_linear;OES_texture_half_float;OES_texture_half_float_linear;OES_vertex_array_object;WEBGL_color_buffer_float;WEBGL_compressed_texture_s3tc;WEBGL_compressed_texture_s3tc_srgb;WEBGL_debug_renderer_info;WEBGL_debug_shaders;WEBGL_depth_texture;WEBGL_draw_buffers;WEBGL_lose_context;WEBGL_multi_drawzGoogle Inc. (Intel)zKANGLE (Intel, Intel(R) Iris(R) Xe Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)zGoogle Inc. (NVIDIA)zGANGLE (NVIDIA, NVIDIA GeForce RTX 3060 Direct3D11 vs_5_0 ps_5_0, D3D11)N
websiteURLproxy	userAgentimpersonatereturnc                 j    Xl         X l        U=(       d    U R                  U l        X@l        S U l        g N)_AwsWaf__websiteURL_AwsWaf__proxy_AwsWaf__DEFAULT_UA_AwsWaf__userAgent_AwsWaf__impersonate_AwsWaf__jsConfig)selfr   r   r   r   s        6C:\xampp\htdocs\CheckFili\Apis\Gencookie\amazon\waf.py__init__AwsWaf.__init__!   s-    '"&;$*;*;(!    htmlsessionc                      [         R                   " 5       nU R                  XS9u  pE[         R                   " 5       U-
  nSSU R                  U R                  =(       d    SUUUS S3S.$ ! [         a  nS[        U5      S	.s S nA$ S nAff = f)
N)r-   r.   TzAWS WAF Challenge Token Bypassdirectz.2fs)statuscontexturlr   token	challenge	timeTakenF)r2   description)time_AwsWaf__solveChallenger"   r#   	Exceptionstr)r(   r-   r.   startr5   challengeInfoelapsederrors           r)   solveAwsWaf.solve)   s    	@IIKE#'#8#8d#8#T EiikE)G ;((1* '}A.   	@#CJ??	@s   A(A+ +
B5BBBc                     SU R                   0nU R                  (       a  U R                  U R                  S.US'   [        R                  " S0 UD6$ )Nr   httpshttpproxies )r&   r#   r   Session)r(   kwargss     r)   __makeSessionAwsWaf.__makeSession<   sD    !3!34<<*.,, MF9)&))r,   c                 4    SSSSSSSSS	S
SU R                   S.$ )Nz?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8en-US,en;q=0.9zno-cacheA"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"?0	"Windows"documentnavigatenonez?11)acceptaccept-languagezcache-control	sec-ch-uasec-ch-ua-mobilesec-ch-ua-platformsec-fetch-destsec-fetch-modesec-fetch-sitezsec-fetch-userzupgrade-insecure-requests
user-agentr%   )r(   s    r)   __pageHeadersAwsWaf.__pageHeadersB   sl    [  qA  T^  mp  FJ  bm  AK  _i  }C  W[  z}  MQ  M]  M]  ^  	^r,   originrefererc                 b    SSU R                   SSSSSSS	S
S.nU(       a  XS'   U(       a  X#S'   U$ )Nz
keep-aliverQ   rO   rP   z*/*z
cross-sitecorsemptyzgzip, deflate, br, zstdrN   )
connectionrZ   r^   rX   rY   rV   r]   r\   r[   zaccept-encodingrW   rb   rc   r_   )r(   rb   rc   hs       r)   __apiHeadersAwsWaf.__apiHeadersE   sg    '{Z^ZjZj  z}  SW  ch  |H  \b  v}  Rk  @P  Q6hK7iLr,   	plaintextc                    [         R                  " S5      nU R                  R                  X!S 5      nUSS  US S pT[        R
                  " U5      R                  5        SUR                  5        SUR                  5        3$ )N   iz::)osurandom_AwsWaf__AESGCMencryptbase64	b64encodedecodehex)r(   rk   ivciphertag
ciphertexts         r)   __aesEncryptAwsWaf.__aesEncryptK   sr    ZZ^&&rd; ,tZ""2&--/03779+R
@P?QRRr,   datac                 8    [         R                  " U5      S-  S $ )Nl    08X)zlibcrc32)r(   r|   s     r)   __crc32AwsWaf.__crc32Q   s    **T"Z/45r,   c                    [        [        R                  " 5       S-  5      n[        R                  " U R                  5      n[        S5       Vs/ s H  n[        R                  " SS5      PM     nn[        R                  " SS5      US'   [        R                  " SS5      US'   0 SS	SS	S
SSSSS	SSSS	SS._SU_SS _SSSS.SSS.SSS.SSS.SSS./_SS_SS_SS _S!U R                  _S"S _S#S$_S%S	S	S	S	S	S	S	S	S&.S'[        R                  " S'S$/5      S(S$S'[        R                  " S'S$/5      S).S	S*._S+US,   US-   US.   R                  S/5      S0._S1S _S2S3S4S5S6._S7S8/ / / S9.0S8S:/ 00S;._S<SSS	SS$S=._S>S	S	S'S'S'S'S'S'S'S'S'S'S'S?._[        R                  " S@SA5      S USB.S$SSSCS$0U[        R                  " S	S5      -   / U R                  [        [        R                  " 5       5      SD.	E$ s  snf )ENi     r   (   i8  i@  metricsr      r   )fp2browsercapabilitiesgpudntmathscreen	navigatorautostealthsubtlecanvasformdetectorber=   flashVersionpluginsz
PDF ViewerzPDF Viewer )namer<   zChrome PDF ViewerzChrome PDF Viewer zChromium PDF ViewerzChromium PDF Viewer zMicrosoft Edge PDF ViewerzMicrosoft Edge PDF Viewer zWebKit built-in PDFzWebKit built-in PDF dupedPluginszxPDF Viewer Chrome PDF Viewer Chromium PDF Viewer Microsoft Edge PDF Viewer WebKit built-in PDF ||1920-1080-1032-24-*-*-*
screenInfoz1920-1080-1032-24-*-*-*referrer r   location	webDriverFr   )
textShadowWebkitTextStroke	boxShadowborderRadiusborderImageopacity	transform
transitionT	supported)audiogeolocationlocalStoragetouchvideo	webWorker)cssjsr?   r   r   r   r   ;r   r   r   z-1.4214488238747245z0.8178819121159085z-0.5753861119575491)tansincos
automation
properties)rR   windowr   r   )wdphantomr   )t1t2imtemtdcrypto)r   r   rq   decryptwrapKey	unwrapKeysignverifydigest
deriveBits	deriveKeygetRandomValues
randomUUIDiGt&i$+)hash	emailHashhistogramBinssi)	r   formDetectednumFormsnumFormElementsr   enderrorsversionid)intr9   randomchoice_AwsWaf__GPU_PROFILESrange	randranger%   splitrandint_AwsWaf__FP_VERSIONr<   uuiduuid4)r(   tsr   _binss        r)   __generateFingerprintAwsWaf.__generateFingerprintT   s   $))+$%mmD//016s<A  B'<""5%0Q##E51R
qQ!TU_`lm|}  HI  VW  cd  pq  CD  LM  N
R
 D
 mDObk  GA  La  j@  CA  Lg  pL  CM  Xm  vL  OM  N	

   W
 3
 
 ))
 
 
 1!Z[mn  @A  NO  ^_  op  %q  CG  X^  Xe  Xe  gk  mr  fs  Xt  FQ  \a  lp  E  L  L  NR  TY  MZ  [  y\  ij  k
 c(mc'lRUVbRcRiRijmRno
 4
 1:NWlm
 ,R2\^0_!`nz  ~F  HJ  }K  nL  M
  aqq5I!
" aDT^bqu  @D  PT  `d  tx  GK  `d  tx  y#
$  &//	9ETXkop!qQ-q!,,((djjl#1
 	
	 =s   !G.fpc                     [         R                  " USS9R                  S5      nU R                  U5      nUR                  S5      S-   U-   nX44$ )N,:
separatorsutf-8ascii   #)jsondumpsencode_AwsWaf__crc32)r(   r   payloadchecksumcombineds        r)   __encodeFingerprintAwsWaf.__encodeFingerprintv   sL    ::bZ8??H<<(??7+d2W<!!r,   c                 p    U R                  5       nU R                  U5      u  p#U R                  U5      nX$4$ r!   )_AwsWaf__generateFingerprint_AwsWaf__encodeFingerprint_AwsWaf__aesEncrypt)r(   r   r   raw	encrypteds        r)   __buildSignalPayloadAwsWaf.__buildSignalPayload|   s;    '')004%%c*	""r,   r   
difficultyc                 h    [        US5      u  p#U S U SU-  :w  a  gU(       a  X   SU-
  -	  (       a  gg)N       FT)divmod)r   r   fullrems       r)   __checkDifficultyAwsWaf.__checkDifficulty   s9    :q)	%4=GdN*5FLQW-r,   challengeInputr   c           
         X-   nUR                  S5      n[        R                  " S5       H[  nU[        U5      -   R                  S5      n[        R
                  " XuSSSSS9nU R                  X5      (       d  MP  [        U5      s  $    g )Nr   r      r  r      )saltnrpdklen)r   	itertoolscountr<   hashlibscrypt_AwsWaf__checkDifficulty)	r(   r	  r   r   r   r  noncepasswordr   s	            r)   __solveScryptAwsWaf.__solveScrypt   su    !,w'__Q'E 3u:-55g>H^^H3!qPRSF%%f99#e*;L (r,   c                 (   X-   R                  S5      n[        R                  " S5       He  n[        R                  " U[        U5      R                  S5      -   5      R                  5       nU R                  Xc5      (       d  MZ  [        U5      s  $    g )Nr   r   )r   r  r  r  sha256r<   r   r  )r(   r	  r   r   r   r  r   s          r)   __solveSha256AwsWaf.__solveSha256   sm    "-55g>__Q'E^^Hs5z/@/@/I$IJQQSF%%f99#e*;L (r,   c                     U R                   (       a#  U R                   S   (       a  U R                   S   OU R                  n[        R                  " SUR	                  US5      -  5      R                  S5      $ )Nbandwidth_sizesr  r   r   )r'    _AwsWaf__DEFAULT_BANDWIDTH_SIZESrr   rs   getrt   )r(   r	  r   r   sizess        r)   __solveBandwidthAwsWaf.__solveBandwidth   s`    6:oo$//ZkJl 12rv  sQ  sQ%))J*F FGNNwWWr,   c                     S[         R                  " SS5      SS.SSSS.SSSS.SSSS.SS	SS.S
SSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.S[         R                  " SS5      SS.SSSS.S[         R                  " SS5      SS.S[         R                  " SS5      SS.S [         R                  " S!S"5      SS.S#SSS./$ )$N2r   r   )r   valueunit100101102103r  104105106107108	undefined110111r   1123r   74rU   
      g     @B@562   <   0      8)r   uniformrH   r,   r)   __buildMetricsAwsWaf.__buildMetrics   s-    V^^Aq%9cJQ4uqZ]6^Q4uqZ]6^Q4uqZ]6^Q4uqZ]6^Q4{UV`c6dQ4uqZ]6^Q4{UV`c6dQcJQcJV^^B%;cJTcJV^^Aq%9cJV^^B%;cJV^^C%=cJQcJ!
 	
r,   c                     [         R                  " SU [         R                  5      nU(       a%  [        R                  " UR                  S5      5      $ g )Nz%window\.gokuProps\s*=\s*(\{.*?\})\s*;r   )researchDOTALLr   loadsgroupr-   ms     r)   __extractGokuPropsAwsWaf.__extractGokuProps   s5    II>biiPTZZ
++r,   c                 v    [         R                  " SU 5      nU(       d  [        S5      eUR                  S5      $ )Nz(src="https://([^"]+)/challenge[^"]*\.js"z"challenge.js src not found in pager   )rH  rI  
ValueErrorrL  rM  s     r)   __extractWafHostAwsWaf.__extractWafHost   s/    IIA4H
#GHHwwqzr,   c                 d    [         R                  " SU 5      nU(       a  UR                  S5      $ S $ )Nz(src="(https://[^"]+/challenge[^"]*\.js)"r   )rH  rI  rL  rM  s     r)   __extractChallengeJsUrlAwsWaf.__extractChallengeJsUrl   s(    IIA4Hqwwqz(D(r,   r4   c                 x    [        U 5      R                  =(       d    U nUR                  S5      (       a  U$ SU-   $ )Nzwww.)r   hostname
startswith)r4   rh   s     r)   __extractDomainAwsWaf.__extractDomain   s3    SM"")cLL((q8fqj8r,   jsTextc           
      F   0 n[         R                  " SU 5       H%  nUR                  S5      XR                  S5      '   M'     Su  p4[         R                  " SU 5      nU(       a"  UR                  S5      nUR                  S5      n0 n[         R                  " SU 5      nU(       a  [	        UR                  S5      S5      [	        UR                  S5      S5      [	        UR                  S5      S5      -  [	        UR                  S	5      S5      [	        UR                  S
5      S5      -  [	        UR                  S5      S5      [	        UR                  S5      S5      -  [	        UR                  S5      S5      [	        UR                  S5      S5      -  S.nXU4US.$ )Nz-'(h[0-9a-f]{8,})'[+].*?=\s*'((?:mp_)?verify)'r   r   solution_datasolution_metadatazN'verify'\s*,\s*'\w+'\s*:\s*'(solution_\w+)'\s*,\s*'\w+'\s*:\s*'(solution_\w+)'zcase\s+0x1:return\s+(0x[0-9a-f]+);case\s+0x2:return[^;]*\((0x[0-9a-f]+),(0x[0-9a-f]+)\);case\s+0x3:return[^;]*\((0x[0-9a-f]+),(0x[0-9a-f]+)\);case\s+0x4:return[^;]*\((0x[0-9a-f]+),(0x[0-9a-f]+)\);case\s+0x5:return[^;]*\((0x[0-9a-f]+),(0x[0-9a-f]+)\)r  r   r   r      r   r  r	   r   )challenge_typesmp_field_namesr   )rH  finditerrL  rI  r   )r]  challengeTypesrN  mpSolutionFieldmpMetadataField
fieldMatchbandwidthSizes	sizeMatchs           r)   __parseChallengeJsAwsWaf.__parseChallengeJs   st   MvVA)*N771:& W ,P(YYprxy
(..q1O(..q1OIIE GMN	 yq)2.yq)2.Y__Q5G1LLyq)2.Y__Q5G1LLyq)2.Y__Q5G1LLyq)2.Y__Q5G1LLN $2WfEg  }K  L  	Lr,   challengeTypec                     XR                   :X  a  gU R                  (       aK  U R                  S   nX;   a  X!   $ UR                  5        H  u  p4UR                  U5      (       d  M  Us  $    g)N	mp_verifyrc  r   )_AwsWaf__CHALLENGE_BANDWIDTHr'   itemsrZ  )r(   rn  ctprefixendpoints        r)   __getEndpointAwsWaf.__getEndpoint   sa    666{??!23B"2+<$<$&HHJ  ++F33H_ %/ r,   c                 
   U R                   U R                  S4U R                  U R                  S4U R                  U R
                  S40nX;   a  X!   $ U R                  U5      S:X  a  U R
                  S4$ [        SU 35      e)Nr  r  	bandwidthrp  zUnknown challenge_type: )_AwsWaf__CHALLENGE_SCRYPT_AwsWaf__solveScrypt_AwsWaf__CHALLENGE_SHA256_AwsWaf__solveSha256rq  _AwsWaf__solveBandwidth_AwsWaf__getEndpointrR  )r(   rn  solverss      r)   __getSolverAwsWaf.__getSolver   s    ##););(I##););(I&&)>)>(L

 #))m,;));773M?CDDr,   c                    U=(       d    U R                  5       nU R                  nU R                  U5      n[        U5      nUR                   SUR
                   3nS nU R                  nUcK  U R                  5       Ul        UR                  X8S9n	U	R                  nU	R                  R                  S5      nU R                  U5      n
U
(       d  [        SU 35      eU R                  U5      nU R                  U5      nXR                  ;   a  U R                  U
   U l        O] U R#                  XcS9Ul        UR                  XS9nU R%                  UR                  5      U l        U R                   U R                  U
'   U R#                  XcS9Ul        UR                  SU S3US9R)                  5       nU R+                  5       u  nnUS   nUS	   nUS
   nUR                  SS5      nU R-                  U5      u  nnU" UUU5      nU R/                  U5      nU R#                  XcS9Ul        US:X  a  U R                   (       a  U R                   S   OSu  nn[(        R0                  " US SSU0S./USUU R3                  5       S S.U(       a  SU0O0 ESS9nSU R4                  0nUS U4US U40nU R6                  (       a6  [8        R:                  " SU SU 3UUU R6                  U R6                  S.US9n	OUUl        UR;                  SU SU 3UUS9n	U	R)                  5       nO]UUUSSU0S./S SX@R3                  5       S.n0 U R#                  XcS9ESS0EUl        UR;                  SU S 3UUS!9n	U	R)                  5       nS"U;  a  [        S#U 35      eUSU 3U=(       d    S
S$.n US"   U 4$ ! [&         a    S U l         GNCf = f)%Nz://)timeoutzx-amzn-waf-actionz!No AWS WAF challenge detected on )rb   rc   zhttps://z/inputs?client=browserchallenge_typer   r6   inputr   rp  rd  r_  ZoeyPresent)r   r(  Browser)r6   solutionsignalsr   clientdomainr   existing_token
goku_propsr   r   r^   /rD   )filesheadersrG   r  )r  r  )r6   r   r  r  r  r  r  r   zcontent-typeztext/plain;charset=UTF-8z/verify)r   r  r5   zNo token in response: )solverru  	wafAction)_AwsWaf__makeSessionr"   _AwsWaf__extractDomainr   schemerY  _HTTP_TIMEOUT_AwsWaf__pageHeadersr  r"  text_AwsWaf__extractChallengeJsUrlRuntimeError_AwsWaf__extractGokuProps_AwsWaf__extractWafHostr
   r'   _AwsWaf__apiHeaders_AwsWaf__parseChallengeJsr;   r   _AwsWaf__buildSignalPayload_AwsWaf__getSolverr  r   _AwsWaf__buildMetricsr%   r#   std_requestspost)!r(   r-   r.   r4   r  parsedrb   r  r  respchallengeJsUrl	gokuPropswafHostjsRespinputsr   encryptedSignalsrn  r   r6   r	  solverFn
solverNamer  endpointNamesolutionFieldmetadataFieldmetadata
mp_headersmp_filesresultr   r>   s!                                    r)   __solveChallengeAwsWaf.__solveChallenge   sS   1T//1%%((-SM}}oS(9:	&&<"002GO;;s;4D99D(()<=I55d;!B3%HII++D1	))$/222"33NCDO'"&"3"36"3"O ^E"&"9"9&++"F8<%%n5 ++6+Gxy0FGQXY^^`%)%>%>%@"" 01-
,	"w3#//>*NHjA))-8++6+G;&59__ 01; )M= zz&D%+yBR6STU$	V..0D	#
 1:L),r# %&H '(8(89J%h'7xHXYH||#((wiq7"J&*llDLLI#	 #-||wiq7"G $  YY[F$-8QYpv  CL  N^  B_  h`  ga  uy  EN  Z`  m@  m@  mB  CG{!2!2&!2!N{P^`z{GO<<(7)7 ;'SZ<[DYY[F& 7MfX5V(W"W#-Q|n;M\e\titug--q  '"&'s   &AN1 1OO)__impersonate
__jsConfig__proxy__userAgent__websiteURL)NNchrome)NN)5__name__
__module____qualname____firstlineno__r
   dict__annotations__r  bytesfromhex_AwsWaf__AES_KEYr   rp   rz  r|  rq  r!  r   r$   r   r<   r*   r   rI   rA   r  r  r  r   r   r   tupler   r  staticmethodr   boolr  r{  r}  r~  listr  r   r  r  r  r  r  r  r  r:   __static_attributes__rH   r,   r)   r   r   	   sT   dM`aIy!H___$)klx\j kL EL )4|  MF  	G&4z  Ks  	t(  5B  Rz  	{)4}  Nv  	w	N"3 "s "c "_b "rv "@# @x/?/? @4 @&*x// *^t ^3  t Se S S6E 6c 6 
t  
D"d "u "#e # % S T  MC M3 MC MTW MMC M3 MC MTW MXs Xc Xs XWZ X 
D 
 
(  $  
 s s  
 )c )hsm ) ) 9S 9S 9 9 L3 L4 L L:	3 	3 	
E 
E 
EV.S V.(:J:J V.V[ V. V.r,   r   )rn   rH  r   r9   r   r   rr   r   r  r  typingr   urllib.parser   	curl_cffir   +cryptography.hazmat.primitives.ciphers.aeadr   r  r   rH   r,   r)   <module>r     s/    I I I I I  !  > H. H.r,   