o
    j%                     @   sT  d dl mZ d dl mZ d dlmZmZmZ d dlmZm	Z	m
Z
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 d d	lmZ G d
d deZedZedZedZedZedZ edZ!edZ"edZ#eZ$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Z0G d*d+ d+e	Z1G d,d- d-eZ2G d.d/ d/e	Z3G d0d1 d1eZ4G d2d3 d3e	Z5G d4d5 d5eZ6G d6d7 d7e	Z7i Z8G d8d9 d9e
Z9G d:d; d;e
Z:G d<d= d=e
Z;G d>d? d?e
Z<d@S )A    )division)print_function)	NDRSTRUCTNDRUniConformantVaryingArrayNDRENUM)DCOMCALL
DCOMANSWERIRemUnknown2PMInterfacePointer	INTERFACE)LPWSTRULONGDWORDSHORTGUID)DCERPCException)Enum)hresult_errors)string_to_binc                   @   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/dcom/vds.pyr   &   s   zDCERPCSessionError.__init__c                 C   sF   | j tjv rtj| j  d }tj| j  d }d| j ||f S d| j  S )Nr      z&VDS SessionError: code: 0x%x - %s - %sz*VDS SessionError: unknown error code: 0x%x)r   r   ERROR_MESSAGES)r   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   z$7D1933CB-86F6-4A98-8628-01BE94C9A575z$118610B7-8D94-4030-B5B8-500889788E4Ez$8326CD1D-CF59-4936-B786-5EFC08798E25z$D5D23B6D-5A55-4492-9889-397A3C2D2DBCz$4AFC3636-DB01-4052-80C3-03BBCB8D3C69z$0818A8EF-9BA9-40D8-A6F9-E22833CC771Ez$9AA58360-CE33-4F92-B658-ED24B14425B8z$10C5E575-7984-4E81-A56B-431F5F92AE42c                   @      e Zd ZdefdeffZdS )VDS_SERVICE_PROPpwszVersionulFlagsN)r#   r$   r%   r   r   	structurer   r   r   r   r'   G       r'   c                   @   s   e Zd ZeZdS )OBJECT_ARRAYN)r#   r$   r%   r
   itemr   r   r   r   r,   M   s    r,   c                   @   s   e Zd ZG dd deZdS )VDS_PROVIDER_TYPEc                   @   s    e Zd ZdZdZdZdZdZdS )zVDS_PROVIDER_TYPE.enumItemsr   r            N)r#   r$   r%   VDS_PT_UNKNOWNVDS_PT_SOFTWAREVDS_PT_HARDWAREVDS_PT_VIRTUALDISK
VDS_PT_MAXr   r   r   r   	enumItemsR   s    r7   N)r#   r$   r%   r   r7   r   r   r   r   r.   Q   s    r.   c                	   @   s@   e 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 )
VDS_PROVIDER_PROPidpwszNameguidVersionIdr(   typer)   ulStripeSizeFlagssRebuildPriorityN)
r#   r$   r%   VDS_OBJECT_IDr   r   r.   r   r   r*   r   r   r   r   r8   Z   s    r8   c                   @      e Zd ZdZdeffZdS )$IVdsServiceInitialization_Initializer0   pwszMachineNameN)r#   r$   r%   opnumr   r*   r   r   r   r   rA   k       rA   c                   @      e Zd ZdeffZdS ),IVdsServiceInitialization_InitializeResponse	ErrorCodeNr#   r$   r%   error_status_tr*   r   r   r   r   rF   q       rF   c                   @      e Zd ZdZdZdS )IVdsService_IsServiceReadyr0   r   Nr#   r$   r%   rC   r*   r   r   r   r   rL   w       rL   c                   @   rE   )"IVdsService_IsServiceReadyResponserG   NrH   r   r   r   r   rO   |   rJ   rO   c                   @   rK   )IVdsService_WaitForServiceReadyr1   r   NrM   r   r   r   r   rP      rN   rP   c                   @   rE   )'IVdsService_WaitForServiceReadyResponserG   NrH   r   r   r   r   rQ      rJ   rQ   c                   @   rK   )IVdsService_GetProperties   r   NrM   r   r   r   r   rR      rN   rR   c                   @   r&   )!IVdsService_GetPropertiesResponsepServiceProprG   N)r#   r$   r%   r'   rI   r*   r   r   r   r   rT      r+   rT   c                   @   r@   )IVdsService_QueryProviders   masksN)r#   r$   r%   rC   r   r*   r   r   r   r   rV      rD   rV   c                   @   r&   )"IVdsService_QueryProvidersResponseppEnumrG   N)r#   r$   r%   r
   rI   r*   r   r   r   r   rY      r+   rY   c                   @   r@   )IEnumVdsObject_Nextr0   celtN)r#   r$   r%   rC   r   r*   r   r   r   r   r[      rD   r[   c                   @   s"   e Zd ZdefdefdeffZdS )IEnumVdsObject_NextResponseppObjectArray	pcFetchedrG   N)r#   r$   r%   r,   r   rI   r*   r   r   r   r   r]      s
    r]   c                   @   rK   )IVdsProvider_GetPropertiesr0   r   NrM   r   r   r   r   r`      rN   r`   c                   @   r&   )"IVdsProvider_GetPropertiesResponsepProviderProprG   N)r#   r$   r%   r8   rI   r*   r   r   r   r   ra      r+   ra   c                   @   s   e Zd ZdddZdS )IEnumVdsObject  c              
   C   s   t  }|   |d< d|d d< ||d< z| j||  d}W n ty= } z| }|d dkr3 W Y d }~nd }~ww t }|d D ]}|t	t
|  d	|d
 |  |  d qE|S )NORPCthisr   flagsr\   uuidrG   r   r^    abDatatarget)r[   get_cinstanceget_ORPCthisrequestget_iPid	Exception
get_packetlistappendr	   r   joinget_ipidRemUnknown
get_target)r   r\   ro   respe
interfaces	interfacer   r   r   Next   s"   2zIEnumVdsObject.NextN)rd   )r#   r$   r%   r|   r   r   r   r   rc      s    rc   c                   @   s   e Zd Zdd ZdS )IVdsProviderc                 C   8   t  }|   |d< d|d d< | j||  d}|S Nre   r   rf   rg   )r`   rm   rn   ro   rp   r   ro   rx   r   r   r   GetProperties   
   zIVdsProvider.GetPropertiesN)r#   r$   r%   r   r   r   r   r   r}      s    r}   c                   @   s   e Zd Zdd Zdd ZdS )IVdsServiceInitializationc                 C      t | | d S r   r	   r   r   r{   r   r   r   r         z"IVdsServiceInitialization.__init__c                 C   s@   t  }|   |d< d|d d< d|d< | j||  d}|S )Nre   r   rf    rB   rg   )rA   rm   rn   ro   rp   r   r   r   r   
Initialize   s   z$IVdsServiceInitialization.InitializeN)r#   r$   r%   r   r   r   r   r   r   r      s    r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )IVdsServicec                 C   r   r   r   r   r   r   r   r      r   zIVdsService.__init__c              
   C   sj   t  }|   |d< d|d d< z| j||  d}W |S  ty4 } z| }W Y d }~|S d }~ww r   )rL   rm   rn   ro   rp   rq   rr   )r   ro   rx   ry   r   r   r   IsServiceReady   s   zIVdsService.IsServiceReadyc                 C   r~   r   )rP   rm   rn   ro   rp   r   r   r   r   WaitForServiceReady   r   zIVdsService.WaitForServiceReadyc                 C   r~   r   )rR   rm   rn   ro   rp   r   r   r   r   r     r   zIVdsService.GetPropertiesc                 C   sj   t  }|   |d< d|d d< ||d< | j||  d}tt|  d|d d |  | 	 d	S )
Nre   r   rf   rX   rg   ri   rZ   rj   rk   )
rV   rm   rn   ro   rp   rc   r   ru   rv   rw   )r   rX   ro   rx   r   r   r   QueryProviders
  s   .zIVdsService.QueryProvidersN)r#   r$   r%   r   r   r   r   r   r   r   r   r   r      s    
r   N)=
__future__r   r   impacket.dcerpc.v5.ndrr   r   r   impacket.dcerpc.v5.dcomrtr   r   r	   r
   r   impacket.dcerpc.v5.dtypesr   r   r   r   r   impacket.dcerpc.v5.rpcrtr   impacket.dcerpc.v5.enumr   impacketr   impacket.uuidr   r   CLSID_VirtualDiskServiceIID_IEnumVdsObjectIID_IVdsAdviseSinkIID_IVdsAsyncIID_IVdsServiceInitializationIID_IVdsServiceIID_IVdsSwProviderIID_IVdsProviderrI   r?   r'   r,   r.   r8   rA   rF   rL   rO   rP   rQ   rR   rT   rV   rY   r[   r]   r`   ra   OPNUMSrc   r}   r   r   r   r   r   r   <module>   sV   		