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<   
		

		