o
    àý°jë  ã                   @   s  d dl mZmZmZmZ d dlmZ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d	ZeZd
Zee d d ZdZdZdZdZdZdZdZd
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ƒZ0G d-d.„ d.eƒZ1G d/d0„ d0eƒZ2G d1d2„ d2eƒZ3e,e-fe.e/fe0e1fe2e3fd3œZ4eefd4d5„Z5ed d fd6d7„Z6eed8fd9d:„Z7ed fd;d<„Z8d=S )>é    )ÚNDRCALLÚ	NDRSTRUCTÚ
NDRPOINTERÚNDRUniConformantArray)ÚDWORDÚLPWSTRÚUCHARÚULONGÚLPDWORDÚNULL)Úhresult_errors)Úuuidtup_to_bin)ÚDCERPCException)z$1FF70682-0A51-30E8-076D-740BE8CEE98Bz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/atsvc.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   é   é   r   é   é   é   é    é@   é€   i   i   i   i   i    c                   @   s.   e Zd ZdefdefdefdefdeffZdS )ÚAT_INFOÚJobTimeÚDaysOfMonthÚ
DaysOfWeekÚFlagsÚCommandN©r   r   r   r   r   r   Ú	structurer   r   r   r   r(   M   s    ûr(   c                   @   ó   e Zd ZdeffZdS )Ú	LPAT_INFOÚDataN)r   r   r   r(   Úreferentr   r   r   r   r1   V   ó    ÿr1   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 )ÚAT_ENUMÚJobIdr)   r*   r+   r,   r-   Nr.   r   r   r   r   r5   \   s    úr5   c                   @   s   e Zd ZeZdS )ÚAT_ENUM_ARRAYN)r   r   r   r5   Úitemr   r   r   r   r7   f   s    r7   c                   @   r0   )ÚLPAT_ENUM_ARRAYr2   N)r   r   r   r7   r3   r   r   r   r   r9   i   r4   r9   c                   @   ó   e Zd ZdefdeffZdS )ÚAT_ENUM_CONTAINERÚEntriesReadÚBufferN)r   r   r   r   r9   r/   r   r   r   r   r;   o   ó    þr;   c                   @   ó    e Zd ZdZdefdeffZdS )Ú
NetrJobAddr   Ú
ServerNameÚpAtInfoN)r   r   r   ÚopnumÚATSVC_HANDLEr(   r/   r   r   r   r   r@   y   ó
    þr@   c                   @   r:   )ÚNetrJobAddResponseÚpJobIdÚ	ErrorCodeN)r   r   r   r   r	   r/   r   r   r   r   rF   €   r>   rF   c                   @   s&   e Zd ZdZdefdefdeffZdS )Ú
NetrJobDelr   rA   ÚMinJobIdÚMaxJobIdN©r   r   r   rC   rD   r   r/   r   r   r   r   rI   ‡   s    ýrI   c                   @   r0   )ÚNetrJobDelResponserH   N)r   r   r   r	   r/   r   r   r   r   rM   �   r4   rM   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚNetrJobEnumr"   rA   ÚpEnumContainerÚPreferedMaximumLengthÚpResumeHandleN)	r   r   r   rC   rD   r;   r   r
   r/   r   r   r   r   rN   •   s    ürN   c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚNetrJobEnumResponserO   ÚpTotalEntriesrQ   rH   N)r   r   r   r;   r   r
   r	   r/   r   r   r   r   rR   ž   s    ürR   c                   @   r?   )ÚNetrJobGetInfoé   rA   r6   NrL   r   r   r   r   rT   §   rE   rT   c                   @   r:   )ÚNetrJobGetInfoResponseÚppAtInforH   N)r   r   r   r1   r	   r/   r   r   r   r   rV   ®   r>   rV   )r   r   r"   rU   c                 C   ó    t ƒ }||d< ||d< |  |¡S )NrA   rB   )r@   Úrequest)ÚdceÚ
serverNameÚatInfoÚ
netrJobAddr   r   r   ÚhNetrJobAddÁ   ó   
r^   c                 C   s(   t ƒ }||d< ||d< ||d< |  |¡S )NrA   rJ   rK   )rI   rY   )rZ   r[   ÚminJobIdÚmaxJobIdÚ
netrJobDelr   r   r   ÚhNetrJobDelÇ   s
   
rc   l   ÿÿ c                 C   s,   t ƒ }||d< ||d d< ||d< |  |¡S )NrA   rO   r=   rP   )rN   rY   )rZ   r[   rO   ÚpreferedMaximumLengthÚnetrJobEnumr   r   r   ÚhNetrJobEnumÎ   s
   
rf   c                 C   rX   )NrA   r6   )rT   rY   )rZ   r[   ÚjobIdÚnetrJobGetInfor   r   r   ÚhNetrJobGetInfoÕ   r_   ri   N)9Úimpacket.dcerpc.v5.ndrr   r   r   r   Úimpacket.dcerpc.v5.dtypesr   r   r   r	   r
   r   Úimpacketr   Úimpacket.uuidr   Úimpacket.dcerpc.v5.rpcrtr   ÚMSRPC_UUID_ATSVCr   rD   ÚCNLENÚDNLENÚUNLENÚMAX_BUFFER_SIZEÚTASK_FLAG_INTERACTIVEÚTASK_FLAG_DELETE_WHEN_DONEÚTASK_FLAG_DISABLEDÚTASK_FLAG_START_ONLY_IF_IDLEÚTASK_FLAG_KILL_ON_IDLE_ENDÚ$TASK_FLAG_DONT_START_IF_ON_BATTERIESÚ$TASK_FLAG_KILL_IF_GOING_ON_BATTERIESÚTASK_FLAG_RUN_ONLY_IF_DOCKEDÚTASK_FLAG_HIDDENÚ&TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNETÚ TASK_FLAG_RESTART_ON_IDLE_RESUMEÚTASK_FLAG_SYSTEM_REQUIREDÚTASK_FLAG_RUN_ONLY_IF_LOGGED_ONr(   r1   r5   r7   r9   r;   r@   rF   rI   rM   rN   rR   rT   rV   ÚOPNUMSr^   rc   rf   ri   r   r   r   r   Ú<module>   s`    	

		
ü
