o
    jF                     @   s	  d dl 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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 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Z)dZ*d Z+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3d
Z4dZ5dZ6dZ7dZ0dZ8dZ/dZ9G 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ZAG d*d+ d+eZBG d,d- d-eZCG d.d/ d/eZDG d0d1 d1eZEG d2d3 d3eZFG d4d5 d5eZGG d6d7 d7eZHG d8d9 d9eZIG d:d; d;eZJG d<d= d=eZKG d>d? d?eZLG d@dA dAeZMG dBdC dCeZNG dDdE dEeZOG dFdG dGeZPG dHdI dIeZQG dJdK dKeZRG dLdM dMeZSG dNdO dOeZTG dPdQ dQeZUG dRdS dSeZVG dTdU dUeZWG dVdW dWeZXG dXdY dYeZYG dZd[ d[eZZG d\d] d]eZ[G d^d_ d_eZ\G d`da daeZ]G dbdc dceZ^G ddde deeZ_G dfdg dgeZ`G dhdi dieZaG djdk dkeZbG dldm dmeZcG dndo doeZdG dpdq dqeZeG drds dseZfG dtdu dueZgG dvdw dweZhG dxdy dyeZiG dzd{ d{eZje
ZkG d|d} d}eZlG d~d deZmG dd deZnG dd deZoG dd deZpG dd deZqG dd deZrG dd deZsG dd deZtG dd deZuG dd deZvG dd deZwG dd deZxG dd deZyG dd deZzG dd deZ{G dd deZ|G dd deZ}G dd deZ~G dd deZG 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Zi d eefdeefdeefdeefdeefdeefdeefdeefdeefdeefdeefdeefdeefd eefdeefdeefdeefeefeefeefdZdd Zdd Zd.d	d
Zd/ddZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd/d'd(Zd)d* Ze-fd+d,Zd-S (0      )NDRCALL	NDRSTRUCTNDRENUMNDRUNIONNDRUniConformantArrayNDRUniFixedArray
NDRPOINTER)
NULLWSTRULONGLPWSTRLONGLARGE_INTEGERWIDESTRRPC_UNICODE_STRINGLPULONGLPLONG)system_errors)uuidtup_to_bin)Enum)DCERPCException)z$6BFFD098-A112-3610-9833-46C3F87E345Az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/wkst.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'WKST SessionError: code: 0x%x - %s - %sz+WKST 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                   @      e Zd ZdeffZdS )WKSSVC_IDENTIFY_HANDLEDataNr&   r'   r(   r
   	structurer   r   r   r   r4   o       r4   c                   @   r3   )LPWKSSVC_IDENTIFY_HANDLEr5   N)r&   r'   r(   r4   referentr   r   r   r   r9   t   r8   r9   c                   @   r3   )WKSSVC_IMPERSONATE_HANDLEr5   Nr6   r   r   r   r   r;   z   r8   r;   c                   @   r3   )LPWKSSVC_IMPERSONATE_HANDLEr5   N)r&   r'   r(   r;   r:   r   r   r   r   r<      r8   r<   c                   @      e Zd ZG dd deZdS )NETSETUP_JOIN_STATUSc                   @      e Zd ZdZdZdZdZdS )zNETSETUP_JOIN_STATUS.enumItemsr   r    r,   r-   N)r&   r'   r(   NetSetupUnknownStatusNetSetupUnjoinedNetSetupWorkgroupNameNetSetupDomainNamer   r   r   r   	enumItems   
    rD   Nr&   r'   r(   r   rD   r   r   r   r   r>          r>   c                   @   r=   )NETSETUP_NAME_TYPEc                   @   s$   e Zd ZdZdZdZdZdZdZdS )zNETSETUP_NAME_TYPE.enumItemsr   r    r,   r-   r.   r/   N)	r&   r'   r(   NetSetupUnknownNetSetupMachineNetSetupWorkgroupNetSetupDomainNetSetupNonExistentDomainNetSetupDnsMachiner   r   r   r   rD      s    rD   NrF   r   r   r   r   rH      rG   rH   c                   @   r=   )NET_COMPUTER_NAME_TYPEc                   @   r?   )z NET_COMPUTER_NAME_TYPE.enumItemsr   r    r,   r-   N)r&   r'   r(   NetPrimaryComputerNameNetAlternateComputerNamesNetAllComputerNamesNetComputerNameTypeMaxr   r   r   r   rD      rE   rD   NrF   r   r   r   r   rO      rG   rO   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 )WKSTA_INFO_100wki100_platform_idwki100_computernamewki100_langroupwki100_ver_majorwki100_ver_minorNr&   r'   r(   r   r   r7   r   r   r   r   rT          rT   c                   @   r3   )LPWKSTA_INFO_100r5   N)r&   r'   r(   rT   r:   r   r   r   r   r\      r8   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 )WKSTA_INFO_101wki101_platform_idwki101_computernamewki101_langroupwki101_ver_majorwki101_ver_minorwki101_lanrootNrZ   r   r   r   r   r]      s    r]   c                   @   r3   )LPWKSTA_INFO_101r5   N)r&   r'   r(   r]   r:   r   r   r   r   rd      r8   rd   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 )	WKSTA_INFO_102wki102_platform_idwki102_computernamewki102_langroupwki102_ver_majorwki102_ver_minorwki102_lanrootwki102_logged_on_usersNrZ   r   r   r   r   re          re   c                   @   r3   )LPWKSTA_INFO_102r5   N)r&   r'   r(   re   r:   r   r   r   r   rn      r8   rn   c                   @   s*  e Zd Zg 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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defd efd!efd"efd#efR Zd$S )%WKSTA_INFO_502wki502_char_waitwki502_collection_timewki502_maximum_collection_countwki502_keep_connwki502_max_cmdswki502_sess_timeoutwki502_siz_char_bufwki502_max_threadswki502_lock_quotawki502_lock_incrementwki502_lock_maximumwki502_pipe_incrementwki502_pipe_maximumwki502_cache_file_timeoutwki502_dormant_file_limitwki502_read_ahead_throughputwki502_num_mailslot_bufferswki502_num_srv_announce_buffers"wki502_max_illegal_datagram_events-wki502_illegal_datagram_event_reset_frequencywki502_log_election_packets wki502_use_opportunistic_lockingwki502_use_unlock_behindwki502_use_close_behindwki502_buf_named_pipeswki502_use_lock_read_unlockwki502_utilize_nt_cachingwki502_use_raw_readwki502_use_raw_writewki502_use_write_raw_datawki502_use_encryptionwki502_buf_files_deny_writewki502_buf_read_only_fileswki502_force_core_create_mode wki502_use_512_byte_max_transferN)r&   r'   r(   r   r   r7   r   r   r   r   ro      s    	
 !"#
ro   c                   @   r3   )LPWKSTA_INFO_502r5   N)r&   r'   r(   ro   r:   r   r   r   r   r      r8   r   c                   @   r3   )WKSTA_INFO_1013wki1013_keep_connNr&   r'   r(   r   r7   r   r   r   r   r      r8   r   c                   @   r3   )LPWKSTA_INFO_1013r5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   r3   )WKSTA_INFO_1018wki1018_sess_timeoutNr   r   r   r   r   r     r8   r   c                   @   r3   )LPWKSTA_INFO_1018r5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   r3   )WKSTA_INFO_1046wki1046_dormant_file_limitNr   r   r   r   r   r     r8   r   c                   @   r3   )LPWKSTA_INFO_1046r5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   sF   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	Zd
S )
WKSTA_INFOtagWkstaInfo100WkstaInfo101WkstaInfo102WkstaInfo502WkstaInfo1013WkstaInfo1018WkstaInfo1046)d   e   f   i  i  i  i  N)r&   r'   r(   r   	commonHdrr\   rd   rn   r   r   r   r   unionr   r   r   r   r     s    
r   c                   @   r3   )LPWKSTA_INFOr5   N)r&   r'   r(   r   r:   r   r   r   r   r   +  r8   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 )WKSTA_TRANSPORT_INFO_0wkti0_quality_of_servicewkti0_number_of_vcswkti0_transport_namewkti0_transport_addresswkti0_wan_ishNrZ   r   r   r   r   r   1  r[   r   c                   @   r3   )WKSTA_USER_INFO_0wkui0_usernameNr&   r'   r(   r   r7   r   r   r   r   r   ;  r8   r   c                   @   s(   e Zd ZdefdefdefdeffZdS )WKSTA_USER_INFO_1wkui1_usernamewkui1_logon_domainwkui1_oth_domainswkui1_logon_serverNr   r   r   r   r   r   A      r   c                   @   sR  e Zd Zg 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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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R Zd)S )*STAT_WORKSTATION_0StatisticsStartTimeBytesReceivedSmbsReceivedPagingReadBytesRequestedNonPagingReadBytesRequestedCacheReadBytesRequestedNetworkReadBytesRequestedBytesTransmittedSmbsTransmittedPagingWriteBytesRequestedNonPagingWriteBytesRequestedCacheWriteBytesRequestedNetworkWriteBytesRequestedInitiallyFailedOperationsFailedCompletionOperationsReadOperationsRandomReadOperationsReadSmbsLargeReadSmbsSmallReadSmbsWriteOperationsRandomWriteOperations	WriteSmbsLargeWriteSmbsSmallWriteSmbsRawReadsDeniedRawWritesDeniedNetworkErrorsSessionsFailedSessions
ReconnectsCoreConnectsLanman20ConnectsLanman21ConnectsLanmanNtConnectsServerDisconnectsHungSessionsUseCountFailedUseCountCurrentCommandsN)r&   r'   r(   r   r   r7   r   r   r   r   r   J  s    	
 !"#$%&'(
r   c                   @   r3   )LPSTAT_WORKSTATION_0r5   N)r&   r'   r(   r   r:   r   r   r   r   r   v  r8   r   c                   @      e Zd ZeZdS )WKSTA_USER_INFO_0_ARRAYN)r&   r'   r(   r   itemr   r   r   r   r   |      r   c                   @   r3   )LPWKSTA_USER_INFO_0_ARRAYr5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @      e Zd ZdefdeffZdS )WKSTA_USER_INFO_0_CONTAINEREntriesReadBufferN)r&   r'   r(   r   r   r7   r   r   r   r   r         r   c                   @   r3   )LPWKSTA_USER_INFO_0_CONTAINERr5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   r   )WKSTA_USER_INFO_1_ARRAYN)r&   r'   r(   r   r   r   r   r   r   r     r   r   c                   @   r3   )LPWKSTA_USER_INFO_1_ARRAYr5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   r   )WKSTA_USER_INFO_1_CONTAINERr   r   N)r&   r'   r(   r   r   r7   r   r   r   r   r     r   r   c                   @   r3   )LPWKSTA_USER_INFO_1_CONTAINERr5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   s(   e Zd ZdeffZdefdefdZdS )WKSTA_USER_ENUM_UNIONr   Level0Level1)r   r    N)r&   r'   r(   r   r   r   r   r   r   r   r   r   r     s    
r   c                   @   r   )WKSTA_USER_ENUM_STRUCTLevelWkstaUserInfoN)r&   r'   r(   r   r   r7   r   r   r   r   r     r   r   c                   @   r   )WKSTA_TRANSPORT_INFO_0_ARRAYN)r&   r'   r(   r   r   r   r   r   r   r     r   r   c                   @   r3   )LPWKSTA_TRANSPORT_INFO_0_ARRAYr5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   r   ) WKSTA_TRANSPORT_INFO_0_CONTAINERr   r   N)r&   r'   r(   r   r   r7   r   r   r   r   r     r   r   c                   @   r3   )"LPWKSTA_TRANSPORT_INFO_0_CONTAINERr5   N)r&   r'   r(   r   r:   r   r   r   r   r     r8   r   c                   @   s"   e Zd ZdeffZddefiZdS )WKSTA_TRANSPORT_ENUM_UNIONr   r   r   N)r&   r'   r(   r   r   r   r   r   r   r   r   r     s
    r   c                   @   r   )WKSTA_TRANSPORT_ENUM_STRUCTr   WkstaTransportInfoN)r&   r'   r(   r   r   r7   r   r   r   r   r     r   r   c                   @      e Zd ZdddZdS )WCHAR_ARRAYr   c                 C      t S r   )JOIN_MAX_PASSWORD_LENGTHr   dataoffsetr   r   r   
getDataLen     zWCHAR_ARRAY.getDataLenNr   r&   r'   r(   r	  r   r   r   r   r        r  c                   @   r  )
CHAR_ARRAYr   c                 C   r  r   )JOIN_OBFUSCATOR_LENGTHr  r   r   r   r	    r
  zCHAR_ARRAY.getDataLenNr  r  r   r   r   r   r    r  r  c                   @   r   )JOINPR_USER_PASSWORD
Obfuscatorr   N)r&   r'   r(   r  r  r7   r   r   r   r   r    r   r  c                   @   s   e Zd ZdZdd ZdS )JOINPR_ENCRYPTED_USER_PASSWORD))r   z524s=b""c                 C   s   dS )Nr    r   )r   r   r   r   getAlignment  r
  z+JOINPR_ENCRYPTED_USER_PASSWORD.getAlignmentN)r&   r'   r(   r7   r  r   r   r   r   r    s    r  c                   @   r3   )PJOINPR_ENCRYPTED_USER_PASSWORDr5   N)r&   r'   r(   r  r:   r   r   r   r   r    r8   r  c                   @   r3   )PUNICODE_STRINGr5   N)r&   r'   r(   UNICODE_STRINGr:   r   r   r   r   r    r8   r  c                   @   r   )UNICODE_STRING_ARRAYN)r&   r'   r(   r   r   r   r   r   r   r    r   r  c                   @   r3   )PUNICODE_STRING_ARRAYr5   N)r&   r'   r(   r  r:   r   r   r   r   r     r8   r  c                   @   r   )NET_COMPUTER_NAME_ARRAYr   ComputerNamesN)r&   r'   r(   r   r  r7   r   r   r   r   r    r   r  c                   @   r3   )PNET_COMPUTER_NAME_ARRAYr5   N)r&   r'   r(   r  r:   r   r   r   r   r    r8   r  c                   @   s   e Zd ZdefdeffZdS )
USE_INFO_0	ui0_local
ui0_remoteNr   r   r   r   r   r    r   r  c                   @   r3   )LPUSE_INFO_0r5   N)r&   r'   r(   r  r:   r   r   r   r   r    r8   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 )	
USE_INFO_1	ui1_local
ui1_remoteui1_password
ui1_statusui1_asg_typeui1_refcountui1_usecountN)r&   r'   r(   r   r   r7   r   r   r   r   r     rm   r   c                   @   r3   )LPUSE_INFO_1r5   N)r&   r'   r(   r   r:   r   r   r   r   r(  (  r8   r(  c                   @   s"   e Zd ZdefdefdeffZdS )
USE_INFO_2ui2_useinfoui2_usernameui2_domainnameN)r&   r'   r(   r   r   r7   r   r   r   r   r)  .  
    r)  c                   @   r3   )LPUSE_INFO_2r5   N)r&   r'   r(   r)  r:   r   r   r   r   r.  5  r8   r.  c                   @   r   )
USE_INFO_3ui3_ui2	ui3_flagsN)r&   r'   r(   r)  r   r7   r   r   r   r   r/  ;  r   r/  c                   @   r3   )LPUSE_INFO_3r5   N)r&   r'   r(   r/  r:   r   r   r   r   r2  A  r8   r2  c                   @   s4   e Zd ZdeffZdefdefdefdefdZ	dS )USE_INFOr   UseInfo0UseInfo1UseInfo2UseInfo3)r   r    r,   r-   N)
r&   r'   r(   r   r   r  r(  r.  r2  r   r   r   r   r   r3  G  s    
r3  c                   @   r   )USE_INFO_0_CONTAINERr   r   N)r&   r'   r(   r   r  r7   r   r   r   r   r8  T  r   r8  c                   @   r3   )LPUSE_INFO_0_CONTAINERr5   N)r&   r'   r(   r8  r:   r   r   r   r   r9  Z  r8   r9  c                   @   r   )USE_INFO_1_CONTAINERr   r   N)r&   r'   r(   r   r(  r7   r   r   r   r   r:  `  r   r:  c                   @   r3   )LPUSE_INFO_1_CONTAINERr5   N)r&   r'   r(   r:  r:   r   r   r   r   r;  f  r8   r;  c                   @   r   )USE_INFO_2_CONTAINERr   r   N)r&   r'   r(   r   r.  r7   r   r   r   r   r<  l  r   r<  c                   @   r3   )LPUSE_INFO_2_CONTAINERr5   N)r&   r'   r(   r<  r:   r   r   r   r   r=  r  r8   r=  c                   @   s.   e Zd ZdeffZdefdefdefdZdS )USE_ENUM_UNIONr   r   r   Level2)r   r    r,   N)	r&   r'   r(   r   r   r9  r;  r=  r   r   r   r   r   r>  x  s    
r>  c                   @   r   )USE_ENUM_STRUCTr   UseInfoN)r&   r'   r(   r   r>  r7   r   r   r   r   r@    r   r@  c                   @       e Zd ZdZdefdeffZdS )NetrWkstaGetInfor   
ServerNamer   N)r&   r'   r(   opnumr9   r   r7   r   r   r   r   rC    
    rC  c                   @   r   )NetrWkstaGetInfoResponse	WkstaInfo	ErrorCodeN)r&   r'   r(   r   r   r7   r   r   r   r   rG    r   rG  c                   @   ,   e Zd ZdZdefdefdefdeffZdS )NetrWkstaSetInfor    rD  r   rH  ErrorParameterN)	r&   r'   r(   rE  r9   r   r   r   r7   r   r   r   r   rK        rK  c                   @   r   )NetrWkstaSetInfoResponserL  rI  Nr&   r'   r(   r   r   r7   r   r   r   r   rN    r   rN  c                   @   rJ  )NetrWkstaUserEnumr,   rD  UserInfoPreferredMaximumLengthResumeHandleN)	r&   r'   r(   rE  r9   r   r   r   r7   r   r   r   r   rP    rM  rP  c                   @   (   e Zd ZdefdefdefdeffZdS )NetrWkstaUserEnumResponserQ  TotalEntriesrS  rI  N)r&   r'   r(   r   r   r7   r   r   r   r   rU    r   rU  c                   @   rJ  )NetrWkstaTransportEnumr/   rD  TransportInforR  rS  N)	r&   r'   r(   rE  r9   r   r   r   r7   r   r   r   r   rW    rM  rW  c                   @   rT  )NetrWkstaTransportEnumResponserX  rV  rS  rI  N)r&   r'   r(   r   r   r7   r   r   r   r   rY    r   rY  c                   @   rJ  )NetrWkstaTransportAdd   rD  r   rX  rL  N)	r&   r'   r(   rE  r9   r   r   r   r7   r   r   r   r   rZ    rM  rZ  c                   @   r   )NetrWkstaTransportAddResponserL  rI  NrO  r   r   r   r   r\    r   r\  c                   @   rJ  )
NetrUseAddr*   rD  r   
InfoStructrL  N)	r&   r'   r(   rE  r<   r   r3  r   r7   r   r   r   r   r]    rM  r]  c                   @   r   )NetrUseAddResponserL  rI  NrO  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 )NetrUseGetInfo	   rD  UseNamer   Nr&   r'   r(   rE  r<   r
   r   r7   r   r   r   r   ra        ra  c                   @   r   )NetrUseGetInfoResponser^  rI  N)r&   r'   r(   r3  r   r7   r   r   r   r   rf    r   rf  c                   @   r`  )
NetrUseDel
   rD  rc  
ForceLevelNrd  r   r   r   r   rg    re  rg  c                   @   r3   )NetrUseDelResponserI  Nr   r   r   r   r   rj    r8   rj  c                   @   rJ  )NetrUseEnum   rD  r^  rR  rS  N)	r&   r'   r(   rE  r<   r@  r   r   r7   r   r   r   r   rk    rM  rk  c                   @   s(   e Zd ZdefdefdefdeffZdS )NetrUseEnumResponser^  rV  rS  rI  N)r&   r'   r(   r@  r   r   r7   r   r   r   r   rm    r   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 )NetrWorkstationStatisticsGet   rD  ServiceNamer   OptionsN)r&   r'   r(   rE  r9   r   r   r7   r   r   r   r   rn    rM  rn  c                   @   r   )$NetrWorkstationStatisticsGetResponser   rI  N)r&   r'   r(   r   r   r7   r   r   r   r   rr  (  r   rr  c                   @   rB  )NetrGetJoinInformation   rD  
NameBufferN)r&   r'   r(   rE  r<   r   r7   r   r   r   r   rs  /  rF  rs  c                   @   "   e Zd ZdefdefdeffZdS )NetrGetJoinInformationResponseru  
BufferTyperI  N)r&   r'   r(   r   r>   r   r7   r   r   r   r   rw  6  r-  rw  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 )	NetrJoinDomain2   rD  DomainNameParamMachineAccountOUAccountNamePasswordrq  N	r&   r'   r(   rE  r   r
   r  r   r7   r   r   r   r   ry  >  s    ry  c                   @   r3   )NetrJoinDomain2ResponserI  Nr   r   r   r   r   r  I  r8   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 )NetrUnjoinDomain2   rD  r}  r~  rq  Nr&   r'   r(   rE  r   r  r   r7   r   r   r   r   r  O  rM  r  c                   @   r3   )NetrUnjoinDomain2ResponserI  Nr   r   r   r   r   r  X  r8   r  c                   @   2   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 )NetrRenameMachineInDomain2   rD  MachineNamer}  r~  rq  Nr  r   r   r   r   r  ^      r  c                   @   r3   )"NetrRenameMachineInDomain2ResponserI  Nr   r   r   r   r   r  h  r8   r  c                   @   2   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 )NetrValidateName2   rD  NameToValidater}  r~  NameTypeN)	r&   r'   r(   rE  r   r
   r  rH   r7   r   r   r   r   r  n  r  r  c                   @   r3   )NetrValidateName2ResponserI  Nr   r   r   r   r   r  x  r8   r  c                   @   r  )NetrGetJoinableOUs2   rD  r{  r}  r~  OUCountNr  r   r   r   r   r  ~  r  r  c                   @   rv  )NetrGetJoinableOUs2Responser  OUsrI  N)r&   r'   r(   r   r  r   r7   r   r   r   r   r    r-  r  c                   @   r  )NetrAddAlternateComputerName   rD  AlternateNameDomainAccountEncryptedPasswordReservedNr  r   r   r   r   r    r  r  c                   @   r3   )$NetrAddAlternateComputerNameResponserI  Nr   r   r   r   r   r    r8   r  c                   @   r  )NetrRemoveAlternateComputerName   rD  r  r  r  r  Nr  r   r   r   r   r    r  r  c                   @   r3   )'NetrRemoveAlternateComputerNameResponserI  Nr   r   r   r   r   r    r8   r  c                   @   r  )NetrSetPrimaryComputerName   rD  PrimaryNamer  r  r  Nr  r   r   r   r   r    r  r  c                   @   r3   )"NetrSetPrimaryComputerNameResponserI  Nr   r   r   r   r   r    r8   r  c                   @   r`  )NetrEnumerateComputerNames   rD  r  r  N)r&   r'   r(   rE  r<   rO   r   r7   r   r   r   r   r    re  r  c                   @   r   )"NetrEnumerateComputerNamesResponser  rI  N)r&   r'   r(   r  r   r7   r   r   r   r   r    r   r  r[  rb  rh  rl  ro  rt  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                 C       t  }d|d< ||d< | |S )N
          rD  r   )rC  request)dcelevelr  r   r   r   hNetrWkstaGetInfo     
r  c                 C   s<   t  }d|d< ||d d< ||d d d< ||d< | |S )Nr  rD  rQ  r   r   r   rR  )rP  r  )r  r  preferredMaximumLengthr  r   r   r   hNetrWkstaUserEnum  s   
r  c                 C   sD   t  }d|d< ||d d< ||d d d< ||d< ||d< | |S )	Nr  rD  rX  r   r  r   rS  rR  )rW  r  r  r  resumeHandler  r  r   r   r   hNetrWkstaTransportEnum  s   
r  c                 C   <   t  }d|d< ||d< ||d d< ||d d| < | |S )Nr  rD  r   rH  r   zWkstaInfo%d)rK  r  )r  r  wkstInfor  r   r   r   hNetrWkstaSetInfo     
r  c                 C   s0   t  }d|d< ||d< ||d< ||d< | |S )Nr  rD  rp  r   rq  )rn  r  )r  serviceNamer  optionsr  r   r   r   hNetrWorkstationStatisticsGet  s   
r  c                 C   r  )Nr  rD  ru  )rs  r  )r  
nameBufferr  r   r   r   hNetrGetJoinInformation  r  r  c                 C   sb   t  }d|d< t||d< t||d< t||d< |tkr"t|d< n||d d< ||d< | |S )	Nr  rD  r{  r|  r}  r~  r   rq  )ry  r  r	   r  )r  domainNameParammachineAccountOUaccountNamepasswordr  r  r   r   r   hNetrJoinDomain2"  s   

r  c                 C   sJ   t  }d|d< t||d< |tkrt|d< n||d d< ||d< | |S )Nr  rD  r}  r~  r   rq  )r  r  r	   r  )r  r  r  r  r  r   r   r   hNetrUnjoinDomain2/  s   

r  c                 C   V   t  }d|d< t||d< t||d< |tkrt|d< n||d d< ||d< | |S )Nr  rD  r  r}  r~  r   rq  )r  r  r	   r  )r  machineNamer  r  r  r  r   r   r   hNetrRenameMachineInDomain2:     

r  c                 C   r  )Nr  rD  r  r}  r~  r   r  )r  r  r	   r  )r  nameToValidater  r  nameTyper  r   r   r   hNetrValidateName2F  r  r  c                 C   r  )Nr  rD  r{  r}  r~  r   r  )r  r  r	   r  )r  r  r  r  r  r  r   r   r   hNetrGetJoinableOUs2R  r  r  c                 C   N   t  }d|d< t||d< t||d< |tkrt|d< n||d d< | |S Nr  rD  r  r  r  r   )r  r  r	   r  r  alternateNamedomainAccountencryptedPasswordr  r   r   r   hNetrAddAlternateComputerName^     

r  c                 C   r  r  )r  r  r	   r  r  r   r   r    hNetrRemoveAlternateComputerNamei  r  r  c                 C   r  )Nr  rD  r  r  r  r   )r  r  r	   r  )r  primaryNamer  r  r  r   r   r   hNetrSetPrimaryComputerNamet  r  r  c                 C   r  )Nr  rD  r  )r  r  )r  r  r  r   r   r   hNetrEnumerateComputerNames  r  r  c                 C   r  )Nr  rD  r   r^  r   z	UseInfo%d)r]  r  )r  r  
infoStructr  r   r   r   hNetrUseAdd  r  r  c                 C   s\   t  }d|d< ||d d< ||d d d< t|d d d|  d< ||d	< ||d
< | |S )Nr  rD  r^  r   rA  r   zLevel%dr   rR  rS  )rk  r	   r  r  r   r   r   hNetrUseEnum  s   
r  c                 C   ,   t  }d|d< t||d< ||d< | |S )Nr  rD  rc  r   )ra  r  r  )r  useNamer  r  r   r   r   hNetrUseGetInfo  
   
r  c                 C   r  )Nr  rD  rc  ri  )rg  r  r  )r  r  
forceLevelr  r   r   r   hNetrUseDel  r  r  N)r+   )r   r+   )impacket.dcerpc.v5.ndrr   r   r   r   r   r   r   impacket.dcerpc.v5.dtypesr	   r
   r   r   r   r   r   r   r   r   impacketr   impacket.uuidr   impacket.dcerpc.v5.enumr   impacket.dcerpc.v5.rpcrtr   MSRPC_UUID_WKSTr   r  r  MAX_PREFERRED_LENGTHUSE_OK
USE_PAUSEDUSE_SESSLOST
USE_NETERRUSE_CONN
USE_RECONNUSE_WILDCARDUSE_DISKDEVUSE_SPOOLDEVUSE_CHARDEVUSE_IPCUSE_NOFORCE	USE_FORCEUSE_LOTS_OF_FORCENETSETUP_JOIN_DOMAINNETSETUP_ACCT_CREATENETSETUP_ACCT_DELETENETSETUP_DOMAIN_JOIN_IF_JOINEDNETSETUP_JOIN_UNSECURENETSETUP_MACHINE_PWD_PASSEDNETSETUP_DEFER_SPN_SETNETSETUP_JOIN_DC_ACCOUNTNETSETUP_JOIN_WITH_NEW_NAMENETSETUP_INSTALL_INVOCATION!NETSETUP_IGNORE_UNSUPPORTED_FLAGSNETSETUP_DNS_NAME_CHANGES_ONLYr4   r9   r;   r<   r>   rH   rO   rT   r\   r]   rd   re   rn   ro   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  r9  r:  r;  r<  r=  r>  r@  rC  rG  rK  rN  rP  rU  rW  rY  rZ  r\  r]  r_  ra  rf  rg  rj  rk  rm  rn  rr  rs  rw  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   <module>   s  $0
	
'
	,
												





		





		
