
    qjH              	       p   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rS SK	J
r
  S SKJr  SrSr\" S5      rS\S	\4S
 jrS\R$                  S\S	\4S jrS\R$                  S\S\S	S4S jrS\R$                  S	S4S jrS\S\S	\4S jrSSSS.S\R$                  S\S\S	\4S jjrS\R$                  S\S	\4S jrS\R$                  S	\4S jrSS jr\S:X  a	   \" 5         gg! \R:                   a=  r\" \R@                  " S\" \5      S.5      5        \RB                  " S5         SrCgSrCff = f)     N)Path)serialization)paddingzhttps://os.ourvend.com   zruntime/probesnamereturnc                 z    [         R                  " U S5      R                  5       nU(       d  [        SU  35      eU$ )N zmissing env: )osgetenvstrip
SystemExit)r   values     scripts/probe_actions.pygetenv_requiredr      s5    IIdB%%'E=/00L    sessionpasswordc                    U R                  [         S3[        S9R                  R	                  5       nSSR                  [        R                  " US5      5      -   S-   n[        R                  " UR                  5       5      nUR                  UR                  5       [        R                  " 5       5      n[        R                  " U5      R!                  5       $ )Nz/Account/GetPubKeytimeoutz-----BEGIN PUBLIC KEY-----

@   z
-----END PUBLIC KEY-----
)postBASETIMEOUTtextr   jointextwrapwrapr   load_pem_public_keyencodeencryptr   PKCS1v15base64	b64encodedecode)r   r   pubpemkey	encrypteds         r   encrypt_passwordr,      s    
,,$12G,
D
I
I
O
O
QC
(499X]]35K+L
LOm
mC

+
+CJJL
9CHOO-w/?/?/ABII&--//r   usernamec                     [        X5      nU R                  [         S3XSS.[        S9nUR                  R                  S5      (       d  [        SUR                  S S  35      eg )Nz/Account/LoginAccount)userAccountuserPwdLoginUrl)datar   zok,zpc login failed:    )r,   r   r   r   r   
startswithr   )r   r-   r   user_pwdresps        r   login_pcr8   "   sn    2H<<&%	R  D
 99&&,TYYt_,=>?? 'r   c                     [          S3SS.nU R                  [          S3[        S9  U R                  [          S3U[        S9  U R                  [          S3U[        S9  U R                  [          S3U[        S9  g )	Nz/OperateMonitor/IndexXMLHttpRequest)RefererX-Requested-Withr   z/OperateMonitor/VerificationPwd)headersr   z#/AssetsManage/GetStringMachineGroupz/OperateMonitor/getSession)r   getr   r   )r   r=   s     r   	bootstrapr?   -   s}    !F"78N^_GKK4&-.K@LLD6897T[L\LLD6<=wX_L`LLD634gwLWr   payloadc                     [         R                  SSS9  [         U  S3-  nUR                  [        R                  " USSS95        U$ )NT)parentsexist_okz.jsonF   )ensure_asciiindent)OUTmkdir
write_textjsondumps)r   r@   paths      r   dumprM   5   s@    IIdTI*D6DOODJJwU1EFKr   r3   paramsreferermethodrL   c          	      4   SS0nU(       a  [          U 3US'   [          U 3nU R                  XXcU[        S9nUR                  S S n	UUUR                  UR
                  R                  S5      U	S.n
 UR                  5       U
S'   U
$ ! [         a     U
$ f = f)	Nr<   r:   r;   )r=   r3   rO   r   i  zcontent-type)rQ   rL   status_codecontent_typebody_prefixrJ   )	r   requestr   r   rS   r=   r>   rJ   	Exception)r   rQ   rL   r3   rO   rP   r=   urlr7   bodyresults              r   prober[   <   s    !#34G $vgY/	F4&/C??66[b?cD99UdD''((8Fv M  Ms   4B	 	
BB
machine_idc                    SSU0SS.SSU0SS.SSU0SS./nUU Vs/ s HT  n[        XR                  S5      b  SOS	US
   UR                  S5      UR                  S5      UR                  S5      S9PMV     snS.$ s  snf )Nz/AssetsManage/Screenshot	MachineIDz/AssetsManage/Index)rL   r3   rP   MId)rL   rO   rP   r3   POSTGETrL   rO   rP   rN   )r\   results)r[   r>   )r   r\   
candidatescs       r   screenshot_probere   Q   s    +k:5N[pq+eZ5HUjk+Z7P]rsJ ! nx  y  nx  ijE'UU6]-F6ESTU[S\cdchchiocpyzy~y~  @H  zI  ST  SX  SX  Yb  Sc  d  nx  y  ys   AA=c           
          SSS.SSS.SSS./n/ nU HC  nU R                  [         US    3[        S9  UR                  [	        U SUS	   US   S
95        ME     SU0$ )Nz/CommodityInfo/Index)rL   rP   z/CommodityInfo/AuditListz/CommodityType/ListJsonz/CommodityType/IndexrP   r   ra   rL   )rP   rb   )r>   r   r   appendr[   )r   rc   rb   rd   s       r   commodity_proberh   ]   s~    '4JK+8NO*7MNJ
 GtfQy\N+W=uWeQvY)MN  wr   c                  R   [         R                  " 5       n U R                  SSS/S9  U R                  SSS9  U R                  5       n[	        S5      n[	        S	5      n[
        R                  " 5       nUR                  R                  S
S05        [        XBU5        [        U5        UR                  S:X  a/  [        XAR                  5      n[        SUR                   3U5      nO[        U5      n[        SU5      n[!        ["        R$                  " S['        U5      S.5      5        g )Naction
screenshot	commodity)choicesz--machine-id
2601070188)defaultOURVEND_USERNAMEOURVEND_PASSWORDz
User-Agentzvending-status probe/0.1zscreenshot-zcommodity-surfaceT)okout)argparseArgumentParseradd_argument
parse_argsr   requestsSessionr=   updater8   r?   rj   re   r\   rM   rh   printrJ   rK   str)parserargsr-   r   r   r@   rs   s          r   mainr   j   s    $$&F
<*EF
=D12H12H GOOL*DEFW)g{{l""7OO<[ 12G<!'*&0	$**DS2
34r   __main__F)rr   error   )r   N)"rt   r%   rJ   r   sysr   pathlibr   rx   cryptography.hazmat.primitivesr   )cryptography.hazmat.primitives.asymmetricr   r   r   rG   r|   r   ry   r,   r8   r?   dictrM   r[   re   rh   r   __name__RequestExceptionexcr{   rK   exit r   r   <module>r      s      	 
    8 =

# # 0h.. 0# 0# 0@h&& @# @ @ @Xx'' XD Xs T d  FJRV`d 8## S  im *	h.. 	C 	D 	
 X-- 
 $ 
 5. z  $$ djjC9:;s   C( (D583D00D5