o
    àý°j‚s ã                   @   s  d dl Z d dlmZ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mZ d dl 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/m0Z0m1Z1 d dl2Z2d dl3Z3zd dl4m5Z5m6Z6m7Z7 W n e8y§   e1 9d¡ e1 9d¡ Y nw e$dƒZ:G dd„ de,ƒZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGd ZHdZId!ZJd"ZKd#ZLdZMd$ZNd%ZOd&ZPdZQdZRd'ZSd(ZTdZUdZVdZWdZXdZYdZZd)Z[d(Z\dZ]d$Z^dZ_dZ`dZadZbdZcd Zdd*Zed)Zfd+Zgd,Zhd-Zid.Zjd/Zkd0Zld1Zmd2ZneZoeZpG d3d4„ d4eƒZqeZrd d5l)msZs G d6d7„ d7eƒZtG d8d9„ d9eƒZueuZvevZwG d:d;„ d;eƒZxG d<d=„ d=eƒZyG d>d?„ d?eƒZzG d@dA„ dAeƒZ{G dBdC„ dCeƒZ|G dDdE„ dEeƒZ}G dFdG„ dGeƒZ~G dHdI„ dIeƒZG dJdK„ dKeƒZ€G dLdM„ dMeƒZ�G dNdG„ dGeƒZ~G dOdP„ dPeƒZ‚G dQdR„ dReƒZƒG dSdT„ dTe.ƒZ„G dUdV„ dVeƒZ…G dWdX„ dXeƒZ†G dYdZ„ dZeƒZ‡G d[d\„ d\eƒZˆG d]d^„ d^eƒZ‰G d_d`„ d`eƒZŠG dadb„ dbeƒZ‹G dcd`„ d`eƒZŠG ddde„ deeƒZŒG dfdg„ dgeƒZ�G dhdi„ dieƒZŽG djdk„ dkeƒZ�G dldm„ dmeƒZ�G dndo„ doeƒZ‘G dpdq„ dqeƒZ’G drds„ dseƒZ“G dtdu„ dueƒZ”G dvdw„ dwe
ƒZ•G dxdy„ dyeƒZ–G dzd{„ 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ƒZxG d‰dŠ„ dŠeƒZžG d‹dŒ„ dŒeƒZŸG d�dŽ„ dŽeƒZ G d�d�„ d�eƒZ¡G d‘d’„ d’e
ƒZ¢G d“d”„ d”eƒZ£G d•d–„ d–e
ƒZ¤G d—d˜„ d˜eƒZ¥G d™dš„ dšeƒZ¦G d›dœ„ dœeƒZ§G d�dž„ džeƒZ¨G dŸd „ d eƒZ©G d¡d¢„ d¢eƒZªG d£d¤„ d¤eƒZ«G d¥d¦„ d¦eƒZ¬G d§d¨„ d¨eƒZ­G d©dª„ dªeƒZ®G d«d¬„ d¬eƒZ¯G d­d®„ d®eƒZ°G d¯d°„ d°e	ƒZ±G d±d²„ d²e
ƒZ²G d³d´„ d´eƒZ³G dµd¶„ d¶eƒZ´G d·d¸„ d¸eƒZµeuZ¶G d¹dº„ dºeƒZ·G d»d¼„ d¼eƒZ¸G d½d¾„ d¾eƒZ¹G d¿dÀ„ dÀeƒZºG dÁdÂ„ dÂeƒZ»G dÃdÄ„ dÄeƒZ¼G dÅdÆ„ dÆeƒZ½G dÇdÈ„ dÈeƒZ¾G dÉdÊ„ dÊeƒZ¿G dËdÌ„ dÌeƒZÀG dÍdÎ„ dÎeƒZÁG dÏdÐ„ dÐeƒZÂG dÑdÒ„ dÒe	ƒZÃG dÓdÔ„ dÔe
ƒZÄG dÕdÖ„ dÖeƒZÅG d×dØ„ dØeƒZÆG dÙdÚ„ dÚeƒZÇG dÛdÜ„ dÜeƒZÈG dÝdÞ„ dÞeƒZÉG dßdà„ dàeƒZÊG dádâ„ dâeƒZËG dãdä„ däeƒZÌG dådæ„ dæeƒZÍG dçdè„ dèeƒZÎG dédê„ dêeƒZÏG dëdì„ dìeƒZÐG dídî„ dîeƒZÑG dïdð„ dðeƒZÒG dñdò„ dòeƒZÓG dódô„ dôeƒZÔ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Ùd dÿl'mÚZÚ eÚZÛG �d �d„ �deƒZÜG �d�d„ �deƒZÝG �d�d„ �deƒZÞG �d�d„ �deƒZßG �d�d	„ �d	eƒZàG �d
�d„ �deƒZáG �d�d„ �deƒZâG �d�d„ �deƒZãG �d�d„ �deƒZäG �d�d„ �deƒZåG �d�d„ �deƒZæG �d�d„ �deƒZçG �d�d„ �deƒZèG �d�d„ �deƒZéG �d�d„ �deƒZêG �d�d„ �deƒZëG �d �d!„ �d!eƒZìG �d"�d#„ �d#eƒZíG �d$�d%„ �d%eƒZîG �d&�d'„ �d'eƒZïG �d(�d)„ �d)eƒZðG �d*�d+„ �d+eƒZñG �d,�d-„ �d-e	ƒZòG �d.�d/„ �d/e
ƒZóG �d0�d1„ �d1e
ƒZôG �d2�d3„ �d3eƒZõG �d4�d5„ �d5eƒZöG �d6�d7„ �d7eƒZ÷G �d8�d9„ �d9eƒZøG �d:�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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d�Zd�Zd�Zd)�Zd(�Zd �Zd�Z�dj�Z�dk�Zd2�Z�dl�Z�dm�ZG �dn�do„ �doe.ƒ�ZG �dp�dq„ �dqe.ƒ�ZG �dr�ds„ �dse.ƒ�Z�dt�du„ �Z �dv�dw„ �Z!�d��dx�dy„�Z"�d��dz�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‘�d’„�Z.�d‚�d“�d”„�Z/�d•�d–„ �Z0�dƒ�d˜�d™„�Z1G �dš�d›„ �d›eƒ�Z2G �dœ�d�„ �d�eƒ�Z3G �dž�dŸ„ �dŸeƒ�Z4G �d �d¡„ �d¡eƒ�Z5G �d¢�d£„ �d£eƒ�Z6G �d¤�d¥„ �d¥eƒ�Z7G �d¦�d§„ �d§eƒ�Z8G �d¨�d©„ �d©eƒ�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 �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ð�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 �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 �d0�d1„ �d1eƒ�Z}G �d2�d3„ �d3eƒ�Z~G �d4�d5„ �d5eƒ�ZG �d6�d7„ �d7eƒ�Z€G �d8�d9„ �d9eƒ�Z�G �d:�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ŠG �dL�dM„ �dMeƒ�Z‹i d �eˆ�e‰f“d�eŠ�e‹f“d�e^�e_f“d�e`�eaf“d�eH�eIf“d�eN�eOf“d*�eb�ecf“d)�ef�egf“d-�e8�e9f“d.�e†�e‡f“�dN�e:�e;f“�dO�e„�e…f“�dP�eL�eMf“d(�ed�eef“�dQ�eh�eif“�dR�e‚�eƒf“�dk�en�eof“i �dS�e6�e7f“�dT�eX�eYf“d�e~�ef“�dU�ev�ewf“�dV�ex�eyf“d�ez�e{f“�dm�eJ�eKf“�dW�e4�e5f“d�e<�e=f“�dX�eV�eWf“d�eP�eQf“�dY�eR�eSf“d�e|�e}f“�dZ�e@�eAf“d�e2�e3f“�d[�e€�e�f“d�el�emf“¥�eB�eCf�e>�e?f�eZ�e[f�ej�ekf�eD�eEf�eT�eUf�er�esf�ep�eqf�e\�e]f�et�euf�d\œ
¥�ZŒ�d]�d^„ �Z��d_�d`„ �ZŽ�da�db„ �Z��dc�dd„ �Z��de�df„ �Z‘�dg�dh„ �Z’�di�dj„ �Z“�dk�dl„ �Z”�dm�dn„ �Z•�do�dp„ �Z–�dq�dr„ �Z—�ds�dt„ �Z˜�du�dv„ �Z™�dw�dx„ �Zš�dy�dz„ �Z›�d„�d{�d|„�Zœ�d„�d}�d~„�Z��d�d€„ �ZždS (…  é    N)ÚpackÚunpack)Ú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Ú	ULONGLONG)Úsystem_errorsÚ	nt_errors)Úuuidtup_to_bin)ÚEnum)ÚOLD_LARGE_INTEGER)ÚPLSA_FOREST_TRUST_INFORMATION)ÚDCERPCException)Ú	Structure)ÚntlmÚcryptoÚLOG)ÚDESÚAESÚARC4zDWarning: You don't have any crypto installed. You need pycryptodomexz+See https://pypi.org/project/pycryptodomex/)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© r2   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/nrpc.pyr-   4   s   zDCERPCSessionError.__init__c                 C   s|   | j }|tjv rtj| d }tj| d }d| j ||f S |tjv r9tj| d }tj| d }d| j ||f S d| j  S )Nr   é   z'NRPC SessionError: code: 0x%x - %s - %sz+NRPC SessionError: unknown error code: 0x%x)r0   r   ÚERROR_MESSAGESr   )r.   ÚkeyÚerror_msg_shortÚerror_msg_verboser2   r2   r3   Ú__str__7   s   


zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r-   r9   r2   r2   r2   r3   r+   3   ó    
r+   é   é   é   é   é    é"   é$   r4   é   é   é   é   é   i   i @  é€   é@   é   é   i    é   é   é   é	   é
   é   é   iüÿ  iýÿ  éþÿ  iÿÿ  c                   @   s   e Zd ZdZdd„ ZdS )ÚCYPHER_BLOCK))ÚDataz8s=b""c                 C   ó   dS ©Nr4   r2   ©r.   r2   r2   r3   ÚgetAlignment•   ó   zCYPHER_BLOCK.getAlignmentN)r:   r;   r<   Ú	structurer[   r2   r2   r2   r3   rV   ‘   s    rV   )ÚSTRINGc                   @   ó   e Zd Zddd„ZdS )ÚCYPHER_BLOCK_ARRAYr   c                 C   s   t tƒ ƒd S )NrE   ©ÚlenrV   ©r.   ÚdataÚoffsetr2   r2   r3   Ú
getDataLenŸ   s   zCYPHER_BLOCK_ARRAY.getDataLenN©r   ©r:   r;   r<   rf   r2   r2   r2   r3   r`   ž   ó    r`   c                   @   ó   e Zd ZdeffZdS )ÚLM_OWF_PASSWORDrW   N)r:   r;   r<   r`   r]   r2   r2   r2   r3   rk   ¢   ó    ÿrk   c                   @   s   e Zd ZdZddd„ZdS )ÚUCHAR_FIXED_ARRAYr4   r   c                 C   s
   t tƒ ƒS r,   ra   rc   r2   r2   r3   rf   ®   s   
úUCHAR_FIXED_ARRAY.getDataLenNrg   )r:   r;   r<   Úalignrf   r2   r2   r2   r3   rm   ¬   s    rm   c                   @   s   e Zd ZdeffZdd„ ZdS )ÚNETLOGON_CREDENTIALrW   c                 C   rX   rY   r2   rZ   r2   r2   r3   r[   µ   r\   z NETLOGON_CREDENTIAL.getAlignmentN)r:   r;   r<   rm   r]   r[   r2   r2   r2   r3   rp   ±   s    ÿrp   c                   @   ó   e Zd ZdefdeffZdS )ÚNETLOGON_AUTHENTICATORÚ
CredentialÚ	TimestampN)r:   r;   r<   rp   r   r]   r2   r2   r2   r3   rr   ¹   ó    þrr   c                   @   rj   )ÚPNETLOGON_AUTHENTICATORrW   N)r:   r;   r<   rr   Úreferentr2   r2   r2   r3   rv   ¿   rl   rv   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;   r<   r   r   r   r]   r2   r2   r2   r3   rx   Å   ó    ÷rx   c                   @   rj   )ÚPDOMAIN_CONTROLLER_INFOWrW   N)r:   r;   r<   rx   rw   r2   r2   r2   r3   rƒ   Ò   rl   rƒ   c                   @   ó   e Zd ZeZdS ©ÚRPC_UNICODE_STRING_ARRAYN©r:   r;   r<   r   Úitemr2   r2   r2   r3   r†   Ø   ó    r†   c                   @   rj   )ÚPRPC_UNICODE_STRING_ARRAYrW   N)r:   r;   r<   r†   rw   r2   r2   r2   r3   rŠ   Û   rl   rŠ   c                   @   rq   )ÚNL_SITE_NAME_ARRAYÚ
EntryCountÚ	SiteNamesN©r:   r;   r<   r   rŠ   r]   r2   r2   r2   r3   r‹   à   ru   r‹   c                   @   rj   )ÚPNL_SITE_NAME_ARRAYrW   N)r:   r;   r<   r‹   rw   r2   r2   r2   r3   r�   æ   rl   r�   c                   @   r„   r…   r‡   r2   r2   r2   r3   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Ž   r2   r2   r2   r3   r�   ï   ó
    ýr�   c                   @   rj   )ÚPNL_SITE_NAME_EX_ARRAYrW   N)r:   r;   r<   r�   rw   r2   r2   r2   r3   r“   ö   rl   r“   c                   @   ó   e Zd ZdZdS )ÚIPv4Address))ÚAddressFamilyú<H=0)ÚPortr—   )ÚAddressú<L=0)ÚPaddingrš   N)r:   r;   r<   r]   r2   r2   r2   r3   r•   ý   r‰   r•   c                   @   r”   )ÚUCHAR_ARRAYÚcN)r:   r;   r<   rˆ   r2   r2   r2   r3   rœ     r‰   rœ   c                   @   rj   )ÚPUCHAR_ARRAYrW   N)r:   r;   r<   rœ   rw   r2   r2   r2   r3   rž     rl   rž   c                   @   rq   )ÚNL_SOCKET_ADDRESSÚ
lpSockaddrÚiSockaddrLengthN)r:   r;   r<   rž   r   r]   r2   r2   r2   r3   rŸ     ru   rŸ   c                   @   r„   )ÚNL_SOCKET_ADDRESS_ARRAYN)r:   r;   r<   rŸ   rˆ   r2   r2   r2   r3   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;   r<   r   r   r   r]   r2   r2   r2   r3   r£     ó    ùr£   c                   @   r„   )ÚNL_DNS_NAME_INFO_ARRAYN)r:   r;   r<   r£   rˆ   r2   r2   r2   r3   r«   #  r‰   r«   c                   @   rj   )ÚPNL_DNS_NAME_INFO_ARRAYrW   N)r:   r;   r<   r«   rw   r2   r2   r2   r3   r¬   &  rl   r¬   c                   @   rq   )r«   rŒ   ÚDnsNamesInfoN)r:   r;   r<   r   r¬   r]   r2   r2   r2   r3   r«   +  ru   c                   @   rq   )ÚNETLOGON_LSA_POLICY_INFOÚLsaPolicySizeÚ	LsaPolicyN©r:   r;   r<   r   rž   r]   r2   r2   r2   r3   r®   5  ru   r®   c                   @   rj   )ÚPNETLOGON_LSA_POLICY_INFOrW   N)r:   r;   r<   r®   rw   r2   r2   r2   r3   r²   ;  rl   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;   r<   r®   r   r   r   r]   r2   r2   r2   r3   r³   A  ó"    ñr³   c                   @   rj   )ÚPNETLOGON_WORKSTATION_INFOrW   N)r:   r;   r<   r³   rw   r2   r2   r2   r3   rÃ   T  rl   rÃ   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚNL_TRUST_PASSWORD_FIXED_ARRAYr   c                 C   rX   )Ni  r2   rc   r2   r2   r3   rf   [  r\   z(NL_TRUST_PASSWORD_FIXED_ARRAY.getDataLenc                 C   rX   rY   r2   rZ   r2   r2   r3   r[   ^  r\   z*NL_TRUST_PASSWORD_FIXED_ARRAY.getAlignmentNrg   )r:   r;   r<   rf   r[   r2   r2   r2   r3   rÄ   Z  r=   rÄ   c                   @   r_   )ÚWCHAR_ARRAYr   c                 C   rX   )NrL   r2   rc   r2   r2   r3   rf   b  r\   zWCHAR_ARRAY.getDataLenNrg   rh   r2   r2   r2   r3   rÅ   a  ri   rÅ   c                   @   rq   )ÚNL_TRUST_PASSWORDÚBufferÚLengthN)r:   r;   r<   rÅ   r   r]   r2   r2   r2   r3   rÆ   e  ru   rÆ   c                   @   rj   )ÚPNL_TRUST_PASSWORDrW   N)r:   r;   r<   rÆ   rw   r2   r2   r2   r3   rÉ   k  rl   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;   r<   r   r]   r2   r2   r2   r3   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©r4   rE   N)r:   r;   r<   r   Ú	commonHdrrÃ   r²   Úunionr2   r2   r2   r3   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;   r<   r   r   r   r   r]   r2   r2   r2   r3   rØ   „  ó    órØ   c                   @   r„   )ÚNETLOGON_ONE_DOMAIN_INFO_ARRAYN)r:   r;   r<   rØ   rˆ   r2   r2   r2   r3   rà   •  r‰   rà   c                   @   rj   )ÚPNETLOGON_ONE_DOMAIN_INFO_ARRAYrW   N)r:   r;   r<   rà   rw   r2   r2   r2   r3   rá   ˜  rl   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;   r<   rØ   r   rá   r®   r   r]   r2   r2   r2   r3   râ   ž  s    ôrâ   c                   @   rj   )ÚPNETLOGON_DOMAIN_INFOrW   N)r:   r;   r<   râ   rw   r2   r2   r2   r3   rè   ®  rl   rè   c                   @   rÏ   )ÚNETLOGON_DOMAIN_INFORMATIONrÑ   Ú
DomainInforÓ   rÔ   N)r:   r;   r<   r   rÕ   rè   r²   rÖ   r2   r2   r2   r3   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   r4   rE   rF   rG   rH   rI   rP   N)r:   r;   r<   ÚNullSecureChannelÚMsvApSecureChannelÚWorkstationSecureChannelÚTrustedDnsDomainSecureChannelÚTrustedDomainSecureChannelÚUasServerSecureChannelÚServerSecureChannelÚCdcServerSecureChannelr2   r2   r2   r3   Ú	enumItemsÀ  s    rõ   N©r:   r;   r<   r    rõ   r2   r2   r2   r3   rì   ¿  ó    rì   c                   @   ó"   e Zd ZdeffZddefiZdS )ÚNETLOGON_CAPABILITIESrÑ   r4   ÚServerCapabilitiesN©r:   r;   r<   r   rÕ   r   rÖ   r2   r2   r2   r3   rù   Ë  ó
    ÿÿrù   c                   @   r_   )rm   r   c                 C   rX   )NrJ   r2   rc   r2   r2   r3   rf   Ö  r\   rn   Nrg   rh   r2   r2   r2   r3   rm   Õ  ri   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;   r<   r   rm   r   r   r]   r2   r2   r2   r3   rý   Ù  s    õrý   c                   @   rj   )ÚPNL_OSVERSIONINFO_V1rW   N)r:   r;   r<   rý   rw   r2   r2   r2   r3   r	  è  rl   r	  c                   @   rj   )ÚPLPWSTRrW   N)r:   r;   r<   r   rw   r2   r2   r2   r3   r
  î  rl   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;   r<   r
  r	  r]   r2   r2   r2   r3   r  ó  r’   r  c                   @   rø   )Ú!NL_IN_CHAIN_SET_CLIENT_ATTRIBUTESrÑ   r4   ÚV1N)r:   r;   r<   r   rÕ   r  rÖ   r2   r2   r2   r3   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;   r<   r
  r   r]   r2   r2   r2   r3   r    r’   r  c                   @   rø   )Ú"NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTESrÑ   r4   r  N)r:   r;   r<   r   rÕ   r  rÖ   r2   r2   r2   r3   r    rü   r  c                   @   r_   )ÚCHAR_FIXED_8_ARRAYr   c                 C   rX   ©NrO   r2   rc   r2   r2   r3   rf     r\   zCHAR_FIXED_8_ARRAY.getDataLenNrg   rh   r2   r2   r2   r3   r    ri   r  c                   @   rj   )ÚLM_CHALLENGErW   N)r:   r;   r<   r  r]   r2   r2   r2   r3   r    rl   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;   r<   r   r   r!   r]   r2   r2   r2   r3   r  !  ó    ûr  c                   @   rj   )ÚPNETLOGON_LOGON_IDENTITY_INFOrW   N)r:   r;   r<   r  rw   r2   r2   r2   r3   r  *  rl   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;   r<   r  r   r   rž   r]   r2   r2   r2   r3   r!  0  ó    ür!  c                   @   rj   )ÚPNETLOGON_GENERIC_INFOrW   N)r:   r;   r<   r!  rw   r2   r2   r2   r3   r'  8  rl   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;   r<   r  rk   ÚNT_OWF_PASSWORDr]   r2   r2   r2   r3   r)  >  r’   r)  c                   @   rj   )ÚPNETLOGON_INTERACTIVE_INFOrW   N)r:   r;   r<   r)  rw   r2   r2   r2   r3   r.  E  rl   r.  c                   @   r(  )ÚNETLOGON_SERVICE_INFOr"  r*  r+  Nr,  r2   r2   r2   r3   r/  K  r’   r/  c                   @   rj   )ÚPNETLOGON_SERVICE_INFOrW   N)r:   r;   r<   r/  rw   r2   r2   r2   r3   r0  R  rl   r0  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;   r<   r  r  r^   r]   r2   r2   r2   r3   r1  X  r&  r1  c                   @   rj   )ÚPNETLOGON_NETWORK_INFOrW   N)r:   r;   r<   r1  rw   r2   r2   r2   r3   r5  `  rl   r5  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.enumItemsr4   rE   rF   rG   rH   rI   rP   N)
r:   r;   r<   ÚNetlogonInteractiveInformationÚNetlogonNetworkInformationÚNetlogonServiceInformationÚNetlogonGenericInformationÚ(NetlogonInteractiveTransitiveInformationÚ$NetlogonNetworkTransitiveInformationÚ$NetlogonServiceTransitiveInformationr2   r2   r2   r3   rõ   g  s    rõ   Nrö   r2   r2   r2   r3   r6  f  r÷   r6  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;   r<   r6  r7  r.  r;  r9  r0  r=  r8  r5  r<  r:  r'  rÖ   r2   r2   r2   r3   r>  q  s    






ùr>  c                   @   rq   )ÚNETLOGON_SID_AND_ATTRIBUTESÚSidÚ
AttributesN)r:   r;   r<   r   r   r]   r2   r2   r2   r3   rF  }  ru   rF  c                   @   rq   )Ú!NETLOGON_VALIDATION_GENERIC_INFO2r$  ÚValidationDataNr±   r2   r2   r2   r3   rI  „  ru   rI  c                   @   rj   )Ú"PNETLOGON_VALIDATION_GENERIC_INFO2rW   N)r:   r;   r<   rI  rw   r2   r2   r2   r3   rK  Š  rl   rK  c                   @   ó   e Zd ZdefdeffZdS )ÚGROUP_MEMBERSHIPÚ
RelativeIdrH  NrÎ   r2   r2   r2   r3   rM  “  ru   rM  c                   @   r„   )ÚGROUP_MEMBERSHIP_ARRAYN)r:   r;   r<   rM  rˆ   r2   r2   r2   r3   rO  ™  r‰   rO  c                   @   rj   )ÚPGROUP_MEMBERSHIP_ARRAYrW   N)r:   r;   r<   rO  rw   r2   r2   r2   r3   rP  œ  rl   rP  c                   @   r_   )Ú
LONG_ARRAYr   c                 C   rX   )Né(   r2   rc   r2   r2   r3   rf   £  r\   zLONG_ARRAY.getDataLenNrg   rh   r2   r2   r2   r3   rQ  ¢  ri   rQ  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;   r<   r!   r   r   r   rP  ÚUSER_SESSION_KEYr   rQ  r]   r2   r2   r2   r3   rS  ¦  s4    èrS  c                   @   rj   )ÚPNETLOGON_VALIDATION_SAM_INFOrW   N)r:   r;   r<   rS  rw   r2   r2   r2   r3   rl  Â  rl   rl  c                   @   r„   )Ú!NETLOGON_SID_AND_ATTRIBUTES_ARRAYN)r:   r;   r<   rF  rˆ   r2   r2   r2   r3   rm  È  r‰   rm  c                   @   rj   )Ú"PNETLOGON_SID_AND_ATTRIBUTES_ARRAYrW   N)r:   r;   r<   rm  rw   r2   r2   r2   r3   rn  Ë  rl   rn  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_INFO2rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  r  ri  rj  ÚSidCountÚ	ExtraSidsN)r:   r;   r<   r!   r   r   r   rP  rk  r   rQ  rn  r]   r2   r2   r2   r3   ro  Ð  s8    æro  c                   @   rj   )ÚPNETLOGON_VALIDATION_SAM_INFO2rW   N)r:   r;   r<   ro  rw   r2   r2   r2   r3   rr  î  rl   rr  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_INFO4rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  r  ri  ÚLMKeyÚUserAccountControlÚSubAuthStatusÚLastSuccessfulILogonÚLastFailedILogonÚFailedILogonCountÚ	Reserved4rp  rq  ÚDnsLogonDomainNameÚUpnÚExpansionString1ÚExpansionString2ÚExpansionString3ÚExpansionString4ÚExpansionString5ÚExpansionString6ÚExpansionString7ÚExpansionString8ÚExpansionString9ÚExpansionString10N)r:   r;   r<   r!   r   r   r   rP  rk  r   r  rn  r]   r2   r2   r2   r3   rs  ô  s´    ÿþýüûúùø	÷
öõôóòñðïîíìëêéçæåäãâá!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.
Òrs  c                   @   rj   )ÚPNETLOGON_VALIDATION_SAM_INFO4rW   N)r:   r;   r<   rs  rw   r2   r2   r2   r3   r‡  &  rl   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.enumItemsr4   rE   rF   rG   rH   rI   N)	r:   r;   r<   ÚNetlogonValidationUasInfoÚNetlogonValidationSamInfoÚNetlogonValidationSamInfo2ÚNetlogonValidationGenericInfoÚNetlogonValidationGenericInfo2ÚNetlogonValidationSamInfo4r2   r2   r2   r3   rõ   -  s    rõ   Nrö   r2   r2   r2   r3   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;   r<   rˆ  rŠ  rl  r‹  rr  r�  rK  rŽ  r‡  rÖ   r2   r2   r2   r3   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;   r<   r   r!   r]   r2   r2   r2   r3   r”  ?  s    úr”  c                   @   r„   )ÚULONG_ARRAYN)r:   r;   r<   r   rˆ   r2   r2   r2   r3   rš  J  r‰   rš  c                   @   rj   )ÚPULONG_ARRAYrW   N)r:   r;   r<   rš  rw   r2   r2   r2   r3   r›  M  rl   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;   r<   r   r›  rŠ   r”  r   rž   r   r]   r2   r2   r2   r3   rœ  R  s&    ïrœ  c                   @   rj   )ÚPNETLOGON_DELTA_ACCOUNTSrW   N)r:   r;   r<   rœ  rw   r2   r2   r2   r3   r§  g  rl   r§  c                   @   rj   )ÚNLPR_SID_INFORMATIONÚ
SidPointerN)r:   r;   r<   r   r]   r2   r2   r2   r3   r¨  m  rl   r¨  c                   @   r„   )ÚNLPR_SID_INFORMATION_ARRAYN)r:   r;   r<   r¨  rˆ   r2   r2   r2   r3   rª  s  r‰   rª  c                   @   rj   )ÚPNLPR_SID_INFORMATION_ARRAYrW   N)r:   r;   r<   rª  rw   r2   r2   r2   r3   r«  v  rl   r«  c                   @   rq   )ÚNLPR_SID_ARRAYÚCountÚSidsN)r:   r;   r<   r   r«  rw   r2   r2   r2   r3   r¬  {  ru   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;   r<   r¬  r   r]   r2   r2   r2   r3   r¯  ‚  r  r¯  c                   @   rj   )ÚPNETLOGON_DELTA_ALIAS_MEMBERrW   N)r:   r;   r<   r¯  rw   r2   r2   r2   r3   r±  ‹  rl   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;   r<   r   r   r   r]   r2   r2   r2   r3   r³  ‘  r‚   r³  c                   @   rj   )ÚPNETLOGON_DELTA_DELETE_GROUPrW   N)r:   r;   r<   r³  rw   r2   r2   r2   r3   r¶  ž  rl   r¶  c                
   @   r²  )ÚNETLOGON_DELTA_DELETE_USERr´  r¦  rÜ   r¼   r½   rÝ   rÞ   rÀ   rÁ   Nrµ  r2   r2   r2   r3   r·  ¤  r‚   r·  c                   @   rj   )ÚPNETLOGON_DELTA_DELETE_USERrW   N)r:   r;   r<   r·  rw   r2   r2   r2   r3   r¸  ±  rl   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;   r<   r   r!   r   r   r   rž   r]   r2   r2   r2   r3   r¹  ·  s,    ìr¹  c                   @   rj   )ÚPNETLOGON_DELTA_DOMAINrW   N)r:   r;   r<   r¹  rw   r2   r2   r2   r3   rÄ  Ï  rl   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ÚNamerN  rH  ÚAdminCommentr£  r¤  r¥  r¦  rÜ   r¼   r½   rÝ   rÞ   rÀ   rÁ   N)r:   r;   r<   r   r   r   r   r]   r2   r2   r2   r3   rÅ  Õ  rÂ   rÅ  c                   @   rj   )ÚPNETLOGON_DELTA_GROUPrW   N)r:   r;   r<   rÅ  rw   r2   r2   r2   r3   rÈ  è  rl   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;   r<   r   r   r]   r2   r2   r2   r3   rÊ  î  ó    örÊ  c                   @   rj   )ÚPNETLOGON_DELTA_RENAME_GROUPrW   N)r:   r;   r<   rÊ  rw   r2   r2   r2   r3   rÏ  ü  rl   rÏ  )ÚSAMPR_LOGON_HOURSc                   @   r(  )ÚNLPR_USER_PRIVATE_INFOÚSensitiveDatar$  rW   N)r:   r;   r<   r   r   rž   r]   r2   r2   r2   r3   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[  rb  rc  r^  r_  Ú
ScriptPathrÇ  ÚWorkStationsÚ	LastLogonÚ
LastLogoffÚ
LogonHoursra  r`  rW  ÚAccountExpiresru  ÚEncryptedNtOwfPasswordÚEncryptedLmOwfPasswordÚNtPasswordPresentÚLmPasswordPresentÚPasswordExpiredÚUserCommentÚ
ParametersÚCountryCodeÚCodePageÚPrivateDatar£  r¤  r¥  r]  rÜ   r¼   r½   rÝ   rÞ   rÀ   rÁ   N)r:   r;   r<   r   r   r!   ÚNLPR_LOGON_HOURSr   rž   r   rÑ  r   r]   r2   r2   r2   r3   rÓ    sœ    ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&
ÚrÓ  c                   @   rj   )ÚPNETLOGON_DELTA_USERrW   N)r:   r;   r<   rÓ  rw   r2   r2   r2   r3   rå  8  rl   rå  c                   @   rÉ  )ÚNETLOGON_RENAME_USERrË  rÌ  r¦  rÜ   r¼   r½   rÝ   rÞ   rÀ   rÁ   NrÍ  r2   r2   r2   r3   ræ  >  rÎ  ræ  c                   @   rj   )ÚPNETLOGON_DELTA_RENAME_USERrW   N)r:   r;   r<   ræ  rw   r2   r2   r2   r3   rç  L  rl   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°  rH  ÚMemberCountrÝ   rÞ   rÀ   rÁ   N)r:   r;   r<   r›  r   r]   r2   r2   r2   r3   rè  R  rª   rè  c                   @   rj   )ÚPNETLOGON_DELTA_GROUP_MEMBERrW   N)r:   r;   r<   rè  rw   r2   r2   r2   r3   rê  ]  rl   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Æ  rN  r£  r¤  r¥  ÚCommentrÜ   r¼   r½   rÝ   rÞ   rÀ   rÁ   N)r:   r;   r<   r   r   r   rž   r]   r2   r2   r2   r3   rë  c  rß   rë  c                   @   rj   )ÚPNETLOGON_DELTA_ALIASrW   N)r:   r;   r<   rë  rw   r2   r2   r2   r3   rí  t  rl   rí  c                   @   rÉ  )ÚNETLOGON_RENAME_ALIASrË  rÌ  r¦  rÜ   r¼   r½   rÝ   rÞ   rÀ   rÁ   NrÍ  r2   r2   r2   r3   rî  z  rÎ  rî  c                   @   rj   )ÚPNETLOGON_DELTA_RENAME_ALIASrW   N)r:   r;   r<   rî  rw   r2   r2   r2   r3   rï  ˆ  rl   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;   r<   r   r!   r   r›  r   r   r”  r   rž   r]   r2   r2   r2   r3   rð  Ž  s.    ërð  c                   @   rj   )ÚPNETLOGON_DELTA_POLICYrW   N)r:   r;   r<   rð  rw   r2   r2   r2   r3   rú  §  rl   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;   r<   r   r   rŠ   r   rž   r]   r2   r2   r2   r3   rû  ­  s     òrû  c                   @   rj   )ÚPNETLOGON_DELTA_TRUSTED_DOMAINSrW   N)r:   r;   r<   rû  rw   r2   r2   r2   r3   rþ  ¿  rl   rþ  c                   @   r„   )ÚUCHAR_ARRAY2N)r:   r;   r<   r   rˆ   r2   r2   r2   r3   rÿ  Å  r‰   rÿ  c                   @   rj   )ÚPUCHAR_ARRAY2rW   N)r:   r;   r<   rÿ  rw   r2   r2   r2   r3   r   È  rl   r   c                   @   r  )ÚNLPR_CR_CIPHER_VALUErÈ   ÚMaximumLengthrÇ   N)r:   r;   r<   r   r   r]   r2   r2   r2   r3   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;   r<   r  r!   r   r   rž   r   r]   r2   r2   r2   r3   r  Õ  rÂ   r  c                   @   rj   )ÚPNETLOGON_DELTA_SECRETrW   N)r:   r;   r<   r  rw   r2   r2   r2   r3   r  è  rl   r  c                   @   rj   )ÚNLPR_MODIFIED_COUNTÚModifiedCountN)r:   r;   r<   r!   r]   r2   r2   r2   r3   r	  î  rl   r	  c                   @   rj   )ÚPNLPR_MODIFIED_COUNTrW   N)r:   r;   r<   r	  rw   r2   r2   r2   r3   r  ó  rl   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.enumItemsr4   rE   rF   rG   rH   rI   rP   rO   rQ   rR   rS   rT   é   é   é   rN   é   é   é   é   é   r>   N)r:   r;   r<   ÚAddOrChangeDomainÚAddOrChangeGroupÚDeleteGroupÚRenameGroupÚAddOrChangeUserÚ
DeleteUserÚ
RenameUserÚChangeGroupMembershipÚAddOrChangeAliasÚDeleteAliasÚRenameAliasÚChangeAliasMembershipÚAddOrChangeLsaPolicyÚAddOrChangeLsaTDomainÚDeleteLsaTDomainÚAddOrChangeLsaAccountÚDeleteLsaAccountÚAddOrChangeLsaSecretÚDeleteLsaSecretÚDeleteGroupByNameÚDeleteUserByNameÚSerialNumberSkipr2   r2   r2   r3   rõ   ú  s.    rõ   Nrö   r2   r2   r2   r3   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;   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   r2   r2   r3   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ÚRidrG  rÆ  N)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   r2   r2   r3   r<  (  sR    
ÿ
þ
ý
ü
û
ú
ù
ø
	÷

ö
õ
ô
ó
ò
ñ
ð
ï




ër<  c                   @   r(  )ÚNETLOGON_DELTA_ENUMÚ	DeltaTypeÚDeltaIDÚ
DeltaUnionN)r:   r;   r<   r  r<  r+  r]   r2   r2   r2   r3   r>  B  r’   r>  c                   @   r„   )ÚNETLOGON_DELTA_ENUM_ARRAY_ARRAYN)r:   r;   r<   r>  rˆ   r2   r2   r2   r3   rB  J  r‰   rB  c                   @   rj   )Ú PNETLOGON_DELTA_ENUM_ARRAY_ARRAYrW   N)r:   r;   r<   rB  rw   r2   r2   r2   r3   rC  M  rl   rC  c                   @   rq   )ÚPNETLOGON_DELTA_ENUM_ARRAYÚCountReturnedÚDeltasN)r:   r;   r<   r   rC  r]   r2   r2   r2   r3   rD  R  ru   rD  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   r4   rE   rF   rG   rH   rI   rP   rO   N)r:   r;   r<   ÚNormalStateÚDomainStateÚ
GroupStateÚUasBuiltInGroupStateÚ	UserStateÚGroupMemberStateÚ
AliasStateÚAliasMemberStateÚSamDoneStater2   r2   r2   r3   rõ   Z  s    rõ   Nrö   r2   r2   r2   r3   rG  Y  r÷   rG  c                   @   rq   )ÚDOMAIN_NAME_BUFFERÚDomainNameByteCountÚDomainNamesNr±   r2   r2   r2   r3   rQ  f  ru   rQ  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;   r<   r   r   r   r   r]   r2   r2   r2   r3   rT  m  s    ørT  c                   @   r„   )ÚDS_DOMAIN_TRUSTSW_ARRAYN)r:   r;   r<   rT  rˆ   r2   r2   r2   r3   rY  z  r‰   rY  c                   @   rj   )ÚPDS_DOMAIN_TRUSTSW_ARRAYrW   N)r:   r;   r<   rY  rw   r2   r2   r2   r3   rZ  }  rl   rZ  c                   @   rq   )ÚNETLOGON_TRUSTED_DOMAIN_ARRAYÚDomainCountÚDomainsN)r:   r;   r<   r   rZ  r]   r2   r2   r2   r3   r[  ‚  ru   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;   r<   r   r›  rŠ   r]   r2   r2   r2   r3   r^  ‰  r&  r^  c                   @   rj   )ÚPNL_GENERIC_RPC_DATArW   N)r:   r;   r<   r^  rw   r2   r2   r2   r3   rc  ‘  rl   rc  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  )rH   rI   rQ   rR   rU   rO   N)r:   r;   r<   r   rÕ   r   rÖ   r2   r2   r2   r3   rd  —  s    ÿ
úrd  c                   @   rq   )ÚNETLOGON_INFO_1Únetlog1_flagsÚnetlog1_pdc_connection_statusN)r:   r;   r<   r   ÚNET_API_STATUSr]   r2   r2   r2   r3   rg  ¦  ru   rg  c                   @   rj   )ÚPNETLOGON_INFO_1rW   N)r:   r;   r<   rg  rw   r2   r2   r2   r3   rk  ¬  rl   rk  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;   r<   r   rj  r   r]   r2   r2   r2   r3   rl  ²  r&  rl  c                   @   rj   )ÚPNETLOGON_INFO_2rW   N)r:   r;   r<   rl  rw   r2   r2   r2   r3   rq  º  rl   rq  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;   r<   r   r]   r2   r2   r2   r3   rr  À  rª   rr  c                   @   rj   )ÚPNETLOGON_INFO_3rW   N)r:   r;   r<   rr  rw   r2   r2   r2   r3   rz  Ë  rl   rz  c                   @   rL  )ÚNETLOGON_INFO_4Únetlog4_trusted_dc_nameÚnetlog4_trusted_domain_nameN)r:   r;   r<   r   r]   r2   r2   r2   r3   r{  Ñ  ru   r{  c                   @   rj   )ÚPNETLOGON_INFO_4rW   N)r:   r;   r<   r{  rw   r2   r2   r2   r3   r~  ×  rl   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)r4   rE   rF   rG   N)
r:   r;   r<   r   rÕ   rk  rq  rz  r~  rÖ   r2   r2   r2   r3   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;   r<   r   r   r]   r2   r2   r2   r3   r„  ê  s$    ðr„  c                   @   rj   )ÚPNETLOGON_VALIDATION_UAS_INFOrW   N)r:   r;   r<   r„  rw   r2   r2   r2   r3   r•  þ  rl   r•  c                   @   rq   )ÚNETLOGON_LOGOFF_UAS_INFOÚDurationr`  N)r:   r;   r<   r   r   r]   r2   r2   r2   r3   r–    ru   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   rX   )NrG   r2   rZ   r2   r2   r3   r[     r\   zUAS_INFO_0.getAlignmentN)r:   r;   r<   r   r]   r[   r2   r2   r2   r3   r˜    s    ýr˜  c                   @   rø   )ÚNETLOGON_DUMMY1rÑ   r4   ÚDummyNrû   r2   r2   r2   r3   rœ    rü   rœ  c                   @   r_   )ÚCHAR_FIXED_16_ARRAYr   c                 C   rX   )NrN   r2   rc   r2   r2   r3   rf      r\   zCHAR_FIXED_16_ARRAY.getDataLenNrg   rh   r2   r2   r2   r3   rž    ri   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$   r-   ©r.   rd   Ú	alignmentr2   r2   r3   r-   >  ó   ÿzNL_AUTH_MESSAGE.__init__©Nr   ©r:   r;   r<   r]   r-   r2   r2   r2   r3   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©  r2   r2   r3   r-   N  r«  zNL_AUTH_SIGNATURE.__init__r¬  r­  r2   r2   r2   r3   r®  C  s    
r®  c                   @   r¢  )ÚNL_AUTH_SHA2_SIGNATURE)	r¯  r±  r³  rµ  r¶  r¹  r»  r¾  )r  z24s=""Nr   c                 C   r¦  rÀ  r¨  r©  r2   r2   r3   r-   _  r«  zNL_AUTH_SHA2_SIGNATURE.__init__r¬  r­  r2   r2   r2   r3   rÂ  S  s    rÂ  c           	      C   s\   |d d… }t  |¡}|dd… }t  |¡}t |tj¡}t |tj¡}| | ¡}| |¡S )NrP   r  )r&   ÚtransformKeyr(   ÚnewÚMODE_ECBÚencrypt)	Ú	inputDataÚSkÚk1Úk3Úk2Úk4ÚCrypt1ÚCrypt2Ú
cipherTextr2   r2   r3   ÚComputeNetlogonCredentiale  s   



rÐ  c                 C   s   d}t  |t j|¡}| | ¡S )Ns                   ©r)   rÄ  ÚMODE_CFBrÆ  )rÇ  rÈ  ÚIVrÍ  r2   r2   r3   ÚComputeNetlogonCredentialAESp  s   
rÔ  c                 C   sP   |d u r
t  | ¡}n|}tj|tjd�}| |¡ | |¡ | ¡ }|d d… S )N©r6   Ú	digestmodrN   )r%   ÚNTOWFv1ÚhmacrÄ  ÚhashlibÚsha256ÚupdateÚdigest)ÚsharedSecretÚclientChallengeÚserverChallengeÚsharedSecretHashÚM4SSÚhmÚ
sessionKeyr2   r2   r3   ÚComputeSessionKeyAESv  s   

rä  c                 C   sj   |d u r
t  | ¡}n|}t d¡}| d¡ | |¡ | |¡ | ¡ }tj|tjd�}| |¡ | ¡ S )NÚmd5r§  ©rÖ  )r%   r×  rÙ  rÄ  rÛ  rÜ  rØ  rå  )rÝ  rÞ  rß  rà  rá  rå  ÚfinalMD5râ  r2   r2   r3   ÚComputeSessionKeyStrongKey…  s   




rè  c                 C   s8   | d@ }| d? d@ }|dO }t d|ƒ}|t d|ƒ7 }|S )Nì   ÿÿ rB   l        z>L)r   )ÚsequenceNumÚsequenceLowÚsequenceHighÚresr2   r2   r3   ÚderiveSequenceNumber–  s   
rî  c                 C   sN   t j|tjd�}| |  ¡ d d… ¡ | |¡ | t|ƒ¡ | ¡ d d… S )NrÕ  rO   )rØ  rÄ  rÙ  rÚ  rÛ  ÚgetDataÚbytesrÜ  )ÚauthSignatureÚmessageÚ
confounderrã  râ  r2   r2   r3   ÚComputeNetlogonSignatureAESŸ  s
   
rô  c                 C   st   t  d¡}| d¡ | |  ¡ d d… ¡ | |¡ | t|ƒ¡ | ¡ }tj|t jd�}| |¡ | ¡ d d… S )Nrå  r§  rO   ræ  )rÙ  rÄ  rÛ  rï  rð  rÜ  rØ  rå  )rñ  rò  ró  rã  rå  rç  râ  r2   r2   r3   ÚComputeNetlogonSignatureMD5¨  s   



rõ  c                 C   ól   t t ¡ ƒ}tƒ }||d< td| d d… ƒd | }|dkr"|dM }td|ƒ}t|| dd …  |ƒ|d< |S ©Nrt   z<IrG   r   ré  rs   )ÚintÚtimerr   r   r   rÔ  ©ÚclientStoredCredentialrã  Ú	timestampÚauthenticatorÚ
credentialr2   r2   r3   ÚComputeNetlogonAuthenticatorAESµ  ó   
rÿ  c                 C   rö  r÷  )rø  rù  rr   r   r   rÐ  rú  r2   r2   r3   ÚComputeNetlogonAuthenticatorÄ  r   r  c                 C   sT   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Úcipherr2   r2   r3   ÚencryptSequenceNumberRC4Ó  s   



r  c                 C   s   t | ||ƒS r,   )r  )rê  r  rã  r2   r2   r3   ÚdecryptSequenceNumberRC4ß  s   r  c                 C   ó2   |d d… |d d…  }t  |t j|¡}| | ¡S r  rÑ  ©rê  r  rã  rÓ  ÚCipherr2   r2   r3   ÚencryptSequenceNumberAESä  ó   
r  c                 C   r  r  )r)   rÄ  rÒ  Údecryptr	  r2   r2   r3   Ú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< d|d< |S )	NFr°  ó    r²  rº  r·  s                           r  )r®  ÚNL_SIGNATURE_HMAC_MD5ÚNL_SEAL_NOT_ENCRYPTEDÚNL_SEAL_RC4rõ  r  rî  rÂ  ÚNL_SIGNATURE_HMAC_SHA256ÚNL_SEAL_AES128rô  r  )rd   ró  rê  r6   ÚaesÚ	signaturer2   r2   r3   ÚSIGNð  s$   

r  c                 C   s  t | ||||ƒ}t|ƒ}t|ƒ}tt|ƒƒD ]
}|| dA ||< qt|ƒ}|du retj|tj	d�}| 
d¡ tj| ¡ tj	d�}	|	 
|¡ |	 ¡ }
t |
¡}| |¡}t |
¡}| | ¡}||d< ||fS || }t |tj|¡}| |¡}| | ¡}||d< ||fS )Néð   Fræ  r§  r¿  )r  rî  Ú	bytearrayÚrangerb   rð  rØ  rÄ  rÙ  rå  rÛ  rÜ  r*   rÆ  r)   rÒ  )rd   ró  rê  r6   r  r  ÚXorKeyÚirâ  r  r  r  ÚcfounderÚ	encryptedrÓ  r2   r2   r3   ÚSEAL  s0   







r  c                 C   s  t |ƒ}t|ƒ}tt|ƒƒD ]
}|| dA ||< qt|ƒ}|du ret|d |d |ƒ}tj|tj	d�}| 
d¡ tj| ¡ tj	d�}| 
|¡ | ¡ }	t |	¡}
|
 |d ¡}t |	¡}
|
 | ¡}||fS t|d |d |ƒ}|| }t |tj|¡}
|
 |d ¡}|
 | ¡}||fS )Nr  Fr·  rº  ræ  r§  r¿  )r®  r  r  rb   rð  r  rØ  rÄ  rÙ  rå  rÛ  rÜ  r*   rÆ  r  r)   rÒ  r  )rd   Ú	auth_datar6   r  r  r  rê  râ  r  r  r  r  ÚplainrÓ  r2   r2   r3   ÚUNSEAL+  s.   





r"  c                 C   sv   | d u rt dƒ‚d}tƒ }|  d¡}|D ]}| d¡}t|ƒ|kr%t dƒ‚| t|ƒ¡ | |¡ q| d¡ t|ƒS )Nzdomain_name cannot be Noneé?   Ú.zutf-8z&Label exceeded max length of 63 bytes.r   )Ú
ValueErrorr  ÚsplitÚencoderb   ÚappendÚextendrð  )Údomain_nameÚMAX_LABEL_LENGTHÚbufÚlabelsÚlabelÚlabel_bytesr2   r2   r3   ÚCompressedUtf8StringI  s   


r0  rÁ  c                 C   s&  t ƒ }t|d< d|d< |dkrUd|v r3ttB |d< | dkr*t| ƒd t|ƒ |d< n>dt|ƒ |d< n5ttB |d< | dkrLt|ƒd t| ƒ d |d< nt|ƒd	 |d< n| dkrdd
t| ƒ d |d< nd|d< |d  tO  < | dkr‰|d  tdt	| ƒƒt| ƒ d 7  < |S |d  d7  < |S )Nr¤  r   r   rÁ  r$  ó    rÇ   s   MYHOST s    MYHOST s
   WORKGROUP s   WORKGROUP MYHOST z<Bs   MYHOST )
r£  ÚNL_AUTH_MESSAGE_REQUESTÚNL_AUTH_MESSAGE_NETBIOS_HOSTÚNL_AUTH_MESSAGE_DNS_DOMAINr   r0  ÚNL_AUTH_MESSAGE_NETBIOS_DOMAINÚ!NL_AUTH_MESSAGE_NETBIOS_HOST_UTF8r   rb   )ÚworkstationÚdomainÚsigningRequiredÚauthr2   r2   r3   ÚgetSSPType1\  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 )
ÚDsrGetDcNameEx2rC   r™  r´  ÚAllowableAccountControlBitsr}   r|   rµ   r   N)	r:   r;   r<   ÚopnumÚPLOGONSRV_HANDLEr   r   r   r]   r2   r2   r2   r3   r<  �  ó    ùr<  c                   @   rq   )ÚDsrGetDcNameEx2ResponseÚDomainControllerInfoÚ	ErrorCodeN©r:   r;   r<   rƒ   rj  r]   r2   r2   r2   r3   rA  �  ru   rA  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;   r<   r>  r?  r   r   r   r]   r2   r2   r2   r3   rF  ”  ó    ûrF  c                   @   rq   )ÚDsrGetDcNameExResponserB  rC  NrD  r2   r2   r2   r3   rJ  ž  ru   rJ  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   NrH  r2   r2   r2   r3   rL  ¥  rI  rL  c                   @   rq   )ÚDsrGetDcNameResponserB  rC  NrD  r2   r2   r2   r3   rN  ¯  ru   rN  c                   @   ó    e Zd ZdZdefdeffZdS )ÚNetrGetDCNamerS   Ú
ServerNamer}   N)r:   r;   r<   r>  ÚLOGONSRV_HANDLEr   r]   r2   r2   r2   r3   rP  ¶  ó
    þrP  c                   @   rq   )ÚNetrGetDCNameResponserÇ   rC  N©r:   r;   r<   r   rj  r]   r2   r2   r2   r3   rT  ½  ru   rT  c                   @   rO  )ÚNetrGetAnyDCNamer  rQ  r}   N©r:   r;   r<   r>  r?  r   r]   r2   r2   r2   r3   rV  Ä  rS  rV  c                   @   rq   )ÚNetrGetAnyDCNameResponserÇ   rC  NrU  r2   r2   r2   r3   rX  Ë  ru   rX  c                   @   ó   e Zd ZdZdeffZdS )ÚDsrGetSiteNamer@   r™  N©r:   r;   r<   r>  r?  r]   r2   r2   r2   r3   rZ  Ò  ó    ÿrZ  c                   @   rq   )ÚDsrGetSiteNameResponserµ   rC  NrU  r2   r2   r2   r3   r]  Ø  ru   r]  c                   @   rY  )ÚDsrGetDcSiteCoverageWé&   rQ  Nr[  r2   r2   r2   r3   r^  ß  r\  r^  c                   @   rq   )ÚDsrGetDcSiteCoverageWResponser�   rC  N©r:   r;   r<   r�   rj  r]   r2   r2   r2   r3   r`  å  ru   r`  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;   r<   r>  r?  r   r¢   r]   r2   r2   r2   r3   rc  ì  ó    ýrc  c                   @   rq   )ÚDsrAddressToSiteNamesWResponser�   rC  Nra  r2   r2   r2   r3   rh  ô  ru   rh  c                   @   rb  )ÚDsrAddressToSiteNamesExWé%   r™  rŒ   re  Nrf  r2   r2   r2   r3   ri  û  rg  ri  c                   @   rq   )Ú DsrAddressToSiteNamesExWResponser�   rC  N)r:   r;   r<   r“   rj  r]   r2   r2   r2   r3   rk    ru   rk  c                   @   rK  )ÚDsrDeregisterDnsHostRecordsé)   rQ  rÙ   r|   ÚDsaGuidr´   N)	r:   r;   r<   r>  r?  r   r   r   r]   r2   r2   r2   r3   rl  
  rI  rl  c                   @   rj   )Ú#DsrDeregisterDnsHostRecordsResponserC  N)r:   r;   r<   rj  r]   r2   r2   r2   r3   ro    rl   ro  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 )	Ú!DSRUpdateReadOnlyServerDnsRecordsé0   rQ  r™  ÚAuthenticatorrµ   ÚDnsTtlÚDnsNamesN)r:   r;   r<   r>  r?  r   rr   r   r   r«   r]   r2   r2   r2   r3   rp    ó    úrp  c                   @   r(  )Ú)DSRUpdateReadOnlyServerDnsRecordsResponseÚReturnAuthenticatorrt  rC  N)r:   r;   r<   rr   r«   r   r]   r2   r2   r2   r3   rv  %  r’   rv  c                   @   rb  )ÚNetrServerReqChallengerG   ÚPrimaryNamer™  ÚClientChallengeN)r:   r;   r<   r>  r?  r   rp   r]   r2   r2   r2   r3   rx  -  rg  rx  c                   @   rq   )ÚNetrServerReqChallengeResponseÚServerChallengerC  N©r:   r;   r<   rp   r   r]   r2   r2   r2   r3   r{  5  ru   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 )	ÚNetrServerAuthenticate3r¡  ry  r´  ÚSecureChannelTyper™  ÚClientCredentialÚNegotiateFlagsN©
r:   r;   r<   r>  r?  r   rì   rp   r   r]   r2   r2   r2   r3   r  <  ru  r  c                   @   ó(   e Zd ZdefdefdefdeffZdS )ÚNetrServerAuthenticate3ResponseÚServerCredentialr‚  Ú
AccountRidrC  N©r:   r;   r<   rp   r   r   r]   r2   r2   r2   r3   r…  G  r&  r…  c                   @   r~  )	ÚNetrServerAuthenticate2r  ry  r´  r€  r™  r�  r‚  Nrƒ  r2   r2   r2   r3   r‰  P  ru  r‰  c                   @   r(  )ÚNetrServerAuthenticate2Responser†  r‚  rC  Nrˆ  r2   r2   r2   r3   rŠ  [  r’   rŠ  c                   @   rE  )ÚNetrServerAuthenticaterH   ry  r´  r€  r™  r�  N)	r:   r;   r<   r>  r?  r   rì   rp   r]   r2   r2   r2   r3   r‹  c  rI  r‹  c                   @   rq   )ÚNetrServerAuthenticateResponser†  rC  Nr}  r2   r2   r2   r3   rŒ  m  ru   rŒ  c                   @   r~  )	ÚNetrServerPasswordSet2rA   ry  r´  r€  r™  rr  ÚClearNewPasswordN)
r:   r;   r<   r>  r?  r   rì   rr   rÄ   r]   r2   r2   r2   r3   r�  t  s    ùr�  c                   @   rq   )ÚNetrServerPasswordSet2Responserw  rC  N©r:   r;   r<   rr   r   r]   r2   r2   r2   r3   r�  €  ru   r�  c                   @   rE  )ÚNetrServerPasswordGeté   ry  r´  ÚAccountTyper™  rr  N©	r:   r;   r<   r>  r?  r   rì   rr   r]   r2   r2   r2   r3   r‘  ‰  rI  r‘  c                   @   r(  )ÚNetrServerPasswordGetResponserw  rÚ  rC  N©r:   r;   r<   rr   ÚENCRYPTED_NT_OWF_PASSWORDr   r]   r2   r2   r2   r3   r•  “  r’   r•  c                   @   rE  )ÚNetrServerTrustPasswordsGeté*   ÚTrustedDcNamer´  r€  r™  rr  Nr”  r2   r2   r2   r3   r˜  ›  rI  r˜  c                   @   r„  )Ú#NetrServerTrustPasswordsGetResponserw  ÚEncryptedNewOwfPasswordÚEncryptedOldOwfPasswordrC  Nr–  r2   r2   r2   r3   r›  ¥  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é   rQ  r™  rr  rw  ÚLevelÚWkstaBufferN)
r:   r;   r<   r>  rR  r   rr   r   rÐ   r]   r2   r2   r2   r3   rŸ  ®  ru  rŸ  c                   @   r(  )ÚNetrLogonGetDomainInfoResponserw  Ú	DomBufferrC  N)r:   r;   r<   rr   ré   r   r]   r2   r2   r2   r3   r£  ¹  r’   r£  c                   @   rK  )ÚNetrLogonGetCapabilitiesr  rQ  r™  rr  rw  Ú
QueryLevelN)	r:   r;   r<   r>  rR  r   rr   r   r]   r2   r2   r2   r3   r¥  Á  rI  r¥  c                   @   r(  )Ú NetrLogonGetCapabilitiesResponserw  rú   rC  N)r:   r;   r<   rr   rù   r   r]   r2   r2   r2   r3   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é'   rh  r™  Ú
LogonLevelÚLogonInformationÚValidationLevelÚ
ExtraFlagsN)
r:   r;   r<   r>  r   r6  r>  rˆ  r   r]   r2   r2   r2   r3   r¨  Õ  ru  r¨  c                   @   r   )ÚNetrLogonSamLogonExResponseÚValidationInformationÚAuthoritativer­  rC  N)r:   r;   r<   r�  r   r   r   r]   r2   r2   r2   r3   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é-   rh  r™  rr  rw  rª  r«  r¬  r­  N)r:   r;   r<   r>  r   rv   r6  r>  rˆ  r   r]   r2   r2   r2   r3   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 )Ú"NetrLogonSamLogonWithFlagsResponserw  r¯  r°  r­  rC  N)	r:   r;   r<   rv   r�  r   r   r   r]   r2   r2   r2   r3   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 )
ÚNetrLogonSamLogonrE   rh  r™  rr  rw  rª  r«  r¬  N)
r:   r;   r<   r>  r   rv   r6  r>  rˆ  r]   r2   r2   r2   r3   rµ   	  r@  rµ  c                   @   r   )ÚNetrLogonSamLogonResponserw  r¯  r°  rC  N)r:   r;   r<   rv   r�  r   r   r]   r2   r2   r2   r3   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 )	ÚNetrLogonSamLogoffrF   rh  r™  rr  rw  rª  r«  N)	r:   r;   r<   r>  r   rv   r6  r>  r]   r2   r2   r2   r3   r·  	  ru  r·  c                   @   rq   )ÚNetrLogonSamLogoffResponserw  rC  N)r:   r;   r<   rv   r   r]   r2   r2   r2   r3   r¸   	  ru   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 )
ÚNetrDatabaseDeltasrP   ry  r™  rr  rw  Ú
DatabaseIDrÀ  ÚPreferredMaximumLengthN)
r:   r;   r<   r>  rR  r   rr   r   r	  r]   r2   r2   r2   r3   rº  '	  r@  rº  c                   @   r   )ÚNetrDatabaseDeltasResponserw  rÀ  Ú
DeltaArrayrC  N)r:   r;   r<   rr   r	  rD  r   r]   r2   r2   r2   r3   r½  3	  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 )ÚNetrDatabaseSync2rN   ry  r™  rr  rw  r»  ÚRestartStateÚSyncContextr¼  N)r:   r;   r<   r>  rR  r   rr   r   rG  r   r]   r2   r2   r2   r3   r¿  <	  r³  r¿  c                   @   r   )ÚNetrDatabaseSync2Responserw  rÁ  r¾  rC  N©r:   r;   r<   rr   r   rD  r   r]   r2   r2   r2   r3   rÂ  I	  r&  rÂ  c                   @   r¹  )
ÚNetrDatabaseSyncrO   ry  r™  rr  rw  r»  rÁ  r¼  N)
r:   r;   r<   r>  rR  r   rr   r   r   r]   r2   r2   r2   r3   rÄ  R	  r@  rÄ  c                   @   r   )ÚNetrDatabaseSyncResponserw  rÁ  r¾  rC  NrÃ  r2   r2   r2   r3   rÅ  ^	  r&  rÅ  c                   @   rž  )	ÚNetrDatabaseRedor  ry  r™  rr  rw  ÚChangeLogEntryÚChangeLogEntrySizeN)
r:   r;   r<   r>  rR  r   rr   rž   r   r]   r2   r2   r2   r3   rÆ  g	  ru  rÆ  c                   @   r(  )ÚNetrDatabaseRedoResponserw  r¾  rC  N)r:   r;   r<   rr   rD  r   r]   r2   r2   r2   r3   rÉ  r	  r’   rÉ  c                   @   rO  )ÚDsrEnumerateDomainTrustsrR  rQ  r   N)r:   r;   r<   r>  r?  r   r]   r2   r2   r2   r3   rÊ  z	  rS  rÊ  c                   @   rq   )Ú DsrEnumerateDomainTrustsResponser]  rC  N©r:   r;   r<   r[  r   r]   r2   r2   r2   r3   rË  �	  ru   rË  c                   @   rY  )ÚNetrEnumerateTrustedDomainsExrD   rQ  Nr[  r2   r2   r2   r3   rÍ  ˆ	  r\  rÍ  c                   @   rq   )Ú%NetrEnumerateTrustedDomainsExResponser]  rC  NrÌ  r2   r2   r2   r3   rÎ  Ž	  ru   rÎ  c                   @   rY  )ÚNetrEnumerateTrustedDomainsr  rQ  Nr[  r2   r2   r2   r3   rÏ  •	  r\  rÏ  c                   @   rq   )Ú#NetrEnumerateTrustedDomainsResponseÚDomainNameBufferrC  N)r:   r;   r<   rQ  r   r]   r2   r2   r2   r3   rÐ  ›	  ru   rÐ  c                   @   rK  )ÚNetrGetForestTrustInformationé,   rQ  r™  rr  rw  r   N)	r:   r;   r<   r>  r?  r   rr   r   r]   r2   r2   r2   r3   rÒ  ¢	  rI  rÒ  c                   @   r(  )Ú%NetrGetForestTrustInformationResponserw  ÚForestTrustInforC  N)r:   r;   r<   rr   r"   r   r]   r2   r2   r2   r3   rÔ  ¬	  r’   rÔ  c                   @   rb  )ÚDsrGetForestTrustInformationé+   rQ  re  r   N)r:   r;   r<   r>  r?  r   r   r]   r2   r2   r2   r3   rÖ  ´	  rg  rÖ  c                   @   rq   )Ú$DsrGetForestTrustInformationResponserÕ  rC  N)r:   r;   r<   r"   r   r]   r2   r2   r2   r3   rØ  ¼	  ru   rØ  c                   @   rE  )ÚNetrServerGetTrustInfoé.   rš  r´  r€  r™  rr  Nr”  r2   r2   r2   r3   rÙ  Ã	  rI  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 )ÚNetrServerGetTrustInfoResponserw  rœ  r�  Ú	TrustInforC  N)r:   r;   r<   rr   r—  rc  r   r]   r2   r2   r2   r3   rÛ  Í	  r  rÛ  c                   @   rO  )ÚNetrLogonGetTrustRidé   rQ  r}   NrW  r2   r2   r2   r3   rÝ  ×	  rS  rÝ  c                   @   rq   )ÚNetrLogonGetTrustRidResponser=  rC  N)r:   r;   r<   r   r   r]   r2   r2   r2   r3   rß  Þ	  ru   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é   rQ  r=  ÚMessageÚMessageSizeN)r:   r;   r<   r>  r?  r   rœ   r]   r2   r2   r2   r3   rà  å	  ó    ürà  c                   @   r  )Ú$NetrLogonComputeServerDigestResponseÚNewMessageDigestÚOldMessageDigestrC  N©r:   r;   r<   rž  r   r]   r2   r2   r2   r3   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 )ÚNetrLogonComputeClientDigestr?   rQ  r}   râ  rã  N)	r:   r;   r<   r>  r?  r   rœ   r   r]   r2   r2   r2   r3   ré  ö	  rä  ré  c                   @   r  )Ú$NetrLogonComputeClientDigestResponseræ  rç  rC  Nrè  r2   r2   r2   r3   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 )ÚNetrLogonSendToSamrB   ry  r™  rr  ÚOpaqueBufferÚOpaqueBufferSizeN)
r:   r;   r<   r>  r?  r   rr   rœ   r   r]   r2   r2   r2   r3   rë  
  rI  rë  c                   @   rq   )ÚNetrLogonSendToSamResponserw  rC  Nr�  r2   r2   r2   r3   rî  
  ru   rî  c                   @   ó&   e Zd ZdZdefdefdeffZdS )ÚNetrLogonSetServiceBitsr>   rQ  ÚServiceBitsOfInterestÚServiceBitsN)r:   r;   r<   r>  r?  r   r]   r2   r2   r2   r3   rð  
  rg  rð  c                   @   rj   )ÚNetrLogonSetServiceBitsResponserC  N)r:   r;   r<   r   r]   r2   r2   r2   r3   ró   
  rl   ró  c                   @   rY  )Ú#NetrLogonGetTimeServiceParentDomainé#   rQ  Nr[  r2   r2   r2   r3   rô  &
  r\  rô  c                   @   r(  )Ú+NetrLogonGetTimeServiceParentDomainResponser}   ÚPdcSameSiterC  N)r:   r;   r<   r   r   rj  r]   r2   r2   r2   r3   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  rQ  ÚFunctionCoder¦  rW   N©r:   r;   r<   r>  r?  r   rd  r]   r2   r2   r2   r3   rù  4
  rä  rù  c                   @   rq   )ÚNetrLogonControl2ExResponserÇ   rC  N©r:   r;   r<   r  rj  r]   r2   r2   r2   r3   rü  =
  ru   rü  c                   @   rø  )ÚNetrLogonControl2r  rQ  rú  r¦  rW   Nrû  r2   r2   r2   r3   rþ  D
  rä  rþ  c                   @   rq   )ÚNetrLogonControl2ResponserÇ   rC  Nrý  r2   r2   r2   r3   rÿ  M
  ru   rÿ  c                   @   rø  )ÚNetrLogonControlrT   rQ  rú  r¦  rW   Nrû  r2   r2   r2   r3   r   T
  rä  r   c                   @   rq   )ÚNetrLogonControlResponserÇ   rC  N)r:   r;   r<   rd  rj  r]   r2   r2   r2   r3   r  ]
  ru   r  c                   @   rï  )ÚNetrLogonUasLogonr   rQ  r  r  N©r:   r;   r<   r>  r?  r   r]   r2   r2   r2   r3   r  d
  rg  r  c                   @   rq   )ÚNetrLogonUasLogonResponser¯  rC  N)r:   r;   r<   r•  rj  r]   r2   r2   r2   r3   r  l
  ru   r  c                   @   rï  )ÚNetrLogonUasLogoffr4   rQ  r  r  Nr  r2   r2   r2   r3   r  s
  rg  r  c                   @   rq   )ÚNetrLogonUasLogoffResponseÚLogoffInformationrC  N)r:   r;   r<   r–  rj  r]   r2   r2   r2   r3   r  {
  ru   r  r  r  r  r  r  r  r  rÞ  rá  rG  r   r’  rd  rõ  )
rj  r_  r©  rR  rm  r™  r×  rÓ  r²  rÚ  c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r   )Ústringr2   r2   r3   ÚcheckNullString»
  s
   r  c                 C   s0   t ƒ }t|ƒ|d< t|ƒ|d< ||d< |  |¡S )Nry  r™  rz  )rx  r  Úrequest)ÚdceÚprimaryNameÚcomputerNamerÞ  r  r2   r2   r3   ÚhNetrServerReqChallengeÄ
  s
   
r  c                 C   óL   t ƒ }t|ƒ|d< t|ƒ|d< ||d< ||d< t|ƒ|d< ||d< |  |¡S ©Nry  r´  r€  r�  r™  r‚  )r  r  r  ©r  r  ÚaccountNameÚsecureChannelTyper  ÚclientCredentialÚnegotiateFlagsr  r2   r2   r3   ÚhNetrServerAuthenticate3Ë
  ó   
r  c           	      C   sX   t ƒ }t|ƒ|d< t|ƒ|d< ||d< t|ƒ|d< ||d< t|ƒ|d< ||d< |  |¡S )Nr™  r´  r=  r}   r|   rµ   r   )r<  r  r  )	r  r  r  ÚallowableAccountControlBitsÚ
domainNameÚ
domainGuidÚsiteNameÚflagsr  r2   r2   r3   ÚhDsrGetDcNameEx2Õ
  s   
r  c                 C   ó@   t ƒ }t|ƒ|d< t|ƒ|d< ||d< ||d< ||d< |  |¡S )Nr™  r}   r|   rµ   r   )rF  r  r  )r  r  r  r  r  r  r  r2   r2   r3   ÚhDsrGetDcNameExà
  ó   
r!  c                 C   r   )Nr™  r}   r|   rM  r   )rL  r  r  )r  r  r  r  ÚsiteGuidr  r  r2   r2   r3   ÚhDsrGetDcNameé
  r"  r$  c                 C   ó(   t ƒ }t|ƒ|d< t|ƒ|d< |  |¡S ©NrQ  r}   )rV  r  r  ©r  Ú
serverNamer  r  r2   r2   r3   ÚhNetrGetAnyDCNameò
  ó   
r)  c                 C   r%  r&  )rP  r  r  r'  r2   r2   r3   ÚhNetrGetDCNameø
  r*  r+  c                 C   ó   t ƒ }t|ƒ|d< |  |¡S )Nr™  )rZ  r  r  )r  r  r  r2   r2   r3   ÚhDsrGetSiteNameþ
  ó   
r-  c                 C   r,  )NrQ  )r^  r  r  )r  r(  r  r2   r2   r3   ÚhDsrGetDcSiteCoverageW  r.  r/  c                 C   r  r  )r‰  r  r  r  r2   r2   r3   ÚhNetrServerAuthenticate2  r  r0  c                 C   sD   t ƒ }t|ƒ|d< t|ƒ|d< ||d< ||d< t|ƒ|d< |  |¡S )Nry  r´  r€  r�  r™  )r‹  r  r  )r  r  r  r  r  r  r  r2   r2   r3   ÚhNetrServerAuthenticate  s   
r1  c                 C   óD   t ƒ }t|ƒ|d< t|ƒ|d< ||d< t|ƒ|d< ||d< |  |¡S )Nry  r´  r“  r™  rr  )r‘  r  r  )r  r  r  ÚaccountTyper  rý  r  r2   r2   r3   ÚhNetrServerPasswordGet  ó   
r4  c                 C   r2  ©Nrš  r´  r€  r™  rr  )r˜  r  r  ©r  ÚtrustedDcNamer  r  r  rý  r  r2   r2   r3   ÚhNetrServerTrustPasswordsGet$  r5  r9  c                 C   sL   t ƒ }t|ƒ|d< t|ƒ|d< ||d< t|ƒ|d< ||d< ||d< |  |¡S )Nry  r´  r€  r™  rr  rŽ  )r�  r  r  )r  r  r  r  r  rý  ÚclearNewPasswordBlobr  r2   r2   r3   ÚhNetrServerPasswordSet2-  s   
r;  c                 C   s  t ƒ }t|ƒ|d< t|ƒ|d< ||d< |dkr$d|d d< d|d d< n||d< d	|d
< |d	krod	|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< |  |¡S )NrQ  r™  rr  r   ó           rw  rs   rt   r4   r¡  r¢  rÑ   rÒ   r´   rµ   rÁ  r»   r¶   r·   r¸   r¹   rE   rÓ   r°   )rŸ  r  r   r  )r  r(  r  rý  ÚreturnAuthenticatorÚlevelr  r2   r2   r3   ÚhNetrLogonGetDomainInfo7  s*   
r?  c                 C   sb   t ƒ }t|ƒ|d< t|ƒ|d< ||d< |dkr$d|d d< d|d d< n||d< ||d	< |  |¡S )
NrQ  r™  rr  r   r<  rw  rs   rt   r¦  )r¥  r  r  )r  r(  r  rý  r=  Ú
queryLevelr  r2   r2   r3   ÚhNetrLogonGetCapabilitiesQ  s   
rA  c                 C   r2  r6  )rÙ  r  r  r7  r2   r2   r3   ÚhNetrServerGetTrustInfo^  r5  rB  r,   )F)rÁ  rÁ  F)r   r4   (Ÿ  rù  Ústructr   r   Úsixr   Úimpacket.dcerpc.v5.ndrr   r   r   r   r	   r
   r   r   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úimpacketr   r   Úimpacket.uuidr   Úimpacket.dcerpc.v5.enumr    Úimpacket.dcerpc.v5.samrr!   Úimpacket.dcerpc.v5.lsadr"   Úimpacket.dcerpc.v5.rpcrtr#   Úimpacket.structurer$   r%   r&   r'   rØ  rÙ  ÚCryptodome.Cipherr(   r)   r*   ÚImportErrorÚcriticalÚ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_BREAKPOINTrR  r?  rV   rj  r^   r`   rk   r-  r—  rm   rp   rr   rv   rx   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/  r0  r1  r5  r6  r>  rF  rI  rK  rk  rM  rO  rP  rQ  rS  rl  rm  rn  ro  rr  rs  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>  rB  rC  rD  rG  rQ  rT  rY  rZ  r[  r^  rc  rd  rg  rk  rl  rq  rr  rz  r{  r~  r  r„  r•  r–  r˜  rœ  rž  r5  r3  r4  ÚNL_AUTH_MESSAGE_DNS_HOSTr6  r2  Ú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"  r0  r;  r<  rA  rF  rJ  rL  rN  rP  rT  rV  rX  rZ  r]  r^  r`  rc  rh  ri  rk  rl  ro  rp  rv  rx  r{  r  r…  r‰  rŠ  r‹  rŒ  r�  r�  r‘  r•  r˜  r›  rŸ  r£  r¥  r§  r¨  r®  r±  r´  rµ  r¶  r·  r¸  rº  r½  r¿  rÂ  rÄ  rÅ  rÆ  rÉ  rÊ  rË  rÍ  rÎ  rÏ  rÐ  rÒ  rÔ  rÖ  rØ  rÙ  rÛ  rÝ  rß  rà  rå  ré  rê  rë  rî  rð  ró  rô  rö  rù  rü  rþ  rÿ  r   r  r  r  r  r  ÚOPNUMSr  r  r  r  r!  r$  r)  r+  r-  r/  r0  r1  r4  r9  r;  r?  rA  rB  r2   r2   r2   r3   Ú<module>   s˜  (H
þ



	2
		*

			#%


	
	

	

	
				


		
				ÿþýüûúø	÷ôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û
&








Ñ7	
		
			
