o
    jw                     @   s   d dl mZmZ d dlmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ e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eefeefdZdd ZdddZdd ZdS )    )hresult_errorsmapi_constants)NULLSTRULONG)NDRCALL
NDRPOINTER)DCERPCException)uuidtup_to_bin)z$1544F5E0-613C-11D1-93DF-00C04FD7BD09z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/oxabref.pyr      s   zDCERPCSessionError.__init__c                 C   sh   | j }|tjv rtj| }d| j |f S |tjv r/tj| d }tj| d }d| j ||f S d| j  S )Nz%OXABREF SessionError: code: 0x%x - %sr      z*OXABREF SessionError: code: 0x%x - %s - %sz.OXABREF SessionError: unknown error code: 0x%x)r   r   ERROR_MESSAGESr   )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   c                   @      e Zd ZdeffZdS )PUCHAR_ARRAYDataN)r   r   r   r   referentr   r   r   r   r   -       r   c                   @   r   )PPUCHAR_ARRAYr   N)r   r   r   r   r   r   r   r   r   r!   2   r    r!   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )RfrGetNewDSAr   ulFlagspUserDN
ppszUnused
ppszServerN)r   r   r   opnumr   r   r!   	structurer   r   r   r   r"   <   s    r"   c                   @   s   e Zd ZdefdeffZdS )RfrGetNewDSAResponser%   r&   N)r   r   r   r!   r(   r   r   r   r   r)   E       r)   c                   @   s&   e Zd ZdZdefdefdeffZdS )RfrGetFQDNFromServerDNr   r#   cbMailboxServerDNszMailboxServerDNN)r   r   r   r'   r   r   r(   r   r   r   r   r+   L   s    r+   c                   @   s   e Zd ZdefdeffZdS )RfrGetFQDNFromServerDNResponseppszServerFQDN	ErrorCodeN)r   r   r   r   r   r(   r   r   r   r   r.   T   r*   r.   )r   r   c                 C   s(   | t kr| S | dd  dkr| d S | S )N )r   )stringr   r   r   checkNullStringe   s
   r4    c                 C   sl   t  }d|d< t||d< t|d< d|d< | |}|d d d |d< |d tkr4|d d d |d< |S )Nr   r#   r$   r%   r2   r&   r1   )r"   r4   r   request)dcer$   r6   respr   r   r   hRfrGetNewDSAn   s   
r9   c                 C   sL   t |}t }d|d< ||d< t||d< | |}|d d d |d< |S )Nr   r#   r-   r,   r/   r1   )r4   r+   lenr6   )r7   r-   r6   r8   r   r   r   hRfrGetFQDNFromServerDN}   s   
r;   N)r5   )impacketr   r   impacket.dcerpc.v5.dtypesr   r   r   impacket.dcerpc.v5.ndrr   r   impacket.dcerpc.v5.rpcrtr	   impacket.uuidr
   MSRPC_UUID_OXABREFr   r   r!   r"   r)   r+   r.   OPNUMSr4   r9   r;   r   r   r   r   <module>   s&   
	

	