o
    jԡ                     @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZ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 d dlmZ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(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:d Z;dZ<dZ=dZ>dZ?dZ:d Z@dZAdZBdZCdZ:dZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmd ZndZodZpdZqd ZrdZsdZtd ZudZvdZwdZxdZydZzdZ{dZ|dZ}dZ~dZdZd Zd!ZdZdZdZdZdZdZdZdZd"Zd#Zd$Zd%Zd&Zd'Zd(Zd)ZdZdZG d*d+ d+eZG d,d- d-eZeZG d.d/ d/eZG d0d1 d1eZG d2d3 d3eZG d4d5 d5eZeZeZG d6d7 d7eZeZG d8d9 d9eZG d:d; d;eZeZeZG d<d= d=eZG d>d? d?eZG d@dA dAeZG dBdC dCeZG dDdE dEeZG dFdG dGeZG dHdI dIeZG dJdK dKeZG dLdM dMeZG dNdO dOeZG dPdQ dQeZG dRdS dSeZG dTdU dUeZG dVdW dWeZG dXdY dYeZG dZd[ d[eZG d\d] d]eZG d^d_ d_eZG d`da daeZG dbdc dceZG ddde deeZG dfdg dgeZG dhdi dieZG djdk dkeZG dldm dmeZG dndo doeZG dpdq dqeZG drds dseZG dtdu dueZG dvdw dweZG dxdy dyeZG dzd{ d{eZG d|d} d}eZG d~d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG ddÄ deZG ddń deZG ddǄ deZG ddɄ deZG dd˄ deZG dd̈́ deZG ddτ deZG ddф deZG ddӄ deZG ddՄ deZG ddׄ deZG ddل deZG ddۄ deZG dd݄ deZG dd߄ deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd deZG dd deZG dd deZG dd deZG dd de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i d eefdeefdeefdeefdeefdeefdeefdeefdeefdeefdeefdeefd eefd!eefd"eefdeefd#eefeefeefeefeefee feefeefeefeefe	e
feefeefeefeefeefd$Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. ZdVd/d0Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z e:e:e:eeeed eed efd;d<Z!e$e7e=e@eeeed eed fd=d>Z"d?d@ Z#e7e5B e6B e8B e9B eOfdAdBZ$dCdDe+e,B e%B e)B e*B e&B e1B fdEdFZ%e$fdGdHZ&dIdJ Z'dKdL Z(d efdMdNZ)dOdP Z*dQdR Z+eefdSdTZ,dUS (W      )NULLDWORDLPWSTRULONGBOOLLPBYTE	ULONGLONGPGUIDUSHORTLPDWORDWSTRGUIDPBOOLWIDESTR)NDRCALLNDR	NDRSTRUCT
NDRPOINTERNDRPOINTERNULLNDRUniConformantArrayNDRUNION)DCERPCException)uuidtup_to_bin)system_errors)redrr)SMBException)z$367ABB81-9844-35F1-AD32-98F038001003z2.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/aiosmb/dcerpc/v5/scmr.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'SCMR SessionError: code: 0x%x - %s - %sz+SCMR 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          @   r%                i   l             	   
      i   i   i    i   @i   z$1ce20aba-9851-4421-9430-1ddeb766e809z$ddaf516e-58c2-4866-9574-c3b615d42ea1z$b7569e07-8421-4ee0-ad10-86915afdad09z$a144ed38-8e12-4de4-9d96-e64740b1a524z$659FCAE6-5BDB-4DA9-B1FF-CA2A178D46E0z$4f27f2de-14e2-430b-a549-7cd48cbc8245z$cc4ba62a-162e-4648-847a-b6bdf993e335z$54FB46C8-F089-464C-B1FD-59D1B62C3B50c                   @   s   e Zd ZdZdS )
BYTE_ARRAYcN)r+   r,   r-   itemr#   r#   r#   r$   r<          r<   c                   @      e Zd ZdZdd ZdS )SC_RPC_HANDLE)Dataz20s=""c                 C      dS Nr%   r#   r   r#   r#   r$   getAlignment      zSC_RPC_HANDLE.getAlignmentNr+   r,   r-   	structurerG   r#   r#   r#   r$   rA          rA   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fZdS )	SERVICE_STATUSdwServiceTypedwCurrentStatedwControlsAccepteddwWin32ExitCodedwServiceSpecificExitCodedwCheckPoint
dwWaitHintNr+   r,   r-   r   rJ   r#   r#   r#   r$   rL          rL   c                
   @   sF   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d	eff	Zd
S )QUERY_SERVICE_CONFIGWrM   dwStartTypedwErrorControllpBinaryPathNamelpLoadOrderGroupdwTagIdlpDependencieslpServiceStartNamelpDisplayNameNr+   r,   r-   r   r   rJ   r#   r#   r#   r$   rV          rV   c                   @   r@   )SC_RPC_LOCKrB   c                 C   rD   rE   r#   rF   r#   r#   r$   rG      rH   zSC_RPC_LOCK.getAlignmentNrI   r#   r#   r#   r$   ra      rK   ra   c                   @      e Zd ZdeffZdS )LPSERVICE_STATUSrC   N)r+   r,   r-   rL   referentr#   r#   r#   r$   rc          rc   c                   @   rb   )LPBOUNDED_DWORD_256KrC   N)r+   r,   r-   BOUNDED_DWORD_256Krd   r#   r#   r#   r$   rf     re   rf   c                   @   s"   e Zd ZdefdefdeffZdS )ENUM_SERVICE_STATUSWlpServiceNamer^   ServiceStatusN)r+   r,   r-   r   rL   rJ   r#   r#   r#   r$   rh     
    rh   c                   @   rb   )LPQUERY_SERVICE_CONFIGWrC   N)r+   r,   r-   rV   rd   r#   r#   r#   r$   rl     re   rl   c                   @       e Zd ZdeffZdddZdS )STRING_PTRSWrC   NFc                 C   4   t | d | t| jd _|d ur| | d S d S NrC   )r   r   r   fieldsr>   
fromStringr   dataisNDR64r#   r#   r$   r      
   zSTRING_PTRSW.__init__NFr+   r,   r-   r   rJ   r   r#   r#   r#   r$   rn         rn   c                   @   rb   )UNIQUE_STRING_PTRSWrC   N)r+   r,   r-   rn   rd   r#   r#   r#   r$   rz   &  re   rz   c                   @   s"   e Zd ZdefdefdeffZdS )QUERY_SERVICE_LOCK_STATUSW	fIsLockedlpLockOwnerdwLockDurationNr_   r#   r#   r#   r$   r{   +  rk   r{   c                   @   rb   )SERVICE_DESCRIPTION_WOW64dwDescriptionOffsetNrT   r#   r#   r#   r$   r   2  re   r   c                   @   rb   )SERVICE_DESCRIPTIONWlpDescriptionN)r+   r,   r-   r   rJ   r#   r#   r#   r$   r   7  re   r   c                   @   rb   )LPSERVICE_DESCRIPTIONWrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   <  re   r   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 )SERVICE_FAILURE_ACTIONS_WOW64dwResetPerioddwRebootMsgOffsetdwCommandOffsetcActionsdwsaActionsOffsetNrT   r#   r#   r#   r$   r   A      r   c                   @   s   e Zd ZdefdeffZdS )	SC_ACTIONTypeDelayNrT   r#   r#   r#   r$   r   J      r   c                   @   rm   )
SC_ACTIONSrC   NFc                 C   ro   rp   )r   r   r   rq   r>   rr   rs   r#   r#   r$   r   T  rv   zSC_ACTIONS.__init__rw   rx   r#   r#   r#   r$   r   P  ry   r   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 )SERVICE_FAILURE_ACTIONSWr   lpRebootMsg	lpCommandr   lpsaActionsN)r+   r,   r-   r   r   r   rJ   r#   r#   r#   r$   r   Z  r   r   c                   @   rb   )LPSERVICE_FAILURE_ACTIONSWrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   c  re   r   c                   @   rb   )SERVICE_FAILURE_ACTIONS_FLAG!fFailureActionsOnNonCrashFailuresNr+   r,   r-   r   rJ   r#   r#   r#   r$   r   h  re   r   c                   @   rb   )LPSERVICE_FAILURE_ACTIONS_FLAGrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   m  re   r   c                   @   rb   )SERVICE_DELAYED_AUTO_START_INFOfDelayedAutostartNr   r#   r#   r#   r$   r   r  re   r   c                   @   rb   )!LPSERVICE_DELAYED_AUTO_START_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   w  re   r   c                   @   rb   )SERVICE_SID_INFOdwServiceSidTypeNrT   r#   r#   r#   r$   r   |  re   r   c                   @   rb   )LPSERVICE_SID_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                   @   s&   e Zd ZdefdeffZdddZdS )$SERVICE_RPC_REQUIRED_PRIVILEGES_INFOcbRequiredPrivilegespRequiredPrivilegesr   c                 C   s   t | d | d< tj| ddS )Nr   r   r   )soFarlenr   getDatar   r   r#   r#   r$   r     s   z,SERVICE_RPC_REQUIRED_PRIVILEGES_INFO.getDataNr   r+   r,   r-   r   r   rJ   r   r#   r#   r#   r$   r     s
    r   c                   @   rb   )&LPSERVICE_RPC_REQUIRED_PRIVILEGES_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                   @   rb   )&SERVICE_REQUIRED_PRIVILEGES_INFO_WOW64dwRequiredPrivilegesOffsetNrT   r#   r#   r#   r$   r     re   r   c                   @   rb   )SERVICE_PRESHUTDOWN_INFOdwPreshutdownTimeoutNrT   r#   r#   r#   r$   r     re   r   c                   @   rb   )LPSERVICE_PRESHUTDOWN_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                
   @   sF   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d	eff	Zd
S )SERVICE_STATUS_PROCESSrM   rN   rO   rP   rQ   rR   rS   dwProcessIddwServiceFlagsNrT   r#   r#   r#   r$   r     r`   r   c                   @   r@   )UCHAR_16))rC   z16s=""c                 C   rD   rE   r#   rF   r#   r#   r$   rG     rH   zUCHAR_16.getAlignmentNrI   r#   r#   r#   r$   r     rK   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fZdS )	%SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1ullThreadIddwNotifyMaskCallbackAddressArrayCallbackParamAddressArrayrj   dwNotificationStatus
dwSequenceN)r+   r,   r-   r   r   r   r   rJ   r#   r#   r#   r$   r     rU   r   c                
   @   sF   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d	eff	Zd
S )%SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2r   r   r   r   rj   r   r   dwNotificationTriggeredpszServiceNamesN)	r+   r,   r-   r   r   r   r   r   rJ   r#   r#   r#   r$   r     r`   r   c                   @   rb   )&PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1rC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                   @   rb   )&PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2rC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                   @   s   e Zd ZdefdefdZdS )SC_RPC_NOTIFY_PARAMSpStatusChangeParam1pStatusChangeParams)r%   r.   N)r+   r,   r-   r   r   unionr#   r#   r#   r$   r     s    
r   c                   @      e Zd ZeZdS )SC_RPC_NOTIFY_PARAMS_ARRAYN)r+   r,   r-   r   r>   r#   r#   r#   r$   r     r?   r   c                   @      e Zd ZdefdeffZdS )PSC_RPC_NOTIFY_PARAMS_LIST	cElementsNotifyParamsArrayN)r+   r,   r-   BOUNDED_DWORD_4Kr   rJ   r#   r#   r#   r$   r     r   r   c                   @   r   )(SERVICE_CONTROL_STATUS_REASON_IN_PARAMSWdwReason
pszCommentNr_   r#   r#   r#   r$   r     r   r   c                   @   s,   e Zd ZdefdefdeffZdddZdS )	"SERVICE_TRIGGER_SPECIFIC_DATA_ITEM
dwDataTypecbDatapDatar   c                 C   (   | d dkrt | d | d< t| |S )Nr   r   r   r   r   r#   r#   r$   r        z*SERVICE_TRIGGER_SPECIFIC_DATA_ITEM.getDataNr   r   r#   r#   r#   r$   r         r   c                   @   r   )(SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_ARRAYN)r+   r,   r-   r   r>   r#   r#   r#   r$   r     r?   r   c                   @   rb   )#PSERVICE_TRIGGER_SPECIFIC_DATA_ITEMrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                   @   s8   e Zd ZdefdefdefdefdeffZd
ddZd	S )SERVICE_TRIGGERdwTriggerTypedwActionpTriggerSubtype
cDataItems
pDataItemsr   c                 C   r   )Nr   r   r   r   r   r#   r#   r$   r     r   zSERVICE_TRIGGER.getDataNr   )r+   r,   r-   r   r	   r   rJ   r   r#   r#   r#   r$   r     s    r   c                   @   r   )SERVICE_TRIGGER_ARRAYN)r+   r,   r-   r   r>   r#   r#   r#   r$   r     r?   r   c                   @   rb   )PSERVICE_TRIGGERrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r     re   r   c                   @   rb   )(SERVICE_CONTROL_STATUS_REASON_OUT_PARAMSrj   N)r+   r,   r-   r   rJ   r#   r#   r#   r$   r     re   r   c                   @   s,   e Zd ZdefdefdeffZdddZdS )	SERVICE_TRIGGER_INFO	cTriggers	pTriggers	pReservedr   c                 C   r   )Nr   r   r   r   r   r#   r#   r$   r   #  r   zSERVICE_TRIGGER_INFO.getDataNr   )r+   r,   r-   r   r   r   rJ   r   r#   r#   r#   r$   r     r   r   c                   @   rb   )PSERVICE_TRIGGER_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   (  re   r   c                   @   r   )SERVICE_PREFERRED_NODE_INFOusPreferredNodefDeleteN)r+   r,   r-   r
   r   rJ   r#   r#   r#   r$   r   -  r   r   c                   @   rb   )LPSERVICE_PREFERRED_NODE_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   3  re   r   c                   @   rb   )SERVICE_RUNLEVEL_INFOeLowestRunLevelNrT   r#   r#   r#   r$   r   8  re   r   c                   @   rb   )PSERVICE_RUNLEVEL_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   =  re   r   c                   @   rb   )SERVICE_MANAGEDACCOUNT_INFOfIsManagedAccountNrT   r#   r#   r#   r$   r   B  re   r   c                   @   rb   )PSERVICE_MANAGEDACCOUNT_INFOrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   r   G  re   r   c                   @   s^   e Zd Zdeff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d
efdefdefdZdS )SC_RPC_CONFIG_INFOW_UNIONtagpsdpsfapsdapsfafpssidpsrppspspstipspnpsripsma)r%   r.   r6   r2   r;   r7   r8   r/   r9   r:      N)r+   r,   r-   r   	commonHdrr   r   r   r   r   r   r   r   r   r   r   r   r#   r#   r#   r$   r   L  s    
r   c                   @   r   )SC_RPC_CONFIG_INFOWdwInfoLevelUnionN)r+   r,   r-   r   r   rJ   r#   r#   r#   r$   r   _  r   r   c                   @      e Zd ZdZdeffZdS )RCloseServiceHandler   	hSCObjectNr+   r,   r-   opnumrA   rJ   r#   r#   r#   r$   r  i      r  c                   @   r   )RCloseServiceHandleResponser  	ErrorCodeNr+   r,   r-   rA   r   rJ   r#   r#   r#   r$   r  o  r   r  c                   @       e Zd ZdZdefdeffZdS )RControlServicer%   hService	dwControlNr+   r,   r-   r  rA   r   rJ   r#   r#   r#   r$   r
  u  
    r
  c                   @   r   )RControlServiceResponselpServiceStatusr  Nr+   r,   r-   rL   r   rJ   r#   r#   r#   r$   r  |  r   r  c                   @   r   )RDeleteServicer.   r  Nr  r#   r#   r#   r$   r    r  r  c                   @   rb   )RDeleteServiceResponser  NrT   r#   r#   r#   r$   r    re   r  c                   @   r   )RLockServiceDatabaser6   
hSCManagerNr  r#   r#   r#   r$   r    r  r  c                   @   r   )RLockServiceDatabaseResponselpLockr  Nr+   r,   r-   ra   r   rJ   r#   r#   r#   r$   r    r   r  c                   @   &   e Zd ZdZdefdefdeffZdS )RQueryServiceObjectSecurityr2   r  dwSecurityInformation	cbBufSizeN)r+   r,   r-   r  rA   SECURITY_INFORMATIONr   rJ   r#   r#   r#   r$   r        r  c                   @   "   e Zd ZdefdefdeffZdS )#RQueryServiceObjectSecurityResponselpSecurityDescriptorpcbBytesNeededr  N)r+   r,   r-   r<   rg   r   rJ   r#   r#   r#   r$   r     rk   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 )RSetServiceObjectSecurityr;   r  r  r!  r  N)	r+   r,   r-   r  rA   r  r   r   rJ   r#   r#   r#   r$   r#        r#  c                   @   rb   )!RSetServiceObjectSecurityResponser  NrT   r#   r#   r#   r$   r%    re   r%  c                   @   r   )RQueryServiceStatusr7   r  Nr  r#   r#   r#   r$   r&    r  r&  c                   @   r   )RQueryServiceStatusResponser  r  Nr  r#   r#   r#   r$   r'    r   r'  c                   @   r	  )RSetServiceStatusr8   hServiceStatusr  N)r+   r,   r-   r  rA   rL   rJ   r#   r#   r#   r$   r(    r  r(  c                   @   rb   )RSetServiceStatusResponser  NrT   r#   r#   r#   r$   r*    re   r*  c                   @   r   )RUnlockServiceDatabaser/   LockN)r+   r,   r-   r  ra   rJ   r#   r#   r#   r$   r+    r  r+  c                   @   r   )RUnlockServiceDatabaseResponser,  r  Nr  r#   r#   r#   r$   r-    r   r-  c                   @   r	  )RNotifyBootConfigStatusr9   lpMachineNameBootAcceptableN)r+   r,   r-   r  SVCCTL_HANDLEWr   rJ   r#   r#   r#   r$   r.    r  r.  c                   @   rb   )RNotifyBootConfigStatusResponser  NrT   r#   r#   r#   r$   r2    re   r2  c                   @   sb   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d
efdefdefdefdeffZ	dS )RChangeServiceConfigWr   r  rM   rW   rX   rY   rZ   	lpdwTagIdr\   dwDependSizer]   
lpPassworddwPwSizer^   N)
r+   r,   r-   r  rA   r   r   r   r   rJ   r#   r#   r#   r$   r3    s     r3  c                   @   r   )RChangeServiceConfigWResponser4  r  N)r+   r,   r-   r   r   rJ   r#   r#   r#   r$   r8    r   r8  c                   @   n   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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 )RCreateServiceW   r  ri   r^   dwDesiredAccessrM   rW   rX   rY   rZ   r4  r\   r5  r]   r6  r7  Nr+   r,   r-   r  rA   r   r   r   r   r   rJ   r#   r#   r#   r$   r:    $    r:  c                   @   r  )RCreateServiceWResponser4  lpServiceHandler  Nr+   r,   r-   r   rA   r   rJ   r#   r#   r#   r$   r?    rk   r?  c                   @   &   e Zd ZdZdefdefdeffZdS )REnumDependentServicesW   r  dwServiceStater  Nr  r#   r#   r#   r$   rC    r  rC  c                   @   s(   e Zd ZdefdefdefdeffZdS )REnumDependentServicesWResponse
lpServicesr"  lpServicesReturnedr  Nr+   r,   r-   r   rg   r   rJ   r#   r#   r#   r$   rF  !      rF  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 )REnumServicesStatusW   r  rM   rE  r  lpResumeIndexN)r+   r,   r-   r  rA   r   rf   rJ   r#   r#   r#   r$   rK  )  s    rK  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 )REnumServicesStatusWResponselpBufferr"  rH  rM  r  N)r+   r,   r-   r   rg   rf   r   rJ   r#   r#   r#   r$   rN  3  r   rN  c                   @   r  )ROpenSCManagerW   r/  lpDatabaseNamer<  N)r+   r,   r-   r  r1  r   r   rJ   r#   r#   r#   r$   rP  <  r  rP  c                   @   r   )ROpenSCManagerWResponse
lpScHandler  Nr  r#   r#   r#   r$   rS  D  r   rS  c                   @   r  )ROpenServiceWr3   r  ri   r<  Nr+   r,   r-   r  rA   r   r   rJ   r#   r#   r#   r$   rU  J  r  rU  c                   @   r   )ROpenServiceWResponser@  r  Nr  r#   r#   r#   r$   rW  R  r   rW  c                   @   r	  )RQueryServiceConfigW   r  r  Nr  r#   r#   r#   r$   rX  X  r  rX  c                   @   r  )RQueryServiceConfigWResponselpServiceConfigr"  r  N)r+   r,   r-   rV   BOUNDED_DWORD_8Kr   rJ   r#   r#   r#   r$   rZ  _  rk   rZ  c                   @   r	  )RQueryServiceLockStatusW   r  r  Nr  r#   r#   r#   r$   r]  f  r  r]  c                   @   r  ) RQueryServiceLockStatusWResponselpLockStatusr"  r  N)r+   r,   r-   r{   r   r   rJ   r#   r#   r#   r$   r_  m  rk   r_  c                   @   r  )RStartServiceW   r  argcargvN)r+   r,   r-   r  rA   r   rz   rJ   r#   r#   r#   r$   ra  t  r  ra  c                   @   rb   )RStartServiceWResponser  NrT   r#   r#   r#   r$   re  |  re   re  c                   @   r  )RGetServiceDisplayNameW   r  ri   lpcchBufferNrV  r#   r#   r#   r$   rf    r  rf  c                   @   "   e Zd ZdefdefdeffZdS )RGetServiceDisplayNameWResponser^   rh  r  Nr+   r,   r-   r   r   rJ   r#   r#   r#   r$   rj    rk   rj  c                   @   r  )RGetServiceKeyNameW   r  r^   rh  NrV  r#   r#   r#   r$   rl    r  rl  c                   @   ri  )RGetServiceKeyNameWResponser^   rh  r  Nrk  r#   r#   r#   r$   rn    rk   rn  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 )	REnumServiceGroupW#   r  rM   rE  r  rM  pszGroupNameN	r+   r,   r-   r  rA   r   rf   r   rJ   r#   r#   r#   r$   ro    s    ro  c                   @   .   e Zd ZdefdefdefdefdeffZdS )REnumServiceGroupWResponserO  r"  rH  rM  r  N)r+   r,   r-   r   rg   r   rJ   r#   r#   r#   r$   rt    r   rt  c                   @   r	  )RChangeServiceConfig2W%   r  InfoN)r+   r,   r-   r  rA   r   rJ   r#   r#   r#   r$   ru    r  ru  c                   @   rb   )RChangeServiceConfig2WResponser  NrT   r#   r#   r#   r$   rx    re   rx  c                   @   rB  )RQueryServiceConfig2W'   r  r   r  Nr  r#   r#   r#   r$   ry    r  ry  c                   @   r  )RQueryServiceConfig2WResponserO  r"  r  Nr+   r,   r-   r   r\  r   rJ   r#   r#   r#   r$   r{    rk   r{  c                   @   rB  )RQueryServiceStatusEx(   r  	InfoLevelr  Nr  r#   r#   r#   r$   r}    r  r}  c                   @   r  )RQueryServiceStatusExResponserO  r"  r  Nr|  r#   r#   r#   r$   r    rk   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 )
REnumServicesStatusExW*   r  r  rM   rE  r  rM  rq  Nrr  r#   r#   r#   r$   r    s    r  c                   @   rs  )REnumServicesStatusExWResponserO  r"  rH  rM  r  NrI  r#   r#   r#   r$   r    r   r  c                   @   r9  )RCreateServiceWOW64W-   r  ri   r^   r<  rM   rW   rX   rY   rZ   r4  r\   r5  r]   r6  r7  Nr=  r#   r#   r#   r$   r    r>  r  c                   @   r  )RCreateServiceWOW64WResponser4  r@  r  NrA  r#   r#   r#   r$   r    rk   r  c                   @   r  )RNotifyServiceStatusChange/   r  NotifyParamspClientProcessGuidN)r+   r,   r-   r  rA   r   r   rJ   r#   r#   r#   r$   r    r  r  c                   @   s(   e Zd ZdefdefdefdeffZdS )"RNotifyServiceStatusChangeResponsepSCMProcessGuidpfCreateRemoteQueuephNotifyr  N)r+   r,   r-   r   r   SC_NOTIFY_RPC_HANDLEr   rJ   r#   r#   r#   r$   r    rJ  r  c                   @   r   )RGetNotifyResults0   hNotifyNr+   r,   r-   r  r  rJ   r#   r#   r#   r$   r    r  r  c                   @   r   )RGetNotifyResultsResponseppNotifyParamsr  N)r+   r,   r-   r   r   rJ   r#   r#   r#   r$   r  %  r   r  c                   @   r   )RCloseNotifyHandle1   r  Nr  r#   r#   r#   r$   r  ,  r  r  c                   @   r  )RCloseNotifyHandleResponser  
pfApcFiredr  N)r+   r,   r-   r  r   r   rJ   r#   r#   r#   r$   r  2  rk   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 )RControlServiceExW3   r  r  r   pControlInParamsN)r+   r,   r-   r  rA   r   r   rJ   r#   r#   r#   r$   r  :  r$  r  c                   @   r   )RControlServiceExWResponsepControlOutParamsr  N)r+   r,   r-   r   r   rJ   r#   r#   r#   r$   r  C  r   r  c                   @   r	  )RQueryServiceConfigEx8   r  r   Nr  r#   r#   r#   r$   r  I  r  r  c                   @   r   )RQueryServiceConfigExResponsepInfor  N)r+   r,   r-   r   r   rJ   r#   r#   r#   r$   r  P  r   r  r   r;  rD  rL  rQ  rY  )r^  rb  rg  rm  rp  rv  rz  r~  r  r  r  r  r  r  r  c                 C   s(   | t kr| S | dd  dkr| d S | S )N )r   )stringr#   r#   r$   checkNullString  s
   r  c                        t  }||d< | |I d H S )Nr  )r  request)dcer  r  r#   r#   r$   hRCloseServiceHandle     r  c                    (   t  }||d< ||d< | |I d H S )Nr  r  )r
  r  )r  r  r  r  r#   r#   r$   hRControlService  
   r  c                    r  Nr  )r  r  r  r  r  r#   r#   r$   hRDeleteService  r  r  c                    r  )Nr  )r  r  )r  r  r  r#   r#   r$   hRLockServiceDatabase  r  r  c              
      s   t  }||d< ||d< ||d< z| |I d H }W |S  tyI } z"| tjkr=| }|d |d< | |I d H }n W Y d }~|S d }~ww )Nr  r  r  r"  )r  r  r   get_error_coder   ERROR_INSUFFICIENT_BUFFER
get_packet)r  r  r  r  r  resper#   r#   r$   hRQueryServiceObjectSecurity  s$   
r  c                    s0   t  }||d< ||d< ||d< | |I d H S )Nr  r  r  )r#  r  )r  r  r  r!  r  r  r#   r#   r$   hRSetServiceObjectSecurity     r  c                    r  r  )r&  r  r  r#   r#   r$   hRQueryServiceStatus  r  r  c                    r  )Nr)  r  )r(  r  )r  r)  r  r  r#   r#   r$   hRSetServiceStatus  r  r  c                    r  )Nr,  )r+  r  )r  r,  r  r#   r#   r$   hRUnlockServiceDatabase  r  r  c                    r  )Nr/  r0  )r.  r  )r  r/  r0  r  r#   r#   r$   hRNotifyBootConfigStatus  r  r  c                    s   t  }||d< ||d< ||d< ||d< t||d< t||d< ||d< ||d< |	|d	< t|
|d
< ||d< ||d< t||d< | |I d H S )Nr  rM   rW   rX   rY   rZ   r4  r\   r5  r]   r6  r7  r^   )r3  r  r  )r  r  rM   rW   rX   rY   rZ   r4  r\   r5  r]   r6  r7  r^   changeServiceConfigr#   r#   r$   hRChangeServiceConfigW  s    r  c                    s   t  }||d< t||d< t||d< ||d< ||d< ||d< ||d< t||d< t|	|d	< |
|d
< ||d< ||d< t||d< ||d< ||d< | |I d H S )Nr  ri   r^   r<  rM   rW   rX   rY   rZ   r4  r\   r5  r]   r6  r7  )r:  r  r  )r  r  ri   r^   r<  rM   rW   rX   rY   rZ   r4  r\   r5  r]   r6  r7  createServicer#   r#   r$   hRCreateServiceW  s$   r  c                    s0   t  }||d< ||d< ||d< | |I d H S )Nr  rE  r  )rC  r  )r  r  rE  r  enumDependentServicesr#   r#   r$   hREnumDependentServicesW  r  r  c              
      s  G dd dt }zt }||d< ||d< ||d< d|d< t|d< | |I d H \}}|d urUt|tr9d |fW S | tjkrT|	 }|d	 |d< | |I d H \}}nd |fW S t
 }||_||d
  d|d }	||	 |	dd  }	|d D ]2}
|
jd jd d }t|	|d  }|d |
d< |
jd jd d }t|	|d  }|d |
d< q}|d d fW S  ty } z
d |fW  Y d }~S d }~ww )Nc                   @   s2   e Zd ZG dd deZdefdefdeffZdS )z4hREnumServicesStatusW.<locals>.ENUM_SERVICE_STATUSW2c                   @   rb   )z8hREnumServicesStatusW.<locals>.ENUM_SERVICE_STATUSW2.STRrC   N)r+   r,   r-   r   rd   r#   r#   r#   r$   STR   re   r  ri   r^   rj   N)r+   r,   r-   r   r  rL   rJ   r#   r#   r#   r$   ENUM_SERVICE_STATUSW2  s    r  r  rM   rE  r   r  rM  r"  rH      rO  r2   rC   r^   
ReferentIDri   )r   rK  r   r  
isinstancer   r  r   ERROR_MORE_DATAr  r   r>   setArraySizejoinrr   rq   r   	Exception)r  r  rM   rE  r  enumServicesStatusr  r  	enumArrayrt   recordoffsetnamer#   r#   r$   hREnumServicesStatusW  sJ   



r  zDUMMY zServicesActive c                    s8   t  }t||d< t||d< ||d< | |I d H S )Nr/  rR  r<  )rP  r  r  )r  r/  rR  r<  openSCManagerr#   r#   r$   hROpenSCManagerW8  s   r  c                    4   t  }||d< t||d< ||d< | |I d H S )Nr  ri   r<  )rU  r  r  )r  r  ri   r<  openServicer#   r#   r$   hROpenServiceW?     r  c              
      s   zHt  }||d< d|d< | |I d H \}}|d urE| tjkr@| }|d |d< | |I d H \}}|d ur?d |fW S nd |fW S |d fW S  ty_ } z
d |fW  Y d }~S d }~ww )Nr  r   r  r"  )rX  r  r  r   r  r  r  )r  r  queryServicer  r  r#   r#   r$   hRQueryServiceConfigWF  s(   


r  c                    r  )Nr  r  )r]  r  )r  r  r  queryServiceLockr#   r#   r$   hRQueryServiceLockStatusW[  r  r  c                    sd   t  }||d< ||d< |dkrt|d< n|D ]}t }t||d< |d | q| |I d H S )Nr  rc  r   rd  rC   )ra  r   r   r  appendr  )r  r  rc  rd  startServicer>   itemnr#   r#   r$   hRStartServiceWa  s   
r  c                    r  )Nr  ri   rh  )rf  r  r  )r  r  ri   rh  getServiceDisplayr#   r#   r$   hRGetServiceDisplayNameWn  r  r  c                    r  )Nr  r^   rh  )rl  r  r  )r  r  r^   rh  getServiceKeyNamer#   r#   r$   hRGetServiceKeyNameWu  r  r  c                    sH   t  }||d< ||d< ||d< ||d< ||d< ||d< | |I d H S )Nr  rM   rE  r  rM  rq  )ro  r  )r  r  rM   rE  r  rM  rq  enumServiceGroupr#   r#   r$   hREnumServiceGroupW|  s   r  Nr   (-  aiosmb.dcerpc.v5.dtypesr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   aiosmb.dcerpc.v5.ndrr   r   r   r   r   r   r   aiosmb.dcerpc.v5.rpcrtr   aiosmb.dcerpc.v5.uuidr   aiosmb.dcerpc.v5r   aiosmb.commons.utils.decoratorsr   r   aiosmb.commons.exceptionsr   MSRPC_UUID_SCMRr   SERVICE_ALL_ACCESSSERVICE_CHANGE_CONFIGSERVICE_ENUMERATE_DEPENDENTSSERVICE_INTERROGATESERVICE_PAUSE_CONTINUESERVICE_QUERY_CONFIGSERVICE_QUERY_STATUSSERVICE_STARTSERVICE_STOPSERVICE_USER_DEFINED_CTRLSERVICE_SET_STATUSSC_MANAGER_LOCKSC_MANAGER_CREATE_SERVICESC_MANAGER_ENUMERATE_SERVICESC_MANAGER_CONNECTSC_MANAGER_QUERY_LOCK_STATUSSC_MANAGER_MODIFY_BOOT_CONFIGSERVICE_KERNEL_DRIVERSERVICE_FILE_SYSTEM_DRIVERSERVICE_WIN32_OWN_PROCESSSERVICE_WIN32_SHARE_PROCESSSERVICE_INTERACTIVE_PROCESSSERVICE_NO_CHANGESERVICE_BOOT_STARTSERVICE_SYSTEM_STARTSERVICE_AUTO_STARTSERVICE_DEMAND_STARTSERVICE_DISABLEDSERVICE_ERROR_IGNORESERVICE_ERROR_NORMALSERVICE_ERROR_SEVERESERVICE_ERROR_CRITICALSERVICE_CONTROL_CONTINUESERVICE_CONTROL_INTERROGATESERVICE_CONTROL_PARAMCHANGESERVICE_CONTROL_PAUSESERVICE_CONTROL_STOPSERVICE_CONTROL_NETBINDADDSERVICE_CONTROL_NETBINDREMOVESERVICE_CONTROL_NETBINDENABLESERVICE_CONTROL_NETBINDDISABLESERVICE_ACTIVESERVICE_INACTIVESERVICE_STATE_ALLSERVICE_CONTINUE_PENDINGSERVICE_PAUSE_PENDINGSERVICE_PAUSEDSERVICE_RUNNINGSERVICE_START_PENDINGSERVICE_STOP_PENDINGSERVICE_STOPPEDSERVICE_ACCEPT_PARAMCHANGESERVICE_ACCEPT_PAUSE_CONTINUESERVICE_ACCEPT_SHUTDOWNSERVICE_ACCEPT_STOP$SERVICE_ACCEPT_HARDWAREPROFILECHANGESERVICE_ACCEPT_POWEREVENTSERVICE_ACCEPT_SESSIONCHANGESERVICE_ACCEPT_PRESHUTDOWNSERVICE_ACCEPT_TIMECHANGEERVICE_ACCEPT_TRIGGEREVENTDACL_SECURITY_INFORMATIONGROUP_SECURITY_INFORMATIONOWNER_SECURITY_INFORMATIONSACL_SECURITY_INFORMATIONSERVICE_CONFIG_DESCRIPTIONSERVICE_CONFIG_FAILURE_ACTIONS&SERVICE_CONFIG_DELAYED_AUTO_START_INFO#SERVICE_CONFIG_FAILURE_ACTIONS_FLAGSERVICE_CONFIG_SERVICE_SID_INFO'SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFOSERVICE_CONFIG_PRESHUTDOWN_INFOSERVICE_CONFIG_PREFERRED_NODESERVICE_CONFIG_RUNLEVEL_INFOSC_ACTION_NONESC_ACTION_RESTARTSC_ACTION_REBOOTSC_ACTION_RUN_COMMANDSERVICE_SID_TYPE_NONESERVICE_SID_TYPE_RESTRICTEDSERVICE_SID_TYPE_UNRESTRICTEDSC_STATUS_PROCESS_INFOSERVICE_NOTIFY_CREATEDSERVICE_NOTIFY_CONTINUE_PENDINGSERVICE_NOTIFY_DELETE_PENDINGSERVICE_NOTIFY_DELETEDSERVICE_NOTIFY_PAUSE_PENDINGSERVICE_NOTIFY_PAUSEDSERVICE_NOTIFY_RUNNINGSERVICE_NOTIFY_START_PENDINGSERVICE_NOTIFY_STOP_PENDINGSERVICE_NOTIFY_STOPPEDSERVICE_STOP_CUSTOMSERVICE_STOP_PLANNEDSERVICE_STOP_UNPLANNED-SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL,SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY SERVICE_TRIGGER_TYPE_DOMAIN_JOIN(SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT!SERVICE_TRIGGER_TYPE_GROUP_POLICYSERVICE_TRIGGER_TYPE_CUSTOM$SERVICE_TRIGGER_ACTION_SERVICE_START#SERVICE_TRIGGER_ACTION_SERVICE_STOPDOMAIN_JOIN_GUIDDOMAIN_LEAVE_GUIDFIREWALL_PORT_OPEN_GUIDFIREWALL_PORT_CLOSE_GUIDMACHINE_POLICY_PRESENT_GUID-NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID,NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUIDUSER_POLICY_PRESENT_GUID SERVICE_TRIGGER_DATA_TYPE_BINARY SERVICE_TRIGGER_DATA_TYPE_STRINGr<   rA   r  rL   rV   ra   rc   r  rg   rf   r1  rh   rl   r\  r   rn   rz   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r  r  r   r#  r%  r&  r'  r(  r*  r+  r-  r.  r2  r3  r8  r:  r?  rC  rF  rK  rN  rP  rS  rU  rW  rX  rZ  r]  r_  ra  re  rf  rj  rl  rn  ro  rt  ru  rx  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  OPNUMSr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#   r#   r#   r$   <module>   s  @$
	
	

	
							
















&	(($2A