o
    j%                     @   s  d dl mZ d dlmZmZmZmZmZ d dl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dZd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!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'd e&e'fiZ(d-d. Z)d/S )0    )DCERPCException)NDRCALL	NDRSTRUCTNDRUNION
NDRPOINTERNDRENUM)UINTLPWSTRGUID)system_errors)Enum)uuidtup_to_bin)z$3919286A-B10C-11D0-9BA8-00C04FD92EF5z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/dssp.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'DSSP SessionError: code: 0x%x - %s - %sz+DSSP 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   r         i      c                   @      e Zd ZG dd deZdS )DSROLE_MACHINE_ROLEc                   @   s$   e Zd ZdZdZdZdZdZdZdS )zDSROLE_MACHINE_ROLE.enumItemsr   r   r      r!      N)	r   r   r    DsRole_RoleStandaloneWorkstationDsRole_RoleMemberWorkstationDsRole_RoleStandaloneServerDsRole_RoleMemberServer!DsRole_RoleBackupDomainController"DsRole_RolePrimaryDomainControllerr   r   r   r   	enumItemsC   s    r,   Nr   r   r   r   r,   r   r   r   r   r#   B       r#   c                   @   s4   e 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 )!DSROLER_PRIMARY_DOMAIN_INFO_BASICMachineRoleFlagsDomainNameFlatDomainNameDnsDomainForestName
DomainGuidN)r   r   r   r#   r   r	   r
   	structurer   r   r   r   r/   L   s    r/   c                   @      e Zd ZdeffZdS )"PDSROLER_PRIMARY_DOMAIN_INFO_BASICDataN)r   r   r   r/   referentr   r   r   r   r8   V       r8   c                   @   r"   )DSROLE_OPERATION_STATEc                   @      e Zd ZdZdZdZdS )z DSROLE_OPERATION_STATE.enumItemsr   r   r   N)r   r   r   DsRoleOperationIdleDsRoleOperationActiveDsRoleOperationNeedRebootr   r   r   r   r,   ]       r,   Nr-   r   r   r   r   r<   \   r.   r<   c                   @   r7   )DSROLE_OPERATION_STATE_INFOOperationStateN)r   r   r   r<   r6   r   r   r   r   rB   c   r;   rB   c                   @   r7   )PDSROLE_OPERATION_STATE_INFOr9   N)r   r   r   rB   r:   r   r   r   r   rD   h   r;   rD   c                   @   r"   )DSROLE_SERVER_STATEc                   @   r=   )zDSROLE_SERVER_STATE.enumItemsr   r   r   N)r   r   r   DsRoleServerUnknownDsRoleServerPrimaryDsRoleServerBackupr   r   r   r   r,   o   rA   r,   Nr-   r   r   r   r   rE   n   r.   rE   c                   @   r7   )PDSROLE_SERVER_STATEr9   N)r   r   r   rE   r:   r   r   r   r   rI   t   r;   rI   c                   @   s   e Zd ZdefdeffZdS )DSROLE_UPGRADE_STATUS_INFOrC   PreviousServerStateN)r   r   r   r   rE   r6   r   r   r   r   rJ   z   s    rJ   c                   @   r7   )PDSROLE_UPGRADE_STATUS_INFOr9   N)r   r   r   rJ   r:   r   r   r   r   rL      r;   rL   c                   @   r"   ) DSROLE_PRIMARY_DOMAIN_INFO_LEVELc                   @   r=   )z*DSROLE_PRIMARY_DOMAIN_INFO_LEVEL.enumItemsr   r   r$   N)r   r   r   DsRolePrimaryDomainInfoBasicDsRoleUpgradeStatusDsRoleOperationStater   r   r   r   r,      rA   r,   Nr-   r   r   r   r   rM      r.   rM   c                   @   s8   e Zd ZdeffZejdefejdefej	de
fiZdS )"DSROLER_PRIMARY_DOMAIN_INFORMATIONtagDomainInfoBasicUpgradStatusInfoOperationStateInfoN)r   r   r   rM   	commonHdrrN   r/   rO   rJ   rP   rB   unionr   r   r   r   rQ      s    


rQ   c                   @   r7   )#PDSROLER_PRIMARY_DOMAIN_INFORMATIONr9   N)r   r   r   rQ   r:   r   r   r   r   rX      r;   rX   c                   @   s   e Zd ZdZdeffZdS )"DsRolerGetPrimaryDomainInformationr   	InfoLevelN)r   r   r   opnumrM   r6   r   r   r   r   rY      s    rY   c                   @   r7   )*DsRolerGetPrimaryDomainInformationResponse
DomainInfoN)r   r   r   rX   r6   r   r   r   r   r\      r;   r\   c                 C   s   t  }||d< | |S )NrZ   )rY   request)dce	infoLevelr^   r   r   r   #hDsRolerGetPrimaryDomainInformation   s   
ra   N)*impacket.dcerpc.v5.rpcrtr   impacket.dcerpc.v5.ndrr   r   r   r   r   impacket.dcerpc.v5.dtypesr   r	   r
   impacketr   impacket.dcerpc.v5.enumr   impacket.uuidr   MSRPC_UUID_DSSPr   DSROLE_PRIMARY_DS_RUNNINGDSROLE_PRIMARY_DS_MIXED_MODEDSROLE_PRIMARY_DS_READONLY"DSROLE_PRIMARY_DOMAIN_GUID_PRESENTDSROLE_UPGRADE_IN_PROGRESSr#   r/   r8   r<   rB   rD   rE   rI   rJ   rL   rM   rQ   rX   rY   r\   OPNUMSra   r   r   r   r   <module>   s>   

		