
    5i                         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 )SOCKS4CDCode      Z   [   \   ]   N)	__name__
__module____qualname__REQ_CONNECTREQ_BINDREP_GRANTED
REP_FAILEDREP_FAILED_NOCONNREP_FAILED_USRID_MISMATCH     N/home/kali/Ninja/venv/lib/python3.11/site-packages/asysocks/protocol/socks4.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 )	SOCKS4Requestc                 `    d| _         t          j        | _        d | _        d | _        d | _        d S )N   )VNr   r   CDDSTPORTDSTIPUSERIDselfs    r   __init__zSOCKS4Request.__init__   s,    $'$$'$,$*$+++r   c                 Z    t                               t          j        |                     S N)r   from_bufferioBytesIOdatas    r   
from_byteszSOCKS4Request.from_bytes   s     		"	"2:d#3#3	4	44r   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    timeout)asynciowait_for	readuntilr   r+   	Exceptionreaderr/   tes       r   from_streamreaderzSOCKS4Request.from_streamreader"   s      f..w777KKKKKKKKK1

"
"1
%
%t
++	   
'>>>>>>   A
A 
A'A"A'"A'c                 h   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_        0|S )	Nr   bigF	byteordersignedr   r   r   r   )r   intr+   readr   r   r   r   	ipaddressIPv4Addressr   r    rangeSOCKS4_USERID_MAC_LEN)buffo_xs       r   r&   zSOCKS4Request.from_buffer*   s    oo!			!%%	H	H!$	cnnTYYq\\uunUU	V	V!$nnTYYq\\uunMM!)!$))A,,//!'!(&''  ayy||11ff	E88q=888	
(r   c                    t                      }| j        du rt          j         | j        |_        t          | j        t          j	                  r| j        |_
        nt          j        | j                  |_
        | j        |_        | j        >t          j        d                                                              d          |_        |S )NTr   ascii)r   is_bindr   r   endpoint_portr   
isinstanceendpoint_iprA   rB   r   
ip_addressuseridr    osurandomhexencode)targetrF   s     r   from_targetzSOCKS4Request.from_target9   s    oo!^t"!)"I$9:: 6177!&"45517]!(]jmm!!((1118	
(r   c                    | j                             ddd          }|| j        j                            ddd          z  }|| j                            ddd          z  }|| j        j        z  }|| j        z  }|dz  }|S )Nr   r;   Fr<   r   r-   )r   to_bytesr   valuer   r   packedr    r"   r6   s     r   rX   zSOCKS4Request.to_bytesI   s    
gqee<<!tw}aUUCCC!t|QEEBBB!tz!t{!w,!	
(r   r%   )
r   r   r   r#   staticmethodr+   r8   r&   rV   rX   r   r   r   r   r      s           5 5 ,5    ,   ,   ,    r   r   c                   ^    e Zd Zd Zed             Zedd            Zed             Zd ZdS )SOCKS4Replyc                 >    d| _         d | _        d | _        d | _        d S )Nr   )r   r   r   r   r!   s    r   r#   zSOCKS4Reply.__init__S   s"    $'$'$,$***r   c                 Z    t                               t          j        |                     S r%   )r^   r&   r'   r(   r)   s    r   r+   zSOCKS4Reply.from_bytesY   s     		 	 D!1!1	2	22r   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.   )r0   r1   readexactlyr^   r+   r3   r4   s       r   r8   zSOCKS4Reply.from_streamreader]   s      f0033wGGGGGGGGG1

 
 
#
#T
))	   
'>>>>>>r9   c                    t                      }t                              |                     d          dd          |_        t          t                              |                     d          dd                    |_        t                              |                     d          dd          |_        t          j	        |                     d                    |_
        |S )Nr   r;   Fr<   r   r   )r^   r?   r+   r@   r   r   r   r   rA   rB   r   )rE   rF   s     r   r&   zSOCKS4Reply.from_buffere   s    mm!			!%%	H	H!$	cnnTYYq\\uunUU	V	V!$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;   Fr<   r   )r   rX   r   rY   r   r   rZ   r[   s     r   rX   zSOCKS4Reply.to_bytesn   sv    
gqee<<!tw}aUUCCC!t|QEEBBB!tz!	
(r   r%   )	r   r   r   r#   r\   r+   r8   r&   rX   r   r   r   r^   r^   R   s           3 3 ,3    ,   ,    r   r^   )r'   rQ   enumrA   socketr0   rD   Enumr   r   r^   r   r   r   <module>ri      s    
			 				                 49      : : : : : : : :x! ! ! ! ! ! ! ! ! !r   