o
    jK                    @   s  d dl mZ d dlmZ d dl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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$ d d	l%m&Z& d d
l'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z/ d dl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl0m1Z1m3Z3m2Z2 d dl7m8Z8 d dl9m:Z: d dl9m;Z; e"dZ<G dd de*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&Z`dZadZbdZcd Zdd!Zed"Zfd,Zgd+Zhd-Zid.Zjd/Zkd0Zld1Zmd2Znd3Zod4ZpeZqeZrG d5d6 d6eZseZtd d7l'muZu G d8d9 d9eZvG d:d; d;eZwewZxexZyG d<d= d=eZzG 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
ZG dJdK dKe	ZG dLdM dMeZG dNdO dOe	ZG dPdI dIe
ZG dQdR dReZG dSdT dTe	ZG dUdV dVe,ZG dWdX dXe
ZG dYdZ dZe	ZG d[d\ d\eZG d]d^ d^e
ZG d_d` d`eZG dadb dbe
ZG dcdd dde	ZG dedb dbe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= d=eZzG 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	ZewZG 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 dd  d e	Zd dl%mZ eZG dd deZG dd deZG dd de	ZG dd	 d	eZG d
d de	ZG dd deZG dd de	ZG dd deZG dd de	ZG dd deZG dd de	ZG dd deZG dd de	ZG dd deZG dd de	ZG d d! d!eZG d"d# d#e	ZG d$d% d%eZG d&d' d'eZG d(d) d)e	ZG d*d+ d+eZG d,d- d-e	ZG d.d/ d/eZG d0d1 d1eZG d2d3 d3eZG d4d5 d5eZG d6d7 d7e
ZG d8d9 d9eZG d:d; d;e	ZG d<d= d=eZG d>d? d?eZG d@dA dAeZG dBdC dCe
ZG dDdE dEe	ZG dFdG dGeZ G dHdI dIeZG dJdK dKe	ZG dLdM dMeZG dNdO dOeZG dPdQ dQe	ZG dRdS dSeZG dTdU dUe	ZG dVdW dWeZG dXdY dYe	Z	G dZd[ d[eZ
G d\d] d]e	ZG d^d_ d_eZG d`da daeZG dbdc dce	ZG ddde deeZG dfdg dgeZG dhdi dieZG djdk dkeZdZdZd Zd+Zd*Zd ZdZdlZdmZd4ZdnZdoZG dpdq dqe,ZG drds dse,Z G dtdu due,Z!dvdw Z"dxdy 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dZ-dddZ.dddZ/dddZ0G dd deZ1G dd deZ2G dd deZ3G dd deZ4G dd deZ5G dd deZ6G dd deZ7G dd deZ8G dd deZ9G dd deZ:G dd deZ;G dd deZ<G dd deZ=G dd deZ>G dd deZ?G dd deZ@G dd deZAG dd deZBG dd deZCG dd deZDG dd deZEG dd deZFG dÐdĄ deZGG dŐdƄ deZHG dǐdȄ deZIG dɐdʄ deZJG dːd̄ deZKG d͐d΄ deZLG dϐdЄ deZMG dѐd҄ deZNG dӐdԄ deZOG dՐdք deZPG dאd؄ deZQG dِdڄ deZRG dېd܄ deZSG dݐdބ deZTG dߐd deZUG dd deZVG dd deZWG dd deZXG dd deZYG dd deZZG dd deZ[G dd deZ\G dd deZ]G dd deZ^G dd deZ_G dd deZ`G dd deZaG dd deZbG dd deZcG dd deZdG dd  d eZeG dd deZfG dd deZgG dd deZhG dd deZiG d	d
 d
eZjG dd deZkG dd deZlG dd deZmG dd deZnG dd deZoG dd deZpG dd deZqG dd deZrG dd deZsG dd deZtG dd  d eZuG d!d" d"eZvG d#d$ d$eZwG d%d& d&eZxG d'd( d(eZyG d)d* d*eZzG d+d, d,eZ{G d-d. d.eZ|G d/d0 d0eZ}G d1d2 d2eZ~G d3d4 d4eZG d5d6 d6eZG d7d8 d8eZG d9d: d:eZG d;d< d<eZG d=d> d>eZG d?d@ d@eZG dAdB dBeZG dCdD dDeZG dEdF dFeZG dGdH dHeZG dIdJ dJeZi d eefdeefde]e^fde_e`fd eGeHfd!eMeNfd,eaebfd+eeeffd/e7e8fd0eefdKe9e:fdLeefdMeKeLfd*ecedfdNegehfdOeefdmemenfi dPe5e6fdQeWeXfde}e~fdReuevfdSewexfdeyezfdoeIeJfdTe3e4fde;e<fdUeUeVfdeOePfdVeQeRfde{e|fdWe?e@fde1e2fdXeefdekelfeAeBfe=e>feYeZfeiejfeCeDfeSeTfeqerfeoepfe[e\fesetfdY
ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Zdtdu Zdvdw ZddxdyZddzd{Zd|d} ZdzS (      pack)b)NDRCALL	NDRSTRUCTNDRENUMNDRUNION
NDRPOINTERNDRUniConformantArrayNDRUniFixedArrayNDRUniConformantVaryingArray)WSTRLPWSTRDWORDULONGUSHORTPGUIDNTSTATUSNULLLONGUCHARPRPC_SIDGUIDRPC_UNICODE_STRINGSECURITY_INFORMATIONLPULONG)system_errors)NTStatus)uuidtup_to_bin)Enum)OLD_LARGE_INTEGER)PLSA_FOREST_TRUST_INFORMATION)DCERPCException)	Structure)logger)AESDESRC4MODE_CFBMODE_ECBexpand_DES_key)r%   r'   r&   )md4)hmac)hashlib)z$12345678-1234-ABCD-EF00-01234567CFFBz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 r5   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/dcerpc/v5/nrpc.pyr0   .   s   zDCERPCSessionError.__init__c                 C   s   | j }|tjv rtj| d }tj| d }d| j ||f S zt| W n
   d| j   Y S t|j}dt|t|jf }d| j |f S )Nr      z'NRPC SessionError: code: 0x%x - %s - %sz+NRPC SessionError: unknown error code: 0x%xz%s : %sz"NRPC SessionError: code: 0x%x - %s)r3   r   ERROR_MESSAGESr   namehex)r1   keyerror_msg_shorterror_msg_verboser5   r5   r6   __str__1   s   

zDCERPCSessionError.__str__)NNN)__name__
__module____qualname__r0   r>   r5   r5   r5   r6   r.   -       
r.                   "   $   r7                  i   i @     @         i             	   
         i  i    i  c                   @      e Zd ZdZdd ZdS )CYPHER_BLOCK))Dataz8s=b""c                 C      dS Nr7   r5   r1   r5   r5   r6   getAlignment      zCYPHER_BLOCK.getAlignmentN)r?   r@   rA   	structurera   r5   r5   r5   r6   r\      s    r\   )STRINGc                   @      e Zd Zdd ZdS )CYPHER_BLOCK_ARRAYc                 C   s   t t d S )NrJ   lenr\   r1   datar5   r5   r6   
getDataLen   s   zCYPHER_BLOCK_ARRAY.getDataLenNr?   r@   rA   rk   r5   r5   r5   r6   rf          rf   c                   @      e Zd ZdeffZdS )LM_OWF_PASSWORDr]   N)r?   r@   rA   rf   rc   r5   r5   r5   r6   ro          ro   c                   @   r[   )UCHAR_FIXED_ARRAYr7   c                 C   s
   t t S r/   rg   ri   r5   r5   r6   rk      s   
UCHAR_FIXED_ARRAY.getDataLenN)r?   r@   rA   alignrk   r5   r5   r5   r6   rq      s    rq   c                   @   s   e Zd ZdeffZdd ZdS )NETLOGON_CREDENTIALr]   c                 C   r^   r_   r5   r`   r5   r5   r6   ra      rb   z NETLOGON_CREDENTIAL.getAlignmentN)r?   r@   rA   rq   rc   ra   r5   r5   r5   r6   rt      s    rt   c                   @      e Zd ZdefdeffZdS )NETLOGON_AUTHENTICATOR
Credential	TimestampN)r?   r@   rA   rt   r   rc   r5   r5   r5   r6   rv          rv   c                   @   rn   )PNETLOGON_AUTHENTICATORr]   N)r?   r@   rA   rv   referentr5   r5   r5   r6   rz      rp   rz   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 )DOMAIN_CONTROLLER_INFOWDomainControllerNameDomainControllerAddressDomainControllerAddressType
DomainGuid
DomainNameDnsForestNameFlags
DcSiteNameClientSiteNameN)r?   r@   rA   r   r   r   rc   r5   r5   r5   r6   r|          r|   c                   @   rn   )PDOMAIN_CONTROLLER_INFOWr]   N)r?   r@   rA   r|   r{   r5   r5   r5   r6   r      rp   r   c                   @      e Zd ZeZdS RPC_UNICODE_STRING_ARRAYNr?   r@   rA   r   itemr5   r5   r5   r6   r          r   c                   @   rn   )PRPC_UNICODE_STRING_ARRAYr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r      rp   r   c                   @   ru   )NL_SITE_NAME_ARRAY
EntryCount	SiteNamesNr?   r@   rA   r   r   rc   r5   r5   r5   r6   r      ry   r   c                   @   rn   )PNL_SITE_NAME_ARRAYr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r      rp   r   c                   @   r   r   r   r5   r5   r5   r6   r      r   c                   @   s"   e Zd ZdefdefdeffZdS )NL_SITE_NAME_EX_ARRAYr   r   SubnetNamesNr   r5   r5   r5   r6   r      
    r   c                   @   rn   )PNL_SITE_NAME_EX_ARRAYr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r      rp   r   c                   @      e Zd ZdZdS )IPv4Address))AddressFamily<H=0)Portr   )Address<L=0)Paddingr   N)r?   r@   rA   rc   r5   r5   r5   r6   r      r   r   c                   @   r   )UCHAR_ARRAYcN)r?   r@   rA   r   r5   r5   r5   r6   r     r   r   c                   @   rn   )PUCHAR_ARRAYr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r     rp   r   c                   @   ru   )NL_SOCKET_ADDRESS
lpSockaddriSockaddrLengthN)r?   r@   rA   r   r   rc   r5   r5   r5   r6   r     ry   r   c                   @   r   )NL_SOCKET_ADDRESS_ARRAYN)r?   r@   rA   r   r   r5   r5   r5   r6   r     r   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 )	NL_DNS_NAME_INFOTypeDnsDomainInfoTypePriorityWeightr   RegisterStatusN)r?   r@   rA   r   r   r   rc   r5   r5   r5   r6   r         r   c                   @   r   )NL_DNS_NAME_INFO_ARRAYN)r?   r@   rA   r   r   r5   r5   r5   r6   r   "  r   r   c                   @   rn   )PNL_DNS_NAME_INFO_ARRAYr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r   %  rp   r   c                   @   ru   )r   r   DnsNamesInfoN)r?   r@   rA   r   r   rc   r5   r5   r5   r6   r   *  ry   c                   @   ru   )NETLOGON_LSA_POLICY_INFOLsaPolicySize	LsaPolicyNr?   r@   rA   r   r   rc   r5   r5   r5   r6   r   4  ry   r   c                   @   rn   )PNETLOGON_LSA_POLICY_INFOr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r   :  rp   r   c                   @   sj   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d
efdefdefdefdefdeffZdS )NETLOGON_WORKSTATION_INFOr   DnsHostNameSiteNameDummy1Dummy2Dummy3Dummy4	OsVersionOsNameDummyString3DummyString4WorkstationFlags KerberosSupportedEncryptionTypes
DummyLong3
DummyLong4N)r?   r@   rA   r   r   r   r   rc   r5   r5   r5   r6   r   @  "    r   c                   @   rn   )PNETLOGON_WORKSTATION_INFOr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r   S  rp   r   c                   @   s   e Zd ZdddZdd ZdS )NL_TRUST_PASSWORD_FIXED_ARRAYr   c                 C   r^   )Ni  r5   )r1   rj   offsetr5   r5   r6   rk   Y  rb   z(NL_TRUST_PASSWORD_FIXED_ARRAY.getDataLenc                 C   r^   r_   r5   r`   r5   r5   r6   ra   \  rb   z*NL_TRUST_PASSWORD_FIXED_ARRAY.getAlignmentN)r   )r?   r@   rA   rk   ra   r5   r5   r5   r6   r   X  rB   r   c                   @   re   )WCHAR_ARRAYc                 C   r^   )NrQ   r5   ri   r5   r5   r6   rk   a  rb   zWCHAR_ARRAY.getDataLenNrl   r5   r5   r5   r6   r   `  rm   r   c                   @   ru   )NL_TRUST_PASSWORDBufferLengthN)r?   r@   rA   r   r   rc   r5   r5   r5   r6   r   d  ry   r   c                   @   rn   )PNL_TRUST_PASSWORDr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r   j  rp   r   c                   @   s"   e Zd ZdefdefdeffZdS )NL_PASSWORD_VERSIONReservedFieldPasswordVersionNumberPasswordVersionPresentNr?   r@   rA   r   rc   r5   r5   r5   r6   r   q  r   r   c                   @   (   e Zd ZdeffZdefdefdZdS ) NETLOGON_WORKSTATION_INFORMATIONtagWorkstationInfoLsaPolicyInfor7   rJ   N)r?   r@   rA   r   	commonHdrr   r   unionr5   r5   r5   r6   r   y      
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d	efd
efdefdefdeffZdS )NETLOGON_ONE_DOMAIN_INFOr   DnsDomainNamer   r   	DomainSidTrustExtensionDummyString2r   r   
DummyLong1
DummyLong2r   r   N)r?   r@   rA   r   r   r   r   rc   r5   r5   r5   r6   r         r   c                   @   r   )NETLOGON_ONE_DOMAIN_INFO_ARRAYN)r?   r@   rA   r   r   r5   r5   r5   r6   r     r   r   c                   @   rn   )PNETLOGON_ONE_DOMAIN_INFO_ARRAYr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r     rp   r   c                   @   sX   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d
efdefdeffZdS )NETLOGON_DOMAIN_INFOPrimaryDomainTrustedDomainCountTrustedDomainsr   DnsHostNameInDsr   r   r   r   SupportedEncTypesr   r   N)	r?   r@   rA   r   r   r   r   r   rc   r5   r5   r5   r6   r     s    r   c                   @   rn   )PNETLOGON_DOMAIN_INFOr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r     rp   r   c                   @   r   )NETLOGON_DOMAIN_INFORMATIONr   
DomainInfor   r   N)r?   r@   rA   r   r   r   r   r   r5   r5   r5   r6   r     r   r   c                   @      e Zd ZG dd deZdS )NETLOGON_SECURE_CHANNEL_TYPEc                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
z&NETLOGON_SECURE_CHANNEL_TYPE.enumItemsr   r7   rJ   rK   rL   rM   rN   rU   N)r?   r@   rA   NullSecureChannelMsvApSecureChannelWorkstationSecureChannelTrustedDnsDomainSecureChannelTrustedDomainSecureChannelUasServerSecureChannelServerSecureChannelCdcServerSecureChannelr5   r5   r5   r6   	enumItems  s    r   Nr?   r@   rA   r   r   r5   r5   r5   r6   r         r   c                   @   "   e Zd ZdeffZddefiZdS )NETLOGON_CAPABILITIESr   r7   ServerCapabilitiesNr?   r@   rA   r   r   r   r   r5   r5   r5   r6   r     
    r   c                   @   re   )rq   c                 C   r^   )NrO   r5   ri   r5   r5   r6   rk     rb   rr   Nrl   r5   r5   r5   r6   rq     rm   c                   @   sR   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d
efdeffZdS )NL_OSVERSIONINFO_V1dwOSVersionInfoSizedwMajorVersiondwMinorVersiondwBuildNumberdwPlatformIdszCSDVersionwServicePackMajorwServicePackMinor
wSuiteMaskwProductType	wReservedN)r?   r@   rA   r   rq   r   r   rc   r5   r5   r5   r6   r    s    r  c                   @   rn   )PNL_OSVERSIONINFO_V1r]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   rn   )PLPWSTRr]   N)r?   r@   rA   r   r{   r5   r5   r5   r6   r    rp   r  c                   @   s"   e Zd ZdefdefdeffZdS )$NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1ClientDnsHostNameOsVersionInfor   N)r?   r@   rA   r  r  rc   r5   r5   r5   r6   r    r   r  c                   @   r   )!NL_IN_CHAIN_SET_CLIENT_ATTRIBUTESr   r7   V1N)r?   r@   rA   r   r   r  r   r5   r5   r5   r6   r    r  r  c                   @   "   e Zd ZdefdefdeffZdS )%NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1HubNameOldDnsHostNamer   N)r?   r@   rA   r  r   rc   r5   r5   r5   r6   r    r   r  c                   @   r   )"NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTESr   r7   r  N)r?   r@   rA   r   r   r  r   r5   r5   r5   r6   r    r  r  c                   @   re   )CHAR_FIXED_8_ARRAYc                 C   r^   )NrT   r5   ri   r5   r5   r6   rk     rb   zCHAR_FIXED_8_ARRAY.getDataLenNrl   r5   r5   r5   r6   r    rm   r  c                   @   rn   )LM_CHALLENGEr]   N)r?   r@   rA   r  rc   r5   r5   r5   r6   r    rp   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 )NETLOGON_LOGON_IDENTITY_INFOLogonDomainNameParameterControlReservedUserNameWorkstationN)r?   r@   rA   r   r   r    rc   r5   r5   r5   r6   r  !      r  c                   @   rn   )PNETLOGON_LOGON_IDENTITY_INFOr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r#  *  rp   r#  c                   @   (   e Zd ZdefdefdefdeffZdS )NETLOGON_GENERIC_INFOIdentityPackageName
DataLength	LogonDataN)r?   r@   rA   r  r   r   r   rc   r5   r5   r5   r6   r%  0      r%  c                   @   rn   )PNETLOGON_GENERIC_INFOr]   N)r?   r@   rA   r%  r{   r5   r5   r5   r6   r+  8  rp   r+  c                   @   "   e Zd ZdefdefdeffZdS )NETLOGON_INTERACTIVE_INFOr&  LmOwfPasswordNtOwfPasswordNr?   r@   rA   r  ro   NT_OWF_PASSWORDrc   r5   r5   r5   r6   r-  >  r   r-  c                   @   rn   )PNETLOGON_INTERACTIVE_INFOr]   N)r?   r@   rA   r-  r{   r5   r5   r5   r6   r2  E  rp   r2  c                   @   r,  )NETLOGON_SERVICE_INFOr&  r.  r/  Nr0  r5   r5   r5   r6   r3  K  r   r3  c                   @   rn   )PNETLOGON_SERVICE_INFOr]   N)r?   r@   rA   r3  r{   r5   r5   r5   r6   r4  R  rp   r4  c                   @   s(   e Zd ZdefdefdefdeffZdS )NETLOGON_NETWORK_INFOr&  LmChallengeNtChallengeResponseLmChallengeResponseN)r?   r@   rA   r  r  rd   rc   r5   r5   r5   r6   r5  X  r*  r5  c                   @   rn   )PNETLOGON_NETWORK_INFOr]   N)r?   r@   rA   r5  r{   r5   r5   r5   r6   r9  `  rp   r9  c                   @   r   )NETLOGON_LOGON_INFO_CLASSc                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	z#NETLOGON_LOGON_INFO_CLASS.enumItemsr7   rJ   rK   rL   rM   rN   rU   N)
r?   r@   rA   NetlogonInteractiveInformationNetlogonNetworkInformationNetlogonServiceInformationNetlogonGenericInformation(NetlogonInteractiveTransitiveInformation$NetlogonNetworkTransitiveInformation$NetlogonServiceTransitiveInformationr5   r5   r5   r6   r   g  s    r   Nr   r5   r5   r5   r6   r:  f  r   r:  c                   @   sV   e Zd Zejdefejdefejdefej	defej
defejdefejdefiZdS )	NETLOGON_LEVELLogonInteractiveLogonInteractiveTransitiveLogonServiceLogonServiceTransitiveLogonNetworkLogonNetworkTransitiveLogonGenericN)r?   r@   rA   r:  r;  r2  r?  r=  r4  rA  r<  r9  r@  r>  r+  r   r5   r5   r5   r6   rB  q  s    






rB  c                   @   ru   )NETLOGON_SID_AND_ATTRIBUTESSid
AttributesN)r?   r@   rA   r   r   rc   r5   r5   r5   r6   rJ  }  ry   rJ  c                   @   ru   )!NETLOGON_VALIDATION_GENERIC_INFO2r(  ValidationDataNr   r5   r5   r5   r6   rM    ry   rM  c                   @   rn   )"PNETLOGON_VALIDATION_GENERIC_INFO2r]   N)r?   r@   rA   rM  r{   r5   r5   r5   r6   rO    rp   rO  c                   @      e Zd ZdefdeffZdS )GROUP_MEMBERSHIP
RelativeIdrL  Nr   r5   r5   r5   r6   rQ    ry   rQ  c                   @   r   )GROUP_MEMBERSHIP_ARRAYN)r?   r@   rA   rQ  r   r5   r5   r5   r6   rS    r   rS  c                   @   rn   )PGROUP_MEMBERSHIP_ARRAYr]   N)r?   r@   rA   rS  r{   r5   r5   r5   r6   rT    rp   rT  c                   @   re   )
LONG_ARRAYc                 C   r^   )N(   r5   ri   r5   r5   r6   rk     rb   zLONG_ARRAY.getDataLenNrl   r5   r5   r5   r6   rU    rm   rU  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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fZdS )NETLOGON_VALIDATION_SAM_INFO	LogonTime
LogoffTimeKickOffTimePasswordLastSetPasswordCanChangePasswordMustChangeEffectiveNameFullNameLogonScriptProfilePathHomeDirectoryHomeDirectoryDrive
LogonCountBadPasswordCountUserIdPrimaryGroupId
GroupCountGroupIds	UserFlagsUserSessionKeyLogonServerr  LogonDomainIdExpansionRoomN)r?   r@   rA   r    r   r   r   rT  USER_SESSION_KEYr   rU  rc   r5   r5   r5   r6   rW    s4    rW  c                   @   rn   )PNETLOGON_VALIDATION_SAM_INFOr]   N)r?   r@   rA   rW  r{   r5   r5   r5   r6   rp    rp   rp  c                   @   r   )!NETLOGON_SID_AND_ATTRIBUTES_ARRAYN)r?   r@   rA   rJ  r   r5   r5   r5   r6   rq    r   rq  c                   @   rn   )"PNETLOGON_SID_AND_ATTRIBUTES_ARRAYr]   N)r?   r@   rA   rq  r{   r5   r5   r5   r6   rr    rp   rr  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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fZdS )NETLOGON_VALIDATION_SAM_INFO2rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  r  rm  rn  SidCount	ExtraSidsN)r?   r@   rA   r    r   r   r   rT  ro  r   rU  rr  rc   r5   r5   r5   r6   rs    s8    rs  c                   @   rn   )PNETLOGON_VALIDATION_SAM_INFO2r]   N)r?   r@   rA   rs  r{   r5   r5   r5   r6   rv    rp   rv  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d)efd*efd+efd,efR Zd-S ).NETLOGON_VALIDATION_SAM_INFO4rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  r  rm  LMKeyUserAccountControlSubAuthStatusLastSuccessfulILogonLastFailedILogonFailedILogonCount	Reserved4rt  ru  DnsLogonDomainNameUpnExpansionString1ExpansionString2ExpansionString3ExpansionString4ExpansionString5ExpansionString6ExpansionString7ExpansionString8ExpansionString9ExpansionString10N)r?   r@   rA   r    r   r   r   rT  ro  r   r  rr  rc   r5   r5   r5   r6   rw    s    	
!"#$%&'()*+,-.
rw  c                   @   rn   )PNETLOGON_VALIDATION_SAM_INFO4r]   N)r?   r@   rA   rw  r{   r5   r5   r5   r6   r  &  rp   r  c                   @   r   )NETLOGON_VALIDATION_INFO_CLASSc                   @   s$   e Zd ZdZdZdZdZdZdZdS )z(NETLOGON_VALIDATION_INFO_CLASS.enumItemsr7   rJ   rK   rL   rM   rN   N)	r?   r@   rA   NetlogonValidationUasInfoNetlogonValidationSamInfoNetlogonValidationSamInfo2NetlogonValidationGenericInfoNetlogonValidationGenericInfo2NetlogonValidationSamInfo4r5   r5   r5   r6   r   -  s    r   Nr   r5   r5   r5   r6   r  ,  r   r  c                	   @   s8   e Zd Zejdefejdefejde	fej
defiZdS )NETLOGON_VALIDATIONValidationSamValidationSam2ValidationGeneric2ValidationSam4N)r?   r@   rA   r  r  rp  r  rv  r  rO  r  r  r   r5   r5   r5   r6   r  6  s    



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 )NLPR_QUOTA_LIMITSPagedPoolLimitNonPagedPoolLimitMinimumWorkingSetSizeMaximumWorkingSetSizePagefileLimitr  N)r?   r@   rA   r   r    rc   r5   r5   r5   r6   r  ?  s    r  c                   @   r   )ULONG_ARRAYN)r?   r@   rA   r   r   r5   r5   r5   r6   r  J  r   r  c                   @   rn   )PULONG_ARRAYr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  M  rp   r  c                   @   sv   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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 )NETLOGON_DELTA_ACCOUNTSPrivilegeEntriesPrivilegeControlPrivilegeAttributesPrivilegeNamesQuotaLimitsSystemAccessFlagsSecurityInformationSecuritySizeSecurityDescriptorDummyString1r   r   r   r   r   r   r   N)r?   r@   rA   r   r  r   r  r   r   r   rc   r5   r5   r5   r6   r  R  s&    r  c                   @   rn   )PNETLOGON_DELTA_ACCOUNTSr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  g  rp   r  c                   @   rn   )NLPR_SID_INFORMATION
SidPointerN)r?   r@   rA   r   rc   r5   r5   r5   r6   r  m  rp   r  c                   @   r   )NLPR_SID_INFORMATION_ARRAYN)r?   r@   rA   r  r   r5   r5   r5   r6   r  s  r   r  c                   @   rn   )PNLPR_SID_INFORMATION_ARRAYr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  v  rp   r  c                   @   ru   )NLPR_SID_ARRAYCountSidsN)r?   r@   rA   r   r  r{   r5   r5   r5   r6   r  {  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 )NETLOGON_DELTA_ALIAS_MEMBERMembersr   r   r   r   N)r?   r@   rA   r  r   rc   r5   r5   r5   r6   r    r"  r  c                   @   rn   )PNETLOGON_DELTA_ALIAS_MEMBERr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                
   @   F   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 )NETLOGON_DELTA_DELETE_GROUPAccountNamer  r   r   r   r   r   r   r   Nr?   r@   rA   r   r   r   rc   r5   r5   r5   r6   r    r   r  c                   @   rn   )PNETLOGON_DELTA_DELETE_GROUPr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                
   @   r  )NETLOGON_DELTA_DELETE_USERr  r  r   r   r   r   r   r   r   Nr  r5   r5   r5   r6   r    r   r  c                   @   rn   )PNETLOGON_DELTA_DELETE_USERr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   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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 )NETLOGON_DELTA_DOMAINr   OemInformationForceLogoffMinPasswordLengthPasswordHistoryLengthMaxPasswordAgeMinPasswordAgeDomainModifiedCountDomainCreationTimer  r  r  DomainLockoutInformationr   r   r   PasswordPropertiesr   r   r   N)
r?   r@   rA   r   r    r   r   r   r   rc   r5   r5   r5   r6   r    s,    r  c                   @   rn   )PNETLOGON_DELTA_DOMAINr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   sj   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d
efdefdefdefdefdeffZdS )NETLOGON_DELTA_GROUPNamerR  rL  AdminCommentr  r  r  r  r   r   r   r   r   r   r   N)r?   r@   rA   r   r   r   r   rc   r5   r5   r5   r6   r    r   r  c                   @   rn   )PNETLOGON_DELTA_GROUPr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   L   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d
eff
ZdS )NETLOGON_RENAME_GROUPOldNameNewNamer  r   r   r   r   r   r   r   Nr?   r@   rA   r   r   rc   r5   r5   r5   r6   r        r  c                   @   rn   )PNETLOGON_DELTA_RENAME_GROUPr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  )SAMPR_LOGON_HOURSc                   @   r,  )NLPR_USER_PRIVATE_INFOSensitiveDatar(  r]   N)r?   r@   rA   r   r   r   rc   r5   r5   r5   r6   r    r   r  c                   @   sB  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R Zd'S )(NETLOGON_DELTA_USERr   r_  rf  rg  rb  rc  
ScriptPathr  WorkStations	LastLogon
LastLogoff
LogonHoursre  rd  r[  AccountExpiresry  EncryptedNtOwfPasswordEncryptedLmOwfPasswordNtPasswordPresentLmPasswordPresentPasswordExpiredUserComment
ParametersCountryCodeCodePagePrivateDatar  r  r  ra  r   r   r   r   r   r   r   N)r?   r@   rA   r   r   r    NLPR_LOGON_HOURSr   r   r   r  r   rc   r5   r5   r5   r6   r    s    	
 !"#$%&
r  c                   @   rn   )PNETLOGON_DELTA_USERr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  8  rp   r  c                   @   r  )NETLOGON_RENAME_USERr  r  r  r   r   r   r   r   r   r   Nr  r5   r5   r5   r6   r  >  r  r  c                   @   rn   )PNETLOGON_DELTA_RENAME_USERr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  L  rp   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 )	NETLOGON_DELTA_GROUP_MEMBERr  rL  MemberCountr   r   r   r   N)r?   r@   rA   r  r   rc   r5   r5   r5   r6   r  R  r   r  c                   @   rn   )PNETLOGON_DELTA_GROUP_MEMBERr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  ]  rp   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d	efd
efdefdefdeffZdS )NETLOGON_DELTA_ALIASr  rR  r  r  r  Commentr   r   r   r   r   r   r   N)r?   r@   rA   r   r   r   r   rc   r5   r5   r5   r6   r  c  r   r  c                   @   rn   )PNETLOGON_DELTA_ALIASr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r  t  rp   r  c                   @   r  )NETLOGON_RENAME_ALIASr  r  r  r   r   r   r   r   r   r   Nr  r5   r5   r5   r6   r  z  r  r  c                   @   rn   )PNETLOGON_DELTA_RENAME_ALIASr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   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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 )NETLOGON_DELTA_POLICYMaximumLogSizeAuditRetentionPeriodAuditingModeMaximumAuditEventCountEventAuditingOptionsPrimaryDomainNamePrimaryDomainSidr  
ModifiedIdDatabaseCreationTimer  r  r  r  r   r   r   r   r   r   r   N)r?   r@   rA   r   r    r   r  r   r   r  r   r   rc   r5   r5   r5   r6   r    s.    r  c                   @   rn   )PNETLOGON_DELTA_POLICYr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   sd   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d
efdefdefdefdeffZdS )NETLOGON_DELTA_TRUSTED_DOMAINSr   NumControllerEntriesControllerNamesr  r  r  r  r   r   r   r   r   r   r   N)	r?   r@   rA   r   r   r   r   r   rc   r5   r5   r5   r6   r    s     r  c                   @   rn   )PNETLOGON_DELTA_TRUSTED_DOMAINSr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   r   )UCHAR_ARRAY2N)r?   r@   rA   r   r   r5   r5   r5   r6   r    r   r  c                   @   rn   )PUCHAR_ARRAY2r]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   r  )NLPR_CR_CIPHER_VALUEr   MaximumLengthr   N)r?   r@   rA   r   r  rc   r5   r5   r5   r6   r    r   r  c                   @   sj   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d
efdefdefdefdefdeffZ	dS )NETLOGON_DELTA_SECRETCurrentValueCurrentValueSetTimeOldValueOldValueSetTimer  r  r  r  r   r   r   r   r   r   r   N)
r?   r@   rA   r  r    r   r   r   r   rc   r5   r5   r5   r6   r    r   r  c                   @   rn   )PNETLOGON_DELTA_SECRETr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   rn   )NLPR_MODIFIED_COUNTModifiedCountN)r?   r@   rA   r    rc   r5   r5   r5   r6   r    rp   r  c                   @   rn   )PNLPR_MODIFIED_COUNTr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   r   )NETLOGON_DELTA_TYPEc                   @   sd   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ZdZdZdZdS )zNETLOGON_DELTA_TYPE.enumItemsr7   rJ   rK   rL   rM   rN   rU   rT   rV   rW   rX   rY            rS                  rC   N)r?   r@   rA   AddOrChangeDomainAddOrChangeGroupDeleteGroupRenameGroupAddOrChangeUser
DeleteUser
RenameUserChangeGroupMembershipAddOrChangeAliasDeleteAliasRenameAliasChangeAliasMembershipAddOrChangeLsaPolicyAddOrChangeLsaTDomainDeleteLsaTDomainAddOrChangeLsaAccountDeleteLsaAccountAddOrChangeLsaSecretDeleteLsaSecretDeleteGroupByNameDeleteUserByNameSerialNumberSkipr5   r5   r5   r6   r     s.    r   Nr   r5   r5   r5   r6   r    r   r  c                   @   s   e Zd Zi ejdefejdefejde	fej
defejdefejdefejdefejdefejd	efejd
efejdefejdefejdefejdefej de!fej"de#fZ$dS )NETLOGON_DELTA_UNIONDeltaDomain
DeltaGroupDeltaRenameGroup	DeltaUserDeltaRenameUserDeltaGroupMember
DeltaAliasDeltaRenameAliasDeltaAliasMemberDeltaPolicyDeltaTDomainsDeltaAccountsDeltaSecretDeltaDeleteGroupDeltaDeleteUserDeltaSerialNumberSkipN)%r?   r@   rA   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   r5   r5   r5   r6   r/    sD    








	







r/  c                
   @   s  e Zd Zi ejdefejdefejdefejdefej	defej
defejdefejdefejdefejdefejdefejdefejdefejdefejdefejdefejdefejdefejdefejdefejdefiZdS )NETLOGON_DELTA_ID_UNIONRidrK  r  N)r?   r@   rA   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   r5   r5   r5   r6   r@  (  sR    








	













r@  c                   @   r,  )NETLOGON_DELTA_ENUM	DeltaTypeDeltaID
DeltaUnionN)r?   r@   rA   r  r@  r/  rc   r5   r5   r5   r6   rB  B  r   rB  c                   @   r   )NETLOGON_DELTA_ENUM_ARRAY_ARRAYN)r?   r@   rA   rB  r   r5   r5   r5   r6   rF  J  r   rF  c                   @   rn   ) PNETLOGON_DELTA_ENUM_ARRAY_ARRAYr]   N)r?   r@   rA   rF  r{   r5   r5   r5   r6   rG  M  rp   rG  c                   @   ru   )PNETLOGON_DELTA_ENUM_ARRAYCountReturnedDeltasN)r?   r@   rA   r   rG  rc   r5   r5   r5   r6   rH  R  ry   rH  c                   @   r   )
SYNC_STATEc                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )zSYNC_STATE.enumItemsr   r7   rJ   rK   rL   rM   rN   rU   rT   N)r?   r@   rA   NormalStateDomainState
GroupStateUasBuiltInGroupState	UserStateGroupMemberState
AliasStateAliasMemberStateSamDoneStater5   r5   r5   r6   r   Z  s    r   Nr   r5   r5   r5   r6   rK  Y  r   rK  c                   @   ru   )DOMAIN_NAME_BUFFERDomainNameByteCountDomainNamesNr   r5   r5   r5   r6   rU  f  ry   rU  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 )
DS_DOMAIN_TRUSTSWNetbiosDomainNamer   r   ParentIndex	TrustTypeTrustAttributesr   r   N)r?   r@   rA   r   r   r   r   rc   r5   r5   r5   r6   rX  m  s    rX  c                   @   r   )DS_DOMAIN_TRUSTSW_ARRAYN)r?   r@   rA   rX  r   r5   r5   r5   r6   r]  z  r   r]  c                   @   rn   )PDS_DOMAIN_TRUSTSW_ARRAYr]   N)r?   r@   rA   r]  r{   r5   r5   r5   r6   r^  }  rp   r^  c                   @   ru   )NETLOGON_TRUSTED_DOMAIN_ARRAYDomainCountDomainsN)r?   r@   rA   r   r^  rc   r5   r5   r5   r6   r_    ry   r_  c                   @   s(   e Zd ZdefdefdefdeffZdS )NL_GENERIC_RPC_DATAUlongEntryCount	UlongDataUnicodeStringEntryCountUnicodeStringDataN)r?   r@   rA   r   r  r   rc   r5   r5   r5   r6   rb    r*  rb  c                   @   rn   )PNL_GENERIC_RPC_DATAr]   N)r?   r@   rA   rb  r{   r5   r5   r5   r6   rg    rp   rg  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ZdS )!NETLOGON_CONTROL_DATA_INFORMATIONr   TrustedDomainName	DebugFlagr   )rM   rN   rV   rW   rZ   rT   N)r?   r@   rA   r   r   r   r   r5   r5   r5   r6   rh    s    
rh  c                   @   ru   )NETLOGON_INFO_1netlog1_flagsnetlog1_pdc_connection_statusN)r?   r@   rA   r   NET_API_STATUSrc   r5   r5   r5   r6   rk    ry   rk  c                   @   rn   )PNETLOGON_INFO_1r]   N)r?   r@   rA   rk  r{   r5   r5   r5   r6   ro    rp   ro  c                   @   s(   e Zd ZdefdefdefdeffZdS )NETLOGON_INFO_2netlog2_flagsnetlog2_pdc_connection_statusnetlog2_trusted_dc_namenetlog2_tc_connection_statusN)r?   r@   rA   r   rn  r   rc   r5   r5   r5   r6   rp    r*  rp  c                   @   rn   )PNETLOGON_INFO_2r]   N)r?   r@   rA   rp  r{   r5   r5   r5   r6   ru    rp   ru  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 )	NETLOGON_INFO_3netlog3_flagsnetlog3_logon_attemptsnetlog3_reserved1netlog3_reserved2netlog3_reserved3netlog3_reserved4netlog3_reserved5N)r?   r@   rA   r   rc   r5   r5   r5   r6   rv    r   rv  c                   @   rn   )PNETLOGON_INFO_3r]   N)r?   r@   rA   rv  r{   r5   r5   r5   r6   r~    rp   r~  c                   @   rP  )NETLOGON_INFO_4netlog4_trusted_dc_namenetlog4_trusted_domain_nameN)r?   r@   rA   r   rc   r5   r5   r5   r6   r    ry   r  c                   @   rn   )PNETLOGON_INFO_4r]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  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 )"NETLOGON_CONTROL_QUERY_INFORMATIONr   NetlogonInfo1NetlogonInfo2NetlogonInfo3NetlogonInfo4)r7   rJ   rK   rL   N)
r?   r@   rA   r   r   ro  ru  r~  r  r   r5   r5   r5   r6   r    s    
r  c                   @   sp   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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 )NETLOGON_VALIDATION_UAS_INFOusrlog1_eff_nameusrlog1_privusrlog1_auth_flagsusrlog1_num_logonsusrlog1_bad_pw_countusrlog1_last_logonusrlog1_last_logoffusrlog1_logoff_timeusrlog1_kickoff_timeusrlog1_password_ageusrlog1_pw_can_changeusrlog1_pw_must_changeusrlog1_computerusrlog1_domainusrlog1_script_pathusrlog1_reserved1N)r?   r@   rA   r   r   rc   r5   r5   r5   r6   r    s$    r  c                   @   rn   )PNETLOGON_VALIDATION_UAS_INFOr]   N)r?   r@   rA   r  r{   r5   r5   r5   r6   r    rp   r  c                   @   ru   )NETLOGON_LOGOFF_UAS_INFODurationrd  N)r?   r@   rA   r   r   rc   r5   r5   r5   r6   r    ry   r  c                   @   s&   e Zd ZddefdeffZdd ZdS )
UAS_INFO_0)ComputerNamez16s=""TimeCreatedSerialNumberc                 C   r^   )NrL   r5   r`   r5   r5   r6   ra     rb   zUAS_INFO_0.getAlignmentN)r?   r@   rA   r   rc   ra   r5   r5   r5   r6   r    s    r  c                   @   r   )NETLOGON_DUMMY1r   r7   DummyNr   r5   r5   r5   r6   r    r  r  c                   @   re   )CHAR_FIXED_16_ARRAYc                 C   r^   )NrS   r5   ri   r5   r5   r6   rk      rb   zCHAR_FIXED_16_ARRAY.getDataLenNrl   r5   r5   r5   r6   r    rm   r  w   r  z      c                   @      e Zd ZdZdddZdS )NL_AUTH_MESSAGE))MessageTyper   )r   r   )r   :Nr   c                 C   &   t | || |d u rd| d< d S d S )N       r   r#   r0   r1   rj   	alignmentr5   r5   r6   r0   >     zNL_AUTH_MESSAGE.__init__Nr   r?   r@   rA   rc   r0   r5   r5   r5   r6   r  8  s    r  c                   @   r  )NL_AUTH_SIGNATURE)SignatureAlgorithmr   SealAlgorithmr   Padz	<H=0xffffr   r   SequenceNumber8s="")Checksumr  _Confounderz_-Confounder8
Confounderr  Nr   c                 C   r  N r  r  r  r5   r5   r6   r0   N  r  zNL_AUTH_SIGNATURE.__init__r  r  r5   r5   r5   r6   r  C      
r  c                   @   r  )NL_AUTH_SHA2_SIGNATURE)r  r  r  r  r  )r  z32s=""r  r  Nr   c                 C   r  r  r  r  r5   r5   r6   r0   ^  r  zNL_AUTH_SHA2_SIGNATURE.__init__r  r  r5   r5   r5   r6   r  S  r  r  c           	      C   sP   |d d }t |}|dd }t |}t|t}t|t}|| }||S )NrU   r  )r*   r&   r)   encrypt)		inputDataSkk1k3k2k4Crypt1Crypt2
cipherTextr5   r5   r6   ComputeNetlogonCredentiald  s   



r  c                 C   s   t d)NzTODO: needs more work...)	Exceptionprintrh   r%   
cipherMODECFBr  )r  r  IVr  r5   r5   r6   ComputeNetlogonCredentialAESo  s   r  Nc                 C   sf   |d u rt | tr| d} t|  }n|}tj|tjd}|	| |	| | }|d d S )Nutf-16ler;   	digestmodrS   )

isinstancestrencoder+   digestr,   newr-   sha256update)sharedSecretclientChallengeserverChallengesharedSecretHashM4SShm
sessionKeyr5   r5   r6   ComputeSessionKeyAESx  s   



r  c                 C   s   |d u rt | tr| d} t|  }n|}td}|d || || | }tj|tj	d}|| | S )Nr  md5r  r  )
r  r  r  r+   r  r-   r  r  r,   r  )r  r  r  r  r  r  finalMD5r  r5   r5   r6   ComputeSessionKeyStrongKey  s   






r  c                 C   s8   | d@ }| d? d@ }|dO }t d|}|t d|7 }|S )Nl    rG   l        z>Lr   )sequenceNumsequenceLowsequenceHighresr5   r5   r6   deriveSequenceNumber  s   
r  c                 C   sR   t j|tjd}||  d d  || |t| | d d d S )Nr  rT   z                        )r,   r  r-   r  r  getDatabytesr  )authSignaturemessage
confounderr  r  r5   r5   r6   ComputeNetlogonSignatureAES  s
   
r  c                 C   st   t d}|d ||  d d  || |t| | }tj|t jd}|| | d d S )Nr  r  rT   r  )r-   r  r  r  r  r  r,   r  )r  r  r  r  r  r  r  r5   r5   r6   ComputeNetlogonSignatureMD5  s   



r  c                 C   sR   t j|tjd}|d t j| tjd}|| | }t|}|| S )Nr  r  )r,   r  r-   r  r  r  r'   r  )r  checkSumr  r  hm2encryptionKeycipherr5   r5   r6   encryptSequenceNumberRC4  s   


r  c                 C   s   t | ||S r/   )r  )r  r  r  r5   r5   r6   decryptSequenceNumberRC4  s   r  c                 C   2   |d d |d d  }t |t|dd}|| S NrT   r7   r  segment_size)r%   r(   r  r  r  r  r  Cipherr5   r5   r6   encryptSequenceNumberAES     
r  c                 C   r   r  )r%   r(   decryptr  r5   r5   r6   decryptSequenceNumberAES  r  r	  Fc                 C   s   |du r/t  }t|d< |dkrt|d< nt|d< t|| |||d< tt||d ||d< |S t  }t|d< |dkr?t|d< nt|d< t	|| |||d< t
t||d ||d< |S )NFr  r  r  r  r  )r  NL_SIGNATURE_HMAC_MD5NL_SEAL_NOT_ENCRYPTEDNL_SEAL_RC4r  r  r  NL_SIGNATURE_HMAC_SHA256NL_SEAL_AES128r  r  )rj   r  r  r;   aes	signaturer5   r5   r6   SIGN  s"   

r  c                 C   s  t | ||||}t|}t|}tt|D ]
}|| dA ||< qt|}|du rctj|tj	d}|
d tj| tj	d}	|	
| |	 }
t|
}||}t|
}|| }||d< ||fS || }t|t|dd}||}|| }||d< ||fS )N   Fr  r  r  r7   r  )r  r  	bytearrayrangerh   r  r,   r  r-   r  r  r  r'   r  r%   r(   )rj   r  r  r;   r  r  XorKeyir  r  r  r  cfounder	encryptedr  r5   r5   r6   SEAL  s0   





r  c                 C   s  t |}t|}tt|D ]
}|| dA ||< qt|}|du rct|d |d |}tj|tj	d}|
d tj| tj	d}|
| | }	t|	}
|
|d }t|	}
|
| }||fS t|d |d |}|| }t|t|dd	}
|
|d }|
| }||fS )
Nr  Fr  r  r  r  r  r7   r  )r  r  r  rh   r  r  r,   r  r-   r  r  r  r'   r  r	  r%   r(   r  )rj   	auth_datar;   r  r  r  r  r  r  r  r  r  plainr  r5   r5   r6   UNSEAL  s.   



r  r  c                 C   s   t  }d|d< d|d< |d  tO  < |dkr$|d t| d |d< n|d  d7  < |d  tO  < | dkrE|d t|  d |d< n|d  d7  < |d  tO  < | dkrn|d  td	t| t|  d 7  < |S |d  d
7  < |S )Nr   r       r   r      s
   WORKGROUP s   MYHOST z<Bs   MYHOST )r  NL_AUTH_MESSAGE_NETBIOS_DOMAINr   NL_AUTH_MESSAGE_NETBIOS_HOST!NL_AUTH_MESSAGE_NETBIOS_HOST_UTF8r   rh   )workstationdomainsigningRequiredauthr5   r5   r6   getSSPType10  s"   &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 )
DsrGetDcNameEx2rH   r  r  AllowableAccountControlBitsr   r   r   r   N)	r?   r@   rA   opnumPLOGONSRV_HANDLEr   r   r   rc   r5   r5   r5   r6   r'  N      r'  c                   @   ru   )DsrGetDcNameEx2ResponseDomainControllerInfo	ErrorCodeNr?   r@   rA   r   rn  rc   r5   r5   r5   r6   r,  Z  ry   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 )DsrGetDcNameEx   r  r   r   r   r   N	r?   r@   rA   r)  r*  r   r   r   rc   r5   r5   r5   r6   r1  a      r1  c                   @   ru   )DsrGetDcNameExResponser-  r.  Nr/  r5   r5   r5   r6   r5  k  ry   r5  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 )DsrGetDcNamer  r  r   r   SiteGuidr   Nr3  r5   r5   r5   r6   r7  r  r4  r7  c                   @   ru   )DsrGetDcNameResponser-  r.  Nr/  r5   r5   r5   r6   r9  |  ry   r9  c                   @       e Zd ZdZdefdeffZdS )NetrGetDCNamerX   
ServerNamer   N)r?   r@   rA   r)  LOGONSRV_HANDLEr   rc   r5   r5   r5   r6   r;    
    r;  c                   @   ru   )NetrGetDCNameResponser   r.  Nr?   r@   rA   r   rn  rc   r5   r5   r5   r6   r?    ry   r?  c                   @   r:  )NetrGetAnyDCNamer  r<  r   Nr?   r@   rA   r)  r*  r   rc   r5   r5   r5   r6   rA    r>  rA  c                   @   ru   )NetrGetAnyDCNameResponser   r.  Nr@  r5   r5   r5   r6   rC    ry   rC  c                   @      e Zd ZdZdeffZdS )DsrGetSiteNamerE   r  Nr?   r@   rA   r)  r*  rc   r5   r5   r5   r6   rE        rE  c                   @   ru   )DsrGetSiteNameResponser   r.  Nr@  r5   r5   r5   r6   rH    ry   rH  c                   @   rD  )DsrGetDcSiteCoverageW&   r<  NrF  r5   r5   r5   r6   rI    rG  rI  c                   @   ru   )DsrGetDcSiteCoverageWResponser   r.  Nr?   r@   rA   r   rn  rc   r5   r5   r5   r6   rK    ry   rK  c                   @   &   e Zd ZdZdefdefdeffZdS )DsrAddressToSiteNamesW!   r  r   SocketAddressesNr?   r@   rA   r)  r*  r   r   rc   r5   r5   r5   r6   rN        rN  c                   @   ru   )DsrAddressToSiteNamesWResponser   r.  NrL  r5   r5   r5   r6   rS    ry   rS  c                   @   rM  )DsrAddressToSiteNamesExW%   r  r   rP  NrQ  r5   r5   r5   r6   rT    rR  rT  c                   @   ru   ) DsrAddressToSiteNamesExWResponser   r.  N)r?   r@   rA   r   rn  rc   r5   r5   r5   r6   rV    ry   rV  c                   @   r6  )DsrDeregisterDnsHostRecords)   r<  r   r   DsaGuidr   N)	r?   r@   rA   r)  r*  r   r   r   rc   r5   r5   r5   r6   rW    r4  rW  c                   @   rn   )#DsrDeregisterDnsHostRecordsResponser.  N)r?   r@   rA   rn  rc   r5   r5   r5   r6   rZ    rp   rZ  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 )	!DSRUpdateReadOnlyServerDnsRecords0   r<  r  Authenticatorr   DnsTtlDnsNamesN)r?   r@   rA   r)  r*  r   rv   r   r   r   rc   r5   r5   r5   r6   r[        r[  c                   @   r,  ))DSRUpdateReadOnlyServerDnsRecordsResponseReturnAuthenticatorr_  r.  N)r?   r@   rA   rv   r   r   rc   r5   r5   r5   r6   ra    r   ra  c                   @   rM  )NetrServerReqChallengerL   PrimaryNamer  ClientChallengeN)r?   r@   rA   r)  r*  r   rt   rc   r5   r5   r5   r6   rc    rR  rc  c                   @   ru   )NetrServerReqChallengeResponseServerChallenger.  Nr?   r@   rA   rt   r   rc   r5   r5   r5   r6   rf    ry   rf  c                   @   8   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 )	NetrServerAuthenticate3r  rd  r  SecureChannelTyper  ClientCredentialNegotiateFlagsN
r?   r@   rA   r)  r*  r   r   rt   r   rc   r5   r5   r5   r6   rj  	  r`  rj  c                   @   (   e Zd ZdefdefdefdeffZdS )NetrServerAuthenticate3ResponseServerCredentialrm  
AccountRidr.  Nr?   r@   rA   rt   r   r   rc   r5   r5   r5   r6   rp    r*  rp  c                   @   ri  )	NetrServerAuthenticate2r  rd  r  rk  r  rl  rm  Nrn  r5   r5   r5   r6   rt    r`  rt  c                   @   r,  )NetrServerAuthenticate2Responserq  rm  r.  Nrs  r5   r5   r5   r6   ru  (  r   ru  c                   @   r0  )NetrServerAuthenticaterM   rd  r  rk  r  rl  N)	r?   r@   rA   r)  r*  r   r   rt   rc   r5   r5   r5   r6   rv  0  r4  rv  c                   @   ru   )NetrServerAuthenticateResponserq  r.  Nrh  r5   r5   r5   r6   rw  :  ry   rw  c                   @   ri  )	NetrServerPasswordSet2rF   rd  r  rk  r  r]  ClearNewPasswordN)
r?   r@   rA   r)  r*  r   r   rv   r   rc   r5   r5   r5   r6   rx  A  r`  rx  c                   @   ru   )NetrServerPasswordSet2Responserb  r.  Nr?   r@   rA   rv   r   rc   r5   r5   r5   r6   rz  L  ry   rz  c                   @   r0  )NetrServerPasswordGet   rd  r  AccountTyper  r]  N	r?   r@   rA   r)  r*  r   r   rv   rc   r5   r5   r5   r6   r|  U  r4  r|  c                   @   r,  )NetrServerPasswordGetResponserb  r  r.  Nr?   r@   rA   rv   ENCRYPTED_NT_OWF_PASSWORDr   rc   r5   r5   r5   r6   r  _  r   r  c                   @   r0  )NetrServerTrustPasswordsGet*   TrustedDcNamer  rk  r  r]  Nr  r5   r5   r5   r6   r  g  r4  r  c                   @   ro  )#NetrServerTrustPasswordsGetResponserb  EncryptedNewOwfPasswordEncryptedOldOwfPasswordr.  Nr  r5   r5   r5   r6   r  q  r*  r  c                   @   8   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 )	NetrLogonGetDomainInfo   r<  r  r]  rb  LevelWkstaBufferN)
r?   r@   rA   r)  r=  r   rv   r   r   rc   r5   r5   r5   r6   r  z  r`  r  c                   @   r,  )NetrLogonGetDomainInfoResponserb  	DomBufferr.  N)r?   r@   rA   rv   r   r   rc   r5   r5   r5   r6   r    r   r  c                   @   r6  )NetrLogonGetCapabilitiesr  r<  r  r]  rb  
QueryLevelN)	r?   r@   rA   r)  r=  r   rv   r   rc   r5   r5   r5   r6   r    r4  r  c                   @   r,  ) NetrLogonGetCapabilitiesResponserb  r   r.  N)r?   r@   rA   rv   r   r   rc   r5   r5   r5   r6   r    r   r  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 )	NetrLogonSamLogonEx'   rl  r  
LogonLevelLogonInformationValidationLevel
ExtraFlagsN)
r?   r@   rA   r)  r   r:  rB  r  r   rc   r5   r5   r5   r6   r    r`  r  c                   @   r$  )NetrLogonSamLogonExResponseValidationInformationAuthoritativer  r.  N)r?   r@   rA   r  r   r   r   rc   r5   r5   r5   r6   r    r*  r  c                	   @   sD   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fZ
d
S )NetrLogonSamLogonWithFlags-   rl  r  r]  rb  r  r  r  r  N)r?   r@   rA   r)  r   rz   r:  rB  r  r   rc   r5   r5   r5   r6   r        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 )"NetrLogonSamLogonWithFlagsResponserb  r  r  r  r.  N)	r?   r@   rA   rz   r  r   r   r   rc   r5   r5   r5   r6   r    r"  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 )
NetrLogonSamLogonrJ   rl  r  r]  rb  r  r  r  N)
r?   r@   rA   r)  r   rz   r:  rB  r  rc   r5   r5   r5   r6   r    r+  r  c                   @   r$  )NetrLogonSamLogonResponserb  r  r  r.  N)r?   r@   rA   rz   r  r   r   rc   r5   r5   r5   r6   r    r*  r  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 )	NetrLogonSamLogoffrK   rl  r  r]  rb  r  r  N)	r?   r@   rA   r)  r   rz   r:  rB  rc   r5   r5   r5   r6   r    r`  r  c                   @   ru   )NetrLogonSamLogoffResponserb  r.  N)r?   r@   rA   rz   r   rc   r5   r5   r5   r6   r    ry   r  c                   @   >   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 )
NetrDatabaseDeltasrU   rd  r  r]  rb  
DatabaseIDr  PreferredMaximumLengthN)
r?   r@   rA   r)  r=  r   rv   r   r  rc   r5   r5   r5   r6   r    r+  r  c                   @   r$  )NetrDatabaseDeltasResponserb  r  
DeltaArrayr.  N)r?   r@   rA   rv   r  rH  r   rc   r5   r5   r5   r6   r    r*  r  c                	   @   sD   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fZ
d
S )NetrDatabaseSync2rS   rd  r  r]  rb  r  RestartStateSyncContextr  N)r?   r@   rA   r)  r=  r   rv   r   rK  r   rc   r5   r5   r5   r6   r  	  r  r  c                   @   r$  )NetrDatabaseSync2Responserb  r  r  r.  Nr?   r@   rA   rv   r   rH  r   rc   r5   r5   r5   r6   r  	  r*  r  c                   @   r  )
NetrDatabaseSyncrT   rd  r  r]  rb  r  r  r  N)
r?   r@   rA   r)  r=  r   rv   r   r   rc   r5   r5   r5   r6   r  	  r+  r  c                   @   r$  )NetrDatabaseSyncResponserb  r  r  r.  Nr  r5   r5   r5   r6   r  *	  r*  r  c                   @   r  )	NetrDatabaseRedor  rd  r  r]  rb  ChangeLogEntryChangeLogEntrySizeN)
r?   r@   rA   r)  r=  r   rv   r   r   rc   r5   r5   r5   r6   r  3	  r`  r  c                   @   r,  )NetrDatabaseRedoResponserb  r  r.  N)r?   r@   rA   rv   rH  r   rc   r5   r5   r5   r6   r  >	  r   r  c                   @   r:  )DsrEnumerateDomainTrustsrV  r<  r   N)r?   r@   rA   r)  r*  r   rc   r5   r5   r5   r6   r  F	  r>  r  c                   @   ru   ) DsrEnumerateDomainTrustsResponsera  r.  Nr?   r@   rA   r_  r   rc   r5   r5   r5   r6   r  M	  ry   r  c                   @   rD  )NetrEnumerateTrustedDomainsExrI   r<  NrF  r5   r5   r5   r6   r  T	  rG  r  c                   @   ru   )%NetrEnumerateTrustedDomainsExResponsera  r.  Nr  r5   r5   r5   r6   r  Z	  ry   r  c                   @   rD  )NetrEnumerateTrustedDomainsr  r<  NrF  r5   r5   r5   r6   r  a	  rG  r  c                   @   ru   )#NetrEnumerateTrustedDomainsResponseDomainNameBufferr.  N)r?   r@   rA   rU  r   rc   r5   r5   r5   r6   r  g	  ry   r  c                   @   r6  )NetrGetForestTrustInformation,   r<  r  r]  rb  r   N)	r?   r@   rA   r)  r*  r   rv   r   rc   r5   r5   r5   r6   r  n	  r4  r  c                   @   r,  )%NetrGetForestTrustInformationResponserb  ForestTrustInfor.  N)r?   r@   rA   rv   r!   r   rc   r5   r5   r5   r6   r  x	  r   r  c                   @   rM  )DsrGetForestTrustInformation+   r<  ri  r   N)r?   r@   rA   r)  r*  r   r   rc   r5   r5   r5   r6   r  	  rR  r  c                   @   ru   )$DsrGetForestTrustInformationResponser  r.  N)r?   r@   rA   r!   r   rc   r5   r5   r5   r6   r  	  ry   r  c                   @   r0  )NetrServerGetTrustInfo.   r  r  rk  r  r]  Nr  r5   r5   r5   r6   r  	  r4  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 )NetrServerGetTrustInfoResponserb  r  r  	TrustInfor.  N)r?   r@   rA   rv   r  rg  r   rc   r5   r5   r5   r6   r  	  r"  r  c                   @   r:  )NetrLogonGetTrustRid   r<  r   NrB  r5   r5   r5   r6   r  	  r>  r  c                   @   ru   )NetrLogonGetTrustRidResponserA  r.  N)r?   r@   rA   r   r   rc   r5   r5   r5   r6   r  	  ry   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 )NetrLogonComputeServerDigest   r<  rA  MessageMessageSizeN)r?   r@   rA   r)  r*  r   r   rc   r5   r5   r5   r6   r  	      r  c                   @   r  )$NetrLogonComputeServerDigestResponseNewMessageDigestOldMessageDigestr.  Nr?   r@   rA   r  r   rc   r5   r5   r5   r6   r  	  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 )NetrLogonComputeClientDigestrD   r<  r   r  r  N)	r?   r@   rA   r)  r*  r   r   r   rc   r5   r5   r5   r6   r  	  r  r  c                   @   r  )$NetrLogonComputeClientDigestResponser  r  r.  Nr  r5   r5   r5   r6   r  	  r   r  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 )NetrLogonSendToSamrG   rd  r  r]  OpaqueBufferOpaqueBufferSizeN)
r?   r@   rA   r)  r*  r   rv   r   r   rc   r5   r5   r5   r6   r  	  r4  r  c                   @   ru   )NetrLogonSendToSamResponserb  r.  Nr{  r5   r5   r5   r6   r  	  ry   r  c                   @   &   e Zd ZdZdefdefdeffZdS )NetrLogonSetServiceBitsrC   r<  ServiceBitsOfInterestServiceBitsN)r?   r@   rA   r)  r*  r   rc   r5   r5   r5   r6   r  	  rR  r  c                   @   rn   )NetrLogonSetServiceBitsResponser.  N)r?   r@   rA   r   rc   r5   r5   r5   r6   r  	  rp   r  c                   @   rD  )#NetrLogonGetTimeServiceParentDomain#   r<  NrF  r5   r5   r5   r6   r  	  rG  r  c                   @   r,  )+NetrLogonGetTimeServiceParentDomainResponser   PdcSameSiter.  N)r?   r@   rA   r   r   rn  rc   r5   r5   r5   r6   r  	  r   r  c                   @   ,   e Zd ZdZdefdefdefdeffZdS )NetrLogonControl2Exr  r<  FunctionCoder  r]   Nr?   r@   rA   r)  r*  r   rh  rc   r5   r5   r5   r6   r   
  r  r  c                   @   ru   )NetrLogonControl2ExResponser   r.  Nr?   r@   rA   rh  rn  rc   r5   r5   r5   r6   r  	
  ry   r  c                   @   r  )NetrLogonControl2r  r<  r  r  r]   Nr  r5   r5   r5   r6   r  
  r  r  c                   @   ru   )NetrLogonControl2Responser   r.  Nr  r5   r5   r5   r6   r  
  ry   r  c                   @   r  )NetrLogonControlrY   r<  r  r  r]   Nr  r5   r5   r5   r6   r   
  r  r  c                   @   ru   )NetrLogonControlResponser   r.  Nr  r5   r5   r5   r6   r  )
  ry   r  c                   @   r  )NetrLogonUasLogonr   r<  r   r!  Nr?   r@   rA   r)  r*  r   rc   r5   r5   r5   r6   r  0
  rR  r  c                   @   ru   )NetrLogonUasLogonResponser  r.  N)r?   r@   rA   r  rn  rc   r5   r5   r5   r6   r  8
  ry   r  c                   @   r  )NetrLogonUasLogoffr7   r<  r   r!  Nr  r5   r5   r5   r6   r  ?
  rR  r  c                   @   ru   )NetrLogonUasLogoffResponseLogoffInformationr.  N)r?   r@   rA   r  rn  rc   r5   r5   r5   r6   r  G
  ry   r  r  r  r  r  r  r  r  r  r  r2  r  r}  rO  r  )
rU  rJ  r  rV  rX  r  r  r  r  r  c                 C   s(   | t kr| S | dd  dkr| d S | S )N )r   )stringr5   r5   r6   checkNullString
  s
   r  c                    s8   t  }t||d< t||d< ||d< | |I d H S )Nrd  r  re  )rc  r  request)dceprimaryNamecomputerNamer  r  r5   r5   r6   hNetrServerReqChallenge
  s   r  c                    T   t  }t||d< t||d< ||d< ||d< t||d< ||d< | |I d H S Nrd  r  rk  rl  r  rm  )rj  r  r  r  r  accountNamesecureChannelTyper  clientCredentialnegotiateFlagsr  r5   r5   r6   hNetrServerAuthenticate3
     r  c           	         s`   t  }t||d< t||d< ||d< t||d< ||d< t||d< ||d< | |I d H S )Nr  r  r(  r   r   r   r   )r'  r  r  )	r  r  r  allowableAccountControlBits
domainName
domainGuidsiteNameflagsr  r5   r5   r6   hDsrGetDcNameEx2
  s   r
  c                    H   t  }t||d< t||d< ||d< ||d< ||d< | |I d H S )Nr  r   r   r   r   )r1  r  r  )r  r  r  r  r  r	  r  r5   r5   r6   hDsrGetDcNameEx
     r  c                    r  )Nr  r   r   r8  r   )r7  r  r  )r  r  r  r  siteGuidr	  r  r5   r5   r6   hDsrGetDcName
  r  r  c                    0   t  }t||d< t||d< | |I d H S Nr<  r   )rA  r  r  r  
serverNamer  r  r5   r5   r6   hNetrGetAnyDCName
  
   r  c                    r  r  )r;  r  r  r  r5   r5   r6   hNetrGetDCName
  r  r  c                    $   t  }t||d< | |I d H S )Nr  )rE  r  r  )r  r  r  r5   r5   r6   hDsrGetSiteName
     r  c                    r  )Nr<  )rI  r  r  )r  r  r  r5   r5   r6   hDsrGetDcSiteCoverageW
  r  r  c                    r  r  )rt  r  r  r  r5   r5   r6   hNetrServerAuthenticate2
  r  r  c                    sL   t  }t||d< t||d< ||d< ||d< t||d< | |I d H S )Nrd  r  rk  rl  r  )rv  r  r  )r  r  r  r   r  r  r  r5   r5   r6   hNetrServerAuthenticate
  s   r  c                    L   t  }t||d< t||d< ||d< t||d< ||d< | |I d H S )Nrd  r  r~  r  r]  )r|  r  r  )r  r  r  accountTyper  authenticatorr  r5   r5   r6   hNetrServerPasswordGet
     r   c                    r  Nr  r  rk  r  r]  )r  r  r  r  trustedDcNamer  r   r  r  r  r5   r5   r6   hNetrServerTrustPasswordsGet
  r!  r%  c                    sT   t  }t||d< t||d< ||d< t||d< ||d< ||d< | |I d H S )Nrd  r  rk  r  r]  ry  )rx  r  r  )r  r  r  r   r  r  clearNewPasswordBlobr  r5   r5   r6   hNetrServerPasswordSet2
  s   r'  c                    s  t  }t||d< t||d< ||d< |dkr%d|d d< d|d d< n||d< d	|d
< |d	krpd	|d d< t|d d d< t|d d d< d|d d d< t|d d d< t|d d d< t|d d d< t|d d d< nd|d d< t|d d d< | |I d H S )Nr<  r  r]  r              rb  rw   rx   r7   r  r  r   r   r   r   r  r   r   r   r   r   rJ   r   r   )r  r  r   r  )r  r  r  r  returnAuthenticatorlevelr  r5   r5   r6   hNetrLogonGetDomainInfo  s,   r+  c                    sj   t  }t||d< t||d< ||d< |dkr%d|d d< d|d d< n||d< ||d	< | |I d H S )
Nr<  r  r]  r   r(  rb  rw   rx   r  )r  r  r  )r  r  r  r  r)  
queryLevelr  r5   r5   r6   hNetrLogonGetCapabilities  s   r-  c                    r  r"  )r  r  r  r#  r5   r5   r6   hNetrServerGetTrustInfo,  r!  r.  r/   )F)r  r  F)r   r7   (  structr   sixr   aiosmb.dcerpc.v5.ndrr   r   r   r   r	   r
   r   r   aiosmb.dcerpc.v5.dtypesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   aiosmb.dcerpc.v5r   aiosmb.wintypes.ntstatusr   aiosmb.dcerpc.v5.uuidr   aiosmb.dcerpc.v5.enumr   aiosmb.dcerpc.v5.samrr    aiosmb.dcerpc.v5.lsadr!   aiosmb.dcerpc.v5.rpcrtr"   aiosmb.dcerpc.v5.structurer#   aiosmbr$   LOGunicrypto.symmetricr%   r&   r'   r(   r)   r*   unicrypto.hashlibr+   	unicryptor,   r-   MSRPC_UUID_NRPCr.   NlDnsLdapAtSiteNlDnsGcAtSiteNlDnsDsaCnameNlDnsKdcAtSiteNlDnsDcAtSiteNlDnsRfc1510KdcAtSiteNlDnsGenericGcAtSiteNlDnsDomainNameNlDnsDomainNameAliasNlDnsForestNameNlDnsForestNameAliasNlDnsNdncDomainNameNlDnsRecordNameVER_SUITE_BACKOFFICEVER_SUITE_BLADEVER_SUITE_COMPUTE_SERVERVER_SUITE_DATACENTERVER_SUITE_ENTERPRISEVER_SUITE_EMBEDDEDNTVER_SUITE_PERSONALVER_SUITE_SINGLEUSERTSVER_SUITE_SMALLBUSINESS"VER_SUITE_SMALLBUSINESS_RESTRICTEDVER_SUITE_STORAGE_SERVERVER_SUITE_TERMINALVER_NT_DOMAIN_CONTROLLERVER_NT_SERVERVER_NT_WORKSTATIONNETLOGON_UAS_LOGON_ACCESSNETLOGON_UAS_LOGOFF_ACCESSNETLOGON_CONTROL_ACCESSNETLOGON_QUERY_ACCESSNETLOGON_SERVICE_ACCESSNETLOGON_FTINFO_ACCESSNETLOGON_WKSTA_RPC_ACCESSNETLOGON_CONTROL_QUERYNETLOGON_CONTROL_REPLICATENETLOGON_CONTROL_SYNCHRONIZENETLOGON_CONTROL_PDC_REPLICATENETLOGON_CONTROL_REDISCOVERNETLOGON_CONTROL_TC_QUERY!NETLOGON_CONTROL_TRANSPORT_NOTIFYNETLOGON_CONTROL_FIND_USER NETLOGON_CONTROL_CHANGE_PASSWORDNETLOGON_CONTROL_TC_VERIFYNETLOGON_CONTROL_FORCE_DNS_REGNETLOGON_CONTROL_QUERY_DNS_REG"NETLOGON_CONTROL_BACKUP_CHANGE_LOGNETLOGON_CONTROL_TRUNCATE_LOGNETLOGON_CONTROL_SET_DBFLAGNETLOGON_CONTROL_BREAKPOINTr=  r*  r\   rn  rd   rf   ro   r1  r  rq   rt   rv   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-  r2  r3  r4  r5  r9  r:  rB  rJ  rM  rO  ro  rQ  rS  rT  rU  rW  rp  rq  rr  rs  rv  rw  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@  rB  rF  rG  rH  rK  rU  rX  r]  r^  r_  rb  rg  rh  rk  ro  rp  ru  rv  r~  r  r  r  r  r  r  r  r  r  r  r   NL_AUTH_MESSAGE_DNS_DOMAINNL_AUTH_MESSAGE_DNS_HOSTr!  NL_AUTH_MESSAGE_REQUESTNL_AUTH_MESSAGE_RESPONSEr
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r&  r'  r,  r1  r5  r7  r9  r;  r?  rA  rC  rE  rH  rI  rK  rN  rS  rT  rV  rW  rZ  r[  ra  rc  rf  rj  rp  rt  ru  rv  rw  rx  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  OPNUMSr  r  r  r
  r  r  r  r  r  r  r  r  r   r%  r'  r+  r-  r.  r5   r5   r5   r6   <module>   s  (D 



	2
		*

				#


	
	

	

	
				


		
					 !"#$%
&








7	
		
			