o
    àý°j�  ã                   @   s\  d dl mZmZ d dlmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ edƒZG dd„ deƒZeZeZd	Zd
ZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZeefeefeefeefdœZdd„ Zd)d d!„Z d"d#„ Z!efd$d%„Z"efd&d'„Z#d(S )*é    )ÚNDRCALLÚNDRUniConformantArray)ÚDWORDÚLPWSTRÚULONGÚWSTRÚNULL)Úhresult_errors)Úuuidtup_to_bin)ÚDCERPCException)z$378E52B0-C0A9-11CF-822D-00AA0051E40Fz1.0c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S )N)r   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacket© r   ú‹/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/sasec.pyr   #   s   zDCERPCSessionError.__init__c                 C   sF   | j }|tjv rtj| d }tj| d }d| j ||f S d| j  S )Nr   é   z'TSCH SessionError: code: 0x%x - %s - %sz+TSCH SessionError: unknown error code: 0x%x)r   r	   ÚERROR_MESSAGES)r   ÚkeyÚerror_msg_shortÚerror_msg_verboser   r   r   Ú__str__&   s   

zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   "   s    
r   i  i   c                   @   s   e Zd ZdZdS )Ú
WORD_ARRAYz<HN)r   r   r   Úitemr   r   r   r   r   =   s    r   c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )ÚSASetAccountInformationr   ÚHandleÚpwszJobNameÚpwszAccountÚpwszPasswordÚ
dwJobFlagsN)	r   r   r   ÚopnumÚPSASEC_HANDLEr   r   r   Ú	structurer   r   r   r   r   D   s    ûr   c                   @   ó   e Zd ZdeffZdS )ÚSASetAccountInformationResponseÚ	ErrorCodeN©r   r   r   r   r'   r   r   r   r   r)   N   ó    ÿr)   c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚSASetNSAccountInformationr   r    r"   r#   N)r   r   r   r%   r&   r   r'   r   r   r   r   r-   T   ó    ýr-   c                   @   r(   )Ú!SASetNSAccountInformationResponser*   Nr+   r   r   r   r   r/   \   r,   r/   c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚSAGetNSAccountInformationé   r    ÚccBufferSizeÚ	wszBufferN)r   r   r   r%   r&   r   r   r'   r   r   r   r   r0   b   r.   r0   c                   @   ó   e Zd ZdefdeffZdS )Ú!SAGetNSAccountInformationResponser3   r*   N©r   r   r   r   r   r'   r   r   r   r   r5   j   ó    þr5   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚSAGetAccountInformationé   r    r!   r2   r3   N)	r   r   r   r%   r&   r   r   r   r'   r   r   r   r   r8   q   s    ür8   c                   @   r4   )ÚSAGetAccountInformationResponser3   r*   Nr6   r   r   r   r   r:   z   r7   r:   )r   r   r1   r9   c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r   )Ústringr   r   r   ÚcheckNullStringŒ   s
   r>   c                 C   sD   t ƒ }||d< t|ƒ|d< t|ƒ|d< t|ƒ|d< ||d< |  |¡S )Nr    r!   r"   r#   r$   )r   r>   Úrequest)ÚdceÚhandler!   r"   r#   r$   r?   r   r   r   ÚhSASetAccountInformation•   s   
rB   c                 C   s0   t ƒ }||d< t|ƒ|d< t|ƒ|d< |  |¡S )Nr    r"   r#   )r-   r>   r?   )r@   rA   r"   r#   r?   r   r   r   ÚhSASetNSAccountInformationž   s
   
rC   c                 C   s<   t ƒ }||d< ||d< t|ƒD ]	}|d  d¡ q|  |¡S )Nr    r2   r3   r   )r0   ÚrangeÚappendr?   )r@   rA   r2   r?   Ú_r   r   r   ÚhSAGetNSAccountInformation¥   s   
rG   c                 C   sH   t ƒ }||d< t|ƒ|d< ||d< t|ƒD ]	}|d  d¡ q|  |¡S )Nr    r!   r2   r3   r   )r8   r>   rD   rE   r?   )r@   rA   r!   r2   r?   rF   r   r   r   ÚhSAGetAccountInformation­   s   
rH   N)r   )$Úimpacket.dcerpc.v5.ndrr   r   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   Úimpacketr	   Úimpacket.uuidr
   Úimpacket.dcerpc.v5.rpcrtr   ÚMSRPC_UUID_SASECr   ÚSASEC_HANDLEr&   ÚMAX_BUFFER_SIZEÚTASK_FLAG_RUN_ONLY_IF_LOGGED_ONr   r   r)   r-   r/   r0   r5   r8   r:   ÚOPNUMSr>   rB   rC   rG   rH   r   r   r   r   Ú<module>   s<   
		ü

		