
    5iI                         d dl Z d dlZd dlZd dlZd dlZd dlZdZ G d dej                  Z G d d          Z	 G d d          Z
dS )	    N   c                   &    e Zd ZdZdZdZdZdZdZdS )SOCKS4ACDCode      Z   [   \   ]   N)	__name__
__module____qualname__REQ_CONNECTREQ_BINDREP_GRANTED
REP_FAILEDREP_FAILED_NOCONNREP_FAILED_USRID_MISMATCH     O/home/kali/Ninja/venv/lib/python3.11/site-packages/asysocks/protocol/socks4a.pyr   r      s0        r   r   c                   t    e Zd Zd Zed             Zedd            Zed             Zed             Zd Z	dS )	SOCKS4ARequestc                 n    d| _         t          j        | _        d | _        d | _        d | _        d | _        d S )N   )VNr   r   CDDSTPORTDSTIPUSERIDDOMAINselfs    r   __init__zSOCKS4ARequest.__init__   s3    $'%$'$,$*$+$+++r   c                 Z    t                               t          j        |                     S N)r   from_bufferioBytesIOdatas    r   
from_byteszSOCKS4ARequest.from_bytes   s     		#	#BJt$4$4	5	55r   Nc                   K   	 d}t          j        |                     d          |           d {V }||z  }t          j        |                     d          |           d {V }||z  }d}|dd         dk    rd}t          d|          D ]6}t          j        |                     d	          |           d {V }||z  }7t
                              |          d fS # t          $ r}d |fcY d }~S d }~ww xY w)
Nr   r   timeoutr   r      s      r       )asynciowait_forreadexactlyrange	readuntilr   r,   	Exception)readerr/   bufftr_es          r   from_streamreaderz SOCKS4ARequest.from_streamreader#   sK     
4f0033wGGGGGGGGG1194f0033wGGGGGGGGG11941!f	A!AJJ  qv//88GLLLLLLLLLAAIDD

#
#D
)
)4
//	   
'>>>>>>s   CC# #
C;-C60C;6C;c                 >   t                      }t                              |                     d          dd          |_        t          t                              |                     d          dd                    |_        t                              |                     d          dd          |_        t          j	        |                     d                    |_
        d|_        t          t                    D ]/}|                     d          }|dk    r n|xj        |z  c_        0t          |j
                                      d	          rDt          t                    D ]/}|                     d          }|dk    r n|xj        |z  c_        0|S )
Nr   bigF	byteordersignedr   r   r   r   z0.0.0.)r   intr,   readr   r   r   r   	ipaddressIPv4Addressr   r    r5   SOCKS4_USERID_MAC_LENstr
startswithr!   )r9   or<   xs       r   r'   zSOCKS4ARequest.from_buffer6   sQ   !			!%%	H	H!$	s~~diillPU~VV	W	W!$nnTYYq\\uunMM!)!$))A,,//!'!(&''  ayy||11ff	E88q=888\\X&& '((  q		!AAvv
UHHMHHH	
(r   c                    t                      }| j        du rt          j         | j        |_        t          | j        t          j	                  r| j        |_
        nY	 t          j        | j                  |_
        n9#  t          j        d          |_
        t          | j                  |_        Y nxY w| j        |_        | j        >t!          j        d                                                              d          |_        |S )NTz0.0.0.3r   ascii)r   is_bindr   r   endpoint_portr   
isinstanceendpoint_iprF   rG   r   
ip_addressrI   r!   useridr    osurandomhexencode)targetrK   s     r   from_targetzSOCKS4ARequest.from_targetL   s    !^t"!)"I$9:: '177'"6#566AGG'"9--AG6%&&AHHH]!(]jmm!!((1118	
(s   A< <4B2c                 V   | j                             ddd          }|| j        j                            ddd          z  }|| j                            ddd          z  }|| j        j        z  }|| j        z  }|dz  }| j        !|| j        	                                z  }|dz  }|S )Nr   r@   FrA   r   r1   )
r   to_bytesr   valuer   r   packedr    r!   rX   r#   r:   s     r   r\   zSOCKS4ARequest.to_bytes`   s    
gqee<<!tw}aUUCCC!t|QEEBBB!tz!t{!w,!	[1<1	
(r   r&   )
r   r   r   r$   staticmethodr,   r>   r'   rZ   r\   r   r   r   r   r      s           6 6 ,6    ,$   ,*   ,&
 
 
 
 
r   r   c                   ^    e Zd Zd Zed             Zedd            Zed             Zd ZdS )SOCKS4AReplyc                 >    d| _         d | _        d | _        d | _        d S )Nr   )r   r   r   r   r"   s    r   r$   zSOCKS4AReply.__init__m   s"    $'$'$,$***r   c                 Z    t                               t          j        |                     S r&   )rb   r'   r(   r)   r*   s    r   r,   zSOCKS4AReply.from_bytess   s     		!	!"*T"2"2	3	33r   Nc                    K   	 t          j        |                     d          |           d {V }t                              |          d fS # t
          $ r}d |fcY d }~S d }~ww xY w)N   r.   )r2   r3   r4   rb   r,   r7   )r8   r/   r:   r=   s       r   r>   zSOCKS4AReply.from_streamreaderw   s      f0033wGGGGGGGGG1

!
!!
$
$d
**	   
'>>>>>>s   A
A 
A'A"A'"A'c                    t                      }t                              |                     d          dd          |_        t          t                              |                     d          dd                    |_        t                              |                     d          dd          |_        t          j	        |                     d                    |_
        |S )Nr   r@   FrA   r   r   )rb   rD   r,   rE   r   r   r   r   rF   rG   r   )r9   rK   s     r   r'   zSOCKS4AReply.from_buffer   s    nn!			!%%	H	H!$	s~~diillPU~VV	W	W!$nnTYYq\\uunMM!)!$))A,,//!'	
(r   c                     | j                             ddd          }|| j        j                            ddd          z  }|| j                            ddd          z  }|| j        j        z  }|S )Nr   r@   FrA   r   )r   r\   r   r]   r   r   r^   r_   s     r   r\   zSOCKS4AReply.to_bytes   sv    
gqee<<!tw}aUUCCC!t|QEEBBB!tz!	
(r   r&   )	r   r   r   r$   r`   r,   r>   r'   r\   r   r   r   rb   rb   l   s           4 4 ,4    ,   ,    r   rb   )r(   rU   enumrF   socketr2   rH   Enumr   r   rb   r   r   r   <module>rl      s    
			 				                 DI      T T T T T T T Tl! ! ! ! ! ! ! ! ! !r   