o
    àý°j
?  ã                	   @   s  d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ 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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'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/d0„ d0eƒZ0G d1d2„ d2eƒZ1G d3d4„ d4eƒZ2G d5d6„ d6eƒZ3G d7d8„ d8eƒZ4G d9d:„ d:eƒZ5G d;d<„ d<eƒZ6G d=d>„ d>eƒZ7G d?d@„ d@eƒZ8G dAdB„ dBeƒZ9G dCdD„ dDeƒZ:G dEdF„ dFeƒZ;G dGdH„ dHeƒZ<G dIdJ„ dJeƒZ=G dKdL„ dLeƒZ>G dMdN„ dNeƒZ?G dOdP„ dPeƒZ@G dQdR„ dReƒZAG dSdT„ dTeƒZBG dUdV„ dVeƒZCG dWdX„ dXeƒZDG dYdZ„ dZeƒZEG d[d\„ d\eƒZFG d]d^„ d^eƒZGG d_d`„ d`eƒZHG dadb„ dbeƒZIG dcdd„ ddeƒZJeCeDfeIeJfe;e<feGeHfeAeBfe?e@feEeFfe=e>fdeœZKe
e
fdfdg„ZLe%jMd dhfdidj„ZNe%jMd dhfdkdl„ZOe%jMd dhfdmdn„ZPe%jMfdodp„ZQe%jMd dhfdqdr„ZRe%jMfdsdt„ZSduS )vé    )Ú	nt_errors)ÚULONGÚLONGÚPRPC_SIDÚRPC_UNICODE_STRINGÚLPWSTRÚPRPC_UNICODE_STRINGÚNTSTATUSÚNULL)ÚEnum)ÚLSAPR_HANDLEÚPLSAPR_TRUST_INFORMATION_ARRAY)ÚNDRCALLÚ	NDRSTRUCTÚNDRENUMÚ
NDRPOINTERÚNDRUniConformantArray)ÚDCERPCException)ÚSID_NAME_USE)Úuuidtup_to_bin)z$12345778-1234-ABCD-EF00-0123456789ABz0.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/lsat.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'LSAT SessionError: code: 0x%x - %s - %sz+LSAT 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   c                   @   s"   e Zd ZdefdefdeffZdS )ÚLSAPR_REFERENCED_DOMAIN_LISTÚEntriesÚDomainsÚ
MaxEntriesN)r$   r%   r&   r   r   Ú	structurer   r   r   r   r'   =   ó
    ýr'   c                   @   ó   e Zd ZdeffZdS )ÚPLSAPR_REFERENCED_DOMAIN_LISTÚDataN)r$   r%   r&   r'   Úreferentr   r   r   r   r.   D   ó    ÿr.   c                   @   ó"   e Zd ZdefdefdeffZdS )ÚLSA_TRANSLATED_SIDÚUseÚ
RelativeIdÚDomainIndexN©r$   r%   r&   r   r   r   r+   r   r   r   r   r3   J   r,   r3   c                   @   ó   e Zd ZeZdS )ÚLSA_TRANSLATED_SID_ARRAYN)r$   r%   r&   r3   Úitemr   r   r   r   r9   R   ó    r9   c                   @   r-   )ÚPLSA_TRANSLATED_SID_ARRAYr/   N)r$   r%   r&   r9   r0   r   r   r   r   r<   U   r1   r<   c                   @   ó   e Zd ZdefdeffZdS )ÚLSAPR_TRANSLATED_SIDSr(   ÚSidsN)r$   r%   r&   r   r<   r+   r   r   r   r   r>   Z   ó    þr>   c                   @   s   e Zd ZG dd„ deƒZdS )ÚLSAP_LOOKUP_LEVELc                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	zLSAP_LOOKUP_LEVEL.enumItemsr   é   é   é   é   é   é   N)
r$   r%   r&   ÚLsapLookupWkstaÚLsapLookupPDCÚLsapLookupTDLÚLsapLookupGCÚLsapLookupXForestReferralÚLsapLookupXForestResolveÚLsapLookupRODCReferralToFullDCr   r   r   r   Ú	enumItemsb   s    rO   N)r$   r%   r&   r   rO   r   r   r   r   rA   a   s    rA   c                   @   r-   )ÚLSAPR_SID_INFORMATIONÚSidN)r$   r%   r&   r   r+   r   r   r   r   rP   l   r1   rP   c                   @   r8   )ÚLSAPR_SID_INFORMATION_ARRAYN)r$   r%   r&   rP   r:   r   r   r   r   rR   r   r;   rR   c                   @   r-   )ÚPLSAPR_SID_INFORMATION_ARRAYr/   N)r$   r%   r&   rR   r0   r   r   r   r   rS   u   r1   rS   c                   @   r=   )ÚLSAPR_SID_ENUM_BUFFERr(   ÚSidInfoN)r$   r%   r&   r   rS   r+   r   r   r   r   rT   z   r@   rT   c                   @   r2   )ÚLSAPR_TRANSLATED_NAMEr4   ÚNamer6   N)r$   r%   r&   r   r   r   r+   r   r   r   r   rV   �   r,   rV   c                   @   r8   )ÚLSAPR_TRANSLATED_NAME_ARRAYN)r$   r%   r&   rV   r:   r   r   r   r   rX   ‰   r;   rX   c                   @   r-   )ÚPLSAPR_TRANSLATED_NAME_ARRAYr/   N)r$   r%   r&   rX   r0   r   r   r   r   rY   Œ   r1   rY   c                   @   r=   )ÚLSAPR_TRANSLATED_NAMESr(   ÚNamesN)r$   r%   r&   r   rY   r+   r   r   r   r   rZ   ‘   r@   rZ   c                   @   ó(   e Zd ZdefdefdefdeffZdS )ÚLSAPR_TRANSLATED_NAME_EXr4   rW   r6   ÚFlagsN)r$   r%   r&   r   r   r   r   r+   r   r   r   r   r]   ˜   ó    ür]   c                   @   r8   )ÚLSAPR_TRANSLATED_NAME_EX_ARRAYN)r$   r%   r&   r]   r:   r   r   r   r   r`   ¡   r;   r`   c                   @   r-   )ÚPLSAPR_TRANSLATED_NAME_EX_ARRAYr/   N)r$   r%   r&   r`   r0   r   r   r   r   ra   ¤   r1   ra   c                   @   r=   )ÚLSAPR_TRANSLATED_NAMES_EXr(   r[   N)r$   r%   r&   r   ra   r+   r   r   r   r   rb   ©   r@   rb   c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚLSAPR_TRANSLATED_SID_EXr4   r5   r6   r^   Nr7   r   r   r   r   rc   °   r_   rc   c                   @   r8   )ÚLSAPR_TRANSLATED_SID_EX_ARRAYN)r$   r%   r&   rc   r:   r   r   r   r   rd   ¹   r;   rd   c                   @   r-   )ÚPLSAPR_TRANSLATED_SID_EX_ARRAYr/   N)r$   r%   r&   rd   r0   r   r   r   r   re   ¼   r1   re   c                   @   r=   )ÚLSAPR_TRANSLATED_SIDS_EXr(   r?   N)r$   r%   r&   r   re   r+   r   r   r   r   rf   Á   r@   rf   c                   @   r\   )ÚLSAPR_TRANSLATED_SID_EX2r4   rQ   r6   r^   N)r$   r%   r&   r   r   r   r   r+   r   r   r   r   rg   È   r_   rg   c                   @   r8   )ÚLSAPR_TRANSLATED_SID_EX2_ARRAYN)r$   r%   r&   rg   r:   r   r   r   r   rh   Ñ   r;   rh   c                   @   r-   )ÚPLSAPR_TRANSLATED_SID_EX2_ARRAYr/   N)r$   r%   r&   rh   r0   r   r   r   r   ri   Ô   r1   ri   c                   @   r=   )ÚLSAPR_TRANSLATED_SIDS_EX2r(   r?   N)r$   r%   r&   r   ri   r+   r   r   r   r   rj   Ù   r@   rj   c                   @   r8   )ÚRPC_UNICODE_STRING_ARRAYN)r$   r%   r&   r   r:   r   r   r   r   rk   ß   r;   rk   c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚLsarGetUserNameé-   Ú
SystemNameÚUserNameÚ
DomainNameN)r$   r%   r&   Úopnumr   r   r+   r   r   r   r   rl   æ   s    ýrl   c                   @   s"   e Zd ZdefdefdeffZdS )ÚLsarGetUserNameResponsero   rp   Ú	ErrorCodeN)r$   r%   r&   r   r	   r+   r   r   r   r   rr   î   r,   rr   c                   @   s>   e Zd ZdZdefdefdefdefdefdefdeffZd	S )
ÚLsarLookupNames4éM   ÚCountr[   ÚTranslatedSidsÚLookupLevelÚMappedCountÚLookupOptionsÚClientRevisionN)	r$   r%   r&   rq   r   rk   rj   rA   r+   r   r   r   r   rt   ö   ó    ùrt   c                   @   r\   )ÚLsarLookupNames4ResponseÚReferencedDomainsrw   ry   rs   N©r$   r%   r&   r.   rj   r   r	   r+   r   r   r   r   r}     r_   r}   c                	   @   óD   e Zd ZdZdefdefdefdefdefdefdefd	effZ	d
S )ÚLsarLookupNames3éD   ÚPolicyHandlerv   r[   rw   rx   ry   rz   r{   N)
r$   r%   r&   rq   r   r   rk   rj   rA   r+   r   r   r   r   r�     ó    ør�   c                   @   r\   )ÚLsarLookupNames3Responser~   rw   ry   rs   Nr   r   r   r   r   r…     r_   r…   c                	   @   r€   )ÚLsarLookupNames2é:   rƒ   rv   r[   rw   rx   ry   rz   r{   N)
r$   r%   r&   rq   r   r   rk   rf   rA   r+   r   r   r   r   r†   !  r„   r†   c                   @   r\   )ÚLsarLookupNames2Responser~   rw   ry   rs   N)r$   r%   r&   r.   rf   r   r	   r+   r   r   r   r   rˆ   .  r_   rˆ   c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZ	dS )	ÚLsarLookupNamesé   rƒ   rv   r[   rw   rx   ry   N)
r$   r%   r&   rq   r   r   rk   r>   rA   r+   r   r   r   r   r‰   7  ó    úr‰   c                   @   r\   )ÚLsarLookupNamesResponser~   rw   ry   rs   N)r$   r%   r&   r.   r>   r   r	   r+   r   r   r   r   rŒ   B  r_   rŒ   c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZdS )	ÚLsarLookupSids3éL   ÚSidEnumBufferÚTranslatedNamesrx   ry   rz   r{   N)	r$   r%   r&   rq   rT   rb   rA   r   r+   r   r   r   r   r�   K  r‹   r�   c                   @   r\   )ÚLsarLookupSids3Responser~   r�   ry   rs   N©r$   r%   r&   r.   rb   r   r	   r+   r   r   r   r   r‘   V  r_   r‘   c                   @   s>   e Zd ZdZdefdefdefdefdefdefdeffZ	d	S )
ÚLsarLookupSids2é9   rƒ   r�   r�   rx   ry   rz   r{   N)
r$   r%   r&   rq   r   rT   rb   rA   r   r+   r   r   r   r   r“   _  r|   r“   c                   @   r\   )ÚLsarLookupSids2Responser~   r�   ry   rs   Nr’   r   r   r   r   r•   k  r_   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 )ÚLsarLookupSidsé   rƒ   r�   r�   rx   ry   N)
r$   r%   r&   rq   r   rT   rZ   rA   r   r+   r   r   r   r   r–   t  s    ûr–   c                   @   r\   )ÚLsarLookupSidsResponser~   r�   ry   rs   N)r$   r%   r&   r.   rZ   r   r	   r+   r   r   r   r   r˜   ~  r_   r˜   )rŠ   r—   rm   r”   r‡   r‚   rŽ   ru   c                 C   s(   t ƒ }t|d< ||d< ||d< |  |¡S )Nrn   ro   rp   )rl   r
   Úrequest)ÚdceÚuserNameÚ
domainNamer™   r   r   r   ÚhLsarGetUserName—  s
   
r�   r   c                 C   sf   t ƒ }t|ƒ|d< |D ]}tƒ }||d< |d  |¡ qt|d d< ||d< ||d< ||d< |  |¡S )	Nrv   r/   r[   rw   r?   rx   rz   r{   )rt   Úlenr   Úappendr
   r™   )rš   ÚnamesÚlookupLevelÚlookupOptionsÚclientRevisionr™   ÚnameÚitemnr   r   r   ÚhLsarLookupNames4ž  s   
r¦   c           	      C   ón   t ƒ }||d< t|ƒ|d< |D ]}tƒ }||d< |d  |¡ qt|d d< ||d< ||d< ||d	< |  |¡S ©
Nrƒ   rv   r/   r[   rw   r?   rx   rz   r{   )r�   rž   r   rŸ   r
   r™   ©	rš   ÚpolicyHandler    r¡   r¢   r£   r™   r¤   r¥   r   r   r   ÚhLsarLookupNames3¬  ó   
r«   c           	      C   r§   r¨   )r†   rž   r   rŸ   r
   r™   r©   r   r   r   ÚhLsarLookupNames2»  r¬   r­   c                 C   s^   t ƒ }||d< t|ƒ|d< |D ]}tƒ }||d< |d  |¡ qt|d d< ||d< |  |¡S )Nrƒ   rv   r/   r[   rw   r?   rx   )r‰   rž   r   rŸ   r
   r™   )rš   rª   r    r¡   r™   r¤   r¥   r   r   r   ÚhLsarLookupNamesÊ  s   
r®   c           	      C   s|   t ƒ }||d< t|ƒ|d d< |D ]}tƒ }|d  |¡ |d d  |¡ qt|d d< ||d< ||d	< ||d
< |  |¡S )Nrƒ   r�   r(   rQ   rU   r�   r[   rx   rz   r{   )r“   rž   rP   ÚfromCanonicalrŸ   r
   r™   )	rš   rª   Úsidsr¡   r¢   r£   r™   Úsidr¥   r   r   r   ÚhLsarLookupSids2×  s   
r²   c                 C   sl   t ƒ }||d< t|ƒ|d d< |D ]}tƒ }|d  |¡ |d d  |¡ qt|d d< ||d< |  |¡S )	Nrƒ   r�   r(   rQ   rU   r�   r[   rx   )r–   rž   rP   r¯   rŸ   r
   r™   )rš   rª   r°   r¡   r™   r±   r¥   r   r   r   ÚhLsarLookupSidsç  s   
r³   N)TÚimpacketr   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r	   r
   Úimpacket.dcerpc.v5.enumr   Úimpacket.dcerpc.v5.lsadr   r   Úimpacket.dcerpc.v5.ndrr   r   r   r   r   Úimpacket.dcerpc.v5.rpcrtr   Úimpacket.dcerpc.v5.samrr   Úimpacket.uuidr   ÚMSRPC_UUID_LSATr   ÚPOLICY_LOOKUP_NAMESr'   r.   r3   r9   r<   r>   rA   rP   rR   rS   rT   rV   rX   rY   rZ   r]   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rr   rt   r}   r�   r…   r†   rˆ   r‰   rŒ   r�   r‘   r“   r•   r–   r˜   ÚOPNUMSr�   rH   r¦   r«   r­   r®   r²   r³   r   r   r   r   Ú<module>   sŽ   (									
ø