o
    àý°jæ‰ ã                   @   s\#  d dl mZ 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 d dl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(Z(d dl)Z)d dl*m+Z+ d dl,m-Z- e#dƒZ.G dd„ deƒZ/eZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:d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.Zbd0Zcd1Zdd2ZedZfdZgdZhdZidZjd Zkd%Zld&Zmd'Znd(Zod)Zpd*Zqd3Zrd4Zsd5ZtdZudZvdZwdZxdZyd Zzd%Z{d&Z|d'Z}d(Z~d)Zd6Z€d7Z�d8Z‚d9Zƒ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‘dAZ’d Z“dZ”dBZ•dZ–dCZ—dDZ˜dEZ™dFZšdZ›dGZœdZ�dZždZŸdZ dZ¡dZ¢dZ£dHZ¤dIZ¥dJZ¦dZ§dZ¨dZ©dZªdZ«d Z¬d%Z­d&Z®d'Z¯d(Z°d)Z±d6Z²d7Z³d8Z´d9Zµ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Åd6ZÆd7ZÇd8ZÈdZÉdZÊdZËdZÌd;ZÍd<ZÎd=ZÏd>ZÐdZÑdZÒd?ZÓd@ZÔdKZÕdLZÖdMZ×d(ZØdNZÙdOZÚdPZÛdQZÜdRZÝdZÞdZßdZàdZádZâd ZãdZädZådZædZçdZèd ZéG 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 dcdd„ dde
ƒZòG dedf„ dfeƒZóG dgdh„ dheƒZôG didj„ djeƒZõeõZöG dkdl„ dle
ƒZ÷e÷ZøG dmdn„ dneƒ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 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%G dÇdÈ„ dÈe	ƒ�Z&G dÉdÊ„ dÊe
ƒ�Z'G dËdÌ„ dÌeƒ�Z(G dÍdÎ„ dÎeƒ�Z)G dÏdÐ„ dÐeƒ�Z*G dÑdÒ„ dÒeƒ�Z+G dÓdÔ„ dÔeƒ�Z,G dÕdÖ„ dÖe	ƒ�Z-G d×dØ„ dØe
ƒ�Z.G dÙdÚ„ dÚeƒ�Z/G dÛdÜ„ dÜeƒ�Z0G dÝdÞ„ dÞeƒ�Z1G dß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/�d0„ �d0e
ƒ�ZZG �d1�d2„ �d2eƒ�Z[G �d3�d4„ �d4eƒ�Z\G �d5�d6„ �d6e
ƒ�Z]G �d7�d8„ �d8eƒ�Z^G �d9�d:„ �d:eƒ�Z_G �d;�d<„ �d<e
ƒ�Z`G �d=�d>„ �d>eƒ�ZaG �d?�d@„ �d@eƒ�ZbG �dA�dB„ �dBe
ƒ�ZcG �dC�dD„ �dDeƒ�ZdG �dE�dF„ �dFeƒ�ZeG �dG�dH„ �dHe
ƒ�ZfG �dI�dJ„ �dJeƒ�ZgG �dK�dL„ �dLeƒ�ZhG �dM�dN„ �dNeƒ�ZiG �dO�dP„ �dPeƒ�ZjG �dQ�dR„ �dReƒ�ZkG �dS�dT„ �dTeƒ�ZlG �dU�dV„ �dVe	ƒ�ZmG �dW�dX„ �dXeƒ�ZnG �dY�dZ„ �dZe
ƒ�ZoG �d[�d\„ �d\eƒ�ZpG �d]�d^„ �d^eƒ�ZqG �d_�d`„ �d`eƒ�ZrG �da�db„ �dbe
ƒ�ZsG �dc�dd„ �ddeƒ�ZtG �de�df„ �dfeƒ�ZuG �dg�dh„ �dheƒ�ZvG �di�dj„ �djeƒ�ZwG �dk�dl„ �dle	ƒ�ZxG �dm�dn„ �dne	ƒ�ZyG �do�dp„ �dpe
ƒ�ZzG �dq�dr„ �dre'ƒ�Z{�ds�dt„ �Z|G �du�dv„ �dve'ƒ�Z}G �dw�dx„ �dxe'ƒ�Z~G �dy�dz„ �dze'ƒ�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¡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Ä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/�d0„ �d0eƒ�ZÚG �d1�d2„ �d2eƒ�ZÛG �d3�d4„ �d4eƒ�ZÜG �d5�d6„ �d6eƒ�ZÝG �d7�d8„ �d8eƒ�ZÞG �d9�d:„ �d:eƒ�ZßG �d;�d<„ �d<eƒ�ZàG �d=�d>„ �d>eƒ�ZáG �d?�d@„ �d@eƒ�ZâG �dA�dB„ �dBeƒ�ZãG �dC�dD„ �dDeƒ�ZäG �dE�dF„ �dFeƒ�ZåG �dG�dH„ �dHeƒ�ZæG �dI�dJ„ �dJeƒ�ZçG �dK�dL„ �dLeƒ�ZèG �dM�dN„ �dNeƒ�ZéG �dO�dP„ �dPeƒ�ZêG �dQ�dR„ �dReƒ�ZëG �dS�dT„ �dTeƒ�ZìG �dU�dV„ �dVeƒ�ZíG �dW�dX„ �dXeƒ�ZîG �dY�dZ„ �dZeƒ�ZïG �d[�d\„ �d\eƒ�ZðG �d]�d^„ �d^eƒ�ZñG �d_�d`„ �d`eƒ�ZòG �da�db„ �dbeƒ�ZóG �dc�dd„ �ddeƒ�ZôG �de�df„ �dfeƒ�ZõG �dg�dh„ �dheƒ�ZöG �di�dj„ �djeƒ�Z÷G �dk�dl„ �dleƒ�ZøG �dm�dn„ �dneƒ�ZùG �do�dp„ �dpeƒ�ZúG �dq�dr„ �dreƒ�ZûG �ds�dt„ �dteƒ�Züi d �eƒ�e„f“d�e…�e†f“d�e‡�eˆf“�du�e‰�eŠf“�dv�e‹�eŒf“�dw�e��eŽf“�dx�e��e�f“d�e‘�e’f“�dy�e“�e”f“�dz�e•�e–f“�d{�e—�ešf“�d|�e˜�e™f“�d}�e›�eœf“�d~�e��ežf“�d�eŸ�e f“d�e¡�e¢f“�d€�e£�e¤f“i �d��e¥�e¦f“�d‚�e§�e¨f“�dƒ�e©�eªf“�d„�e«�e¬f“�d…�e­�e®f“�d†�e¯�e°f“�d‡�e±�e²f“�dˆ�e³�e´f“�d‰�eµ�e¶f“�dŠ�e·�e¸f“�d‹�e¹�eºf“�dŒ�e»�e¼f“�d��e½�e¾f“�dŽ�e¿�eÀf“d �eÁ�eÂf“�d��eÃ�eÄf“�d��eÅ�eÆf“¥i �d‘�eÇ�eÈf“�d’�eÉ�eÊf“�d“�eË�eÌf“�d”�eÍ�eÎf“�d•�eÏ�eÐf“�d–�eÑ�eÒf“�d—�eÓ�eÔf“�d˜�eÕ�eÖf“�d™�e×�eØf“�dš�eÙ�eÚf“�d›�eÛ�eÜf“�dœ�eÝ�eÞf“�d��eß�eàf“�dž�eá�eâf“�dŸ�eã�eäf“�d �eå�eæf“�d¡�eç�eèf“¥�eé�eêf�eë�eìf�eí�eîf�eï�eðf�eñ�eòf�eó�eôf�eõ�eöf�e÷�eøf�eù�eúf�eû�eüf�d¢œ
¥�Zý�d£e6d�duf�d¤�d¥„�Zþ�d£e6df�d¦�d§„�Zÿ�d£e6f�d¨�d©„�Z �d£e6f�dª�d«„�Ze6ef�d¬�d­„�Ze6d f�d®�d¯„�Ze6d f�d°�d±„�Ze6d f�d²�d³„�Z�d �dµ�d¶„�Z�d �d·�d¸„�Z�d �d¹�dº„�Ze«d �d´f�d»�d¼„�Z	�el�j
d �d´�d´f�d½�d¾„�Z�el�j
d �d´�d´f�d¿�dÀ„�Z�el�j
d �d´�d´f�dÁ�dÂ„�Z�el�j
�dÃf�dÄ�dÅ„�Z�el�j
�dÃf�dÆ�dÇ„�ZeYf�dÈ�dÉ„�ZeYf�dÊ�dË„�Ze«eYf�dÌ�dÍ„�ZeYf�dÎ�dÏ„�Z�e%�jf�dÐ�dÑ„�Z�e%�jf�dÒ�dÓ„�Z�e,�jf�dÔ�dÕ„�Z�e2�jf�dÖ�d×„�Z�eT�jf�dØ�dÙ„�Z�eT�jf�dÚ�dÛ„�Z�dÜ�dÝ„ �Z�dÞ�dß„ �Z�dà�dá„ �Z �dâ�dã„ �Z!�dä�då„ �Z"�dæ�dç„ �Z#�dè�dé„ �Z$�dê�dë„ �Z%�dì�dí„ �Z&�dî�dï„ �Z'�dð�dñ„ �Z(�dò�dó„ �Z)�dô�dõ„ �Z*�dö�d÷„ �Z+�dø�dù„ �Z,�dú�dû„ �Z-�dü�dý„ �Z.�dþ�dÿ„ �Z/�d �d„ �Z0�d!�d�d„�Z1�d"�d�d„�Z2�d�d„ �Z3�d�d	„ �Z4�d
�d„ �Z5�d�d„ �Z6�d�d„ �Z7�d�d„ �Z8�d�d„ �Z9�d�d„ �Z:�d�d„ �Z;�d�d„ �Z<�d�d„ �Z=�d�d„ �Z>�d#�d�d„�Z?dS ($  é    )Údivision)Úprint_function)Ú	unhexlify)ÚNDRCALLÚNDRÚ	NDRSTRUCTÚNDRUNIONÚ
NDRPOINTERÚNDRUniConformantArrayÚNDRUniConformantVaryingArrayÚNDRENUM)ÚNULLÚRPC_UNICODE_STRINGÚULONGÚUSHORTÚUCHARÚLARGE_INTEGERÚRPC_SIDÚLONGÚSTRÚLPBYTEÚSECURITY_INFORMATIONÚPRPC_SIDÚPRPC_UNICODE_STRINGÚLPWSTR)ÚDCERPCException)Ú	nt_errorsÚLOG)Úuuidtup_to_bin)ÚEnum)Ú	StructureN)Úmd5©ÚARC4)z$12345778-1234-ABCD-EF00-0123456789ACz1.0c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S )N)r   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacket© r*   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/samr.pyr%   0   s   zDCERPCSessionError.__init__c                 C   sF   | j }|tjv rtj| d }tj| d }d| j ||f S d| j  S )Nr   é   z'SAMR SessionError: code: 0x%x - %s - %sz+SAMR SessionError: unknown error code: 0x%x)r(   r   ÚERROR_MESSAGES)r&   ÚkeyÚerror_msg_shortÚerror_msg_verboser*   r*   r+   Ú__str__3   s   

zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r%   r1   r*   r*   r*   r+   r$   /   s    
r$   i   i   i   i   i   i   l        i   @i    i   r,   é   é   é   é   é    i?  i  i  i!  é@   é€   é   é   i   iÿ i„  iz i i  i  i  i  i  i iD  iA  i   i   i    i @  i €  i   i    i  @ i  € i   i   l        i  i   i   0i  0i  0i  @l       l       l       iô  iõ  iö  i  i  i  i   i	  c                   @   ó   e Zd ZeZdS )ÚRPC_UNICODE_STRING_ARRAYN©r2   r3   r4   r   Úitemr*   r*   r*   r+   r?     ó    r?   c                   @   r>   )ÚRPC_UNICODE_STRING_ARRAY_CNr@   r*   r*   r*   r+   rC     rB   rC   c                   @   ó   e Zd ZdeffZdS )ÚPRPC_UNICODE_STRING_ARRAYÚDataN)r2   r3   r4   rC   Úreferentr*   r*   r*   r+   rE   "  ó    ÿrE   c                   @   s(   e Zd ZdZdZdeffZddd„ZdS )	Ú
RPC_STRING))ÚMaximumLengthú<H=len(Data)-12)ÚLengthrK   )Ú
ReferentIDz<L=0xff))rJ   ú<H=len(Data)-24)rL   rN   )rM   z<Q=0xffrF   Nr   c                 C   s@   |d u r| j j}|dkrtd| dd� td| d  dd� d S )NÚ z%sú )Úendz %rrF   )Ú	__class__r2   Úprint)r&   ÚmsgÚindentr*   r*   r+   Údump8  s
   zRPC_STRING.dump)Nr   )r2   r3   r4   Ú	commonHdrÚcommonHdr64r   rG   rV   r*   r*   r*   r+   rI   (  s    ÿrI   c                   @   rD   )ÚPRPC_STRINGrF   N)r2   r3   r4   rI   rG   r*   r*   r*   r+   rY   @  rH   rY   c                   @   ó   e Zd ZdefdeffZdS )ÚOLD_LARGE_INTEGERÚLowPartÚHighPartN)r2   r3   r4   r   r   Ú	structurer*   r*   r*   r+   r[   F  ó    þr[   c                   @   ó   e Zd ZG dd„ deƒZdS )ÚSID_NAME_USEc                   @   s4   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S )zSID_NAME_USE.enumItemsr,   r5   é   r6   é   é   é   r7   é	   é
   N)r2   r3   r4   ÚSidTypeUserÚSidTypeGroupÚSidTypeDomainÚSidTypeAliasÚSidTypeWellKnownGroupÚSidTypeDeletedAccountÚSidTypeInvalidÚSidTypeUnknownÚSidTypeComputerÚSidTypeLabelr*   r*   r*   r+   Ú	enumItemsN  s    rr   N©r2   r3   r4   r   rr   r*   r*   r*   r+   ra   M  ó    ra   c                   @   ó   e Zd ZdZdS )ÚUSHORT_ARRAYú<HN)r2   r3   r4   rA   r*   r*   r*   r+   rv   [  s    rv   c                   @   rD   )ÚPUSHORT_ARRAYrF   N)r2   r3   r4   rv   rG   r*   r*   r*   r+   rx   _  rH   rx   c                   @   ó"   e Zd ZdefdefdeffZdS )ÚRPC_SHORT_BLOBrL   rJ   ÚBufferN)r2   r3   r4   r   rx   r^   r*   r*   r*   r+   rz   d  ó
    ýrz   c                   @   ó   e Zd ZdZdd„ ZdS )ÚSAMPR_HANDLE))rF   z20s=b""c                 C   s   | j du rdS dS )NTr7   r6   )Ú_isNDR64©r&   r*   r*   r+   ÚgetAlignmentp  s   
zSAMPR_HANDLE.getAlignmentN©r2   r3   r4   r^   r�   r*   r*   r*   r+   r~   l  ó    r~   c                   @   r}   )ÚENCRYPTED_LM_OWF_PASSWORD))rF   z16s=b""c                 C   ó   dS ©Nr,   r*   r€   r*   r*   r+   r�   {  ó   z&ENCRYPTED_LM_OWF_PASSWORD.getAlignmentNr‚   r*   r*   r*   r+   r„   w  rƒ   r„   c                   @   rD   )ÚPENCRYPTED_LM_OWF_PASSWORDrF   N)r2   r3   r4   r„   rG   r*   r*   r*   r+   rˆ   €  rH   rˆ   c                   @   r>   )ÚULONG_ARRAYN©r2   r3   r4   r   rA   r*   r*   r*   r+   r‰   Š  rB   r‰   c                   @   rD   )ÚPULONG_ARRAYrF   N)r2   r3   r4   r‰   rG   r*   r*   r*   r+   r‹   �  rH   r‹   c                   @   r>   )ÚULONG_ARRAY_CVNrŠ   r*   r*   r*   r+   rŒ   ’  rB   rŒ   c                   @   rZ   )ÚSAMPR_ULONG_ARRAYÚCountÚElementN©r2   r3   r4   r   r‹   r^   r*   r*   r*   r+   r�   •  r_   r�   c                   @   rD   )ÚSAMPR_SID_INFORMATIONÚ
SidPointerN)r2   r3   r4   r   r^   r*   r*   r*   r+   r‘   œ  rH   r‘   c                   @   rD   )ÚPSAMPR_SID_INFORMATIONrF   N)r2   r3   r4   r‘   rG   r*   r*   r*   r+   r“   ¡  rH   r“   c                   @   r>   )ÚSAMPR_SID_INFORMATION_ARRAYN)r2   r3   r4   r“   rA   r*   r*   r*   r+   r”   ¦  rB   r”   c                   @   rD   )ÚPSAMPR_SID_INFORMATION_ARRAYrF   N)r2   r3   r4   r”   rG   r*   r*   r*   r+   r•   ©  rH   r•   c                   @   rZ   )ÚSAMPR_PSID_ARRAYrŽ   ÚSidsN©r2   r3   r4   r   r•   r^   r*   r*   r*   r+   r–   ¯  r_   r–   c                   @   rZ   )ÚSAMPR_PSID_ARRAY_OUTrŽ   r—   Nr˜   r*   r*   r*   r+   r™   ¶  r_   r™   c                   @   rZ   )ÚSAMPR_RETURNED_USTRING_ARRAYrŽ   r�   N)r2   r3   r4   r   rE   r^   r*   r*   r*   r+   rš   ½  r_   rš   c                   @   rZ   )ÚSAMPR_RID_ENUMERATIONÚ
RelativeIdÚNameN©r2   r3   r4   r   r   r^   r*   r*   r*   r+   r›   Ä  r_   r›   c                   @   r>   )ÚSAMPR_RID_ENUMERATION_ARRAYN)r2   r3   r4   r›   rA   r*   r*   r*   r+   rŸ   Ê  rB   rŸ   c                   @   rD   )ÚPSAMPR_RID_ENUMERATION_ARRAYrF   N)r2   r3   r4   rŸ   rG   r*   r*   r*   r+   r    Í  rH   r    c                   @   rZ   )ÚSAMPR_ENUMERATION_BUFFERÚEntriesReadr{   N)r2   r3   r4   r   r    r^   r*   r*   r*   r+   r¡   Ó  r_   r¡   c                   @   rD   )ÚPSAMPR_ENUMERATION_BUFFERrF   N)r2   r3   r4   r¡   rG   r*   r*   r*   r+   r£   Ù  rH   r£   c                   @   ó   e Zd ZdS )Ú
CHAR_ARRAYN©r2   r3   r4   r*   r*   r*   r+   r¥   ß  ó    r¥   c                   @   rD   )ÚPCHAR_ARRAYrF   N)r2   r3   r4   r¥   rG   r*   r*   r*   r+   r¨   â  rH   r¨   c                   @   rZ   )ÚSAMPR_SR_SECURITY_DESCRIPTORrL   ÚSecurityDescriptorN)r2   r3   r4   r   r¨   r^   r*   r*   r*   r+   r©   ç  r_   r©   c                   @   rD   )ÚPSAMPR_SR_SECURITY_DESCRIPTORrF   N)r2   r3   r4   r©   rG   r*   r*   r*   r+   r«   í  rH   r«   c                   @   ó   e Zd ZdefdeffZdS )ÚGROUP_MEMBERSHIPrœ   Ú
AttributesN©r2   r3   r4   r   r^   r*   r*   r*   r+   r­   ó  r_   r­   c                   @   r>   )ÚGROUP_MEMBERSHIP_ARRAYN)r2   r3   r4   r­   rA   r*   r*   r*   r+   r°   ù  rB   r°   c                   @   rD   )ÚPGROUP_MEMBERSHIP_ARRAYrF   N)r2   r3   r4   r°   rG   r*   r*   r*   r+   r±   ü  rH   r±   c                   @   rZ   )ÚSAMPR_GET_GROUPS_BUFFERÚMembershipCountÚGroupsN)r2   r3   r4   r   r±   r^   r*   r*   r*   r+   r²     r_   r²   c                   @   rD   )ÚPSAMPR_GET_GROUPS_BUFFERrF   N)r2   r3   r4   r²   rG   r*   r*   r*   r+   rµ     rH   rµ   c                   @   ó"   e Zd ZdefdefdeffZdS )ÚSAMPR_GET_MEMBERS_BUFFERÚMemberCountÚMembersr®   Nr�   r*   r*   r*   r+   r·     r|   r·   c                   @   rD   )ÚPSAMPR_GET_MEMBERS_BUFFERrF   N)r2   r3   r4   r·   rG   r*   r*   r*   r+   rº     rH   rº   c                   @   r¬   )ÚSAMPR_REVISION_INFO_V1ÚRevisionÚSupportedFeaturesNr¯   r*   r*   r*   r+   r»     r_   r»   c                   @   s"   e Zd ZdeffZddefiZdS )ÚSAMPR_REVISION_INFOÚtagr,   ÚV1N)r2   r3   r4   r   rW   r»   Úunionr*   r*   r*   r+   r¾   "  s
    ÿÿr¾   c                   @   rZ   )Ú USER_DOMAIN_PASSWORD_INFORMATIONÚMinPasswordLengthÚPasswordPropertiesN)r2   r3   r4   r   r   r^   r*   r*   r*   r+   rÂ   ,  r_   rÂ   c                   @   r`   )ÚDOMAIN_SERVER_ENABLE_STATEc                   @   ó   e Zd ZdZdZdS )z$DOMAIN_SERVER_ENABLE_STATE.enumItemsr,   r5   N)r2   r3   r4   ÚDomainServerEnabledÚDomainServerDisabledr*   r*   r*   r+   rr   4  ó    rr   Nrs   r*   r*   r*   r+   rÅ   3  rt   rÅ   c                   @   rD   )ÚDOMAIN_STATE_INFORMATIONÚDomainServerStateN)r2   r3   r4   rÅ   r^   r*   r*   r*   r+   rÊ   9  rH   rÊ   c                   @   r`   )ÚDOMAIN_SERVER_ROLEc                   @   rÆ   )zDOMAIN_SERVER_ROLE.enumItemsr5   rb   N)r2   r3   r4   ÚDomainServerRoleBackupÚDomainServerRolePrimaryr*   r*   r*   r+   rr   @  rÉ   rr   Nrs   r*   r*   r*   r+   rÌ   ?  rt   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 )ÚDOMAIN_PASSWORD_INFORMATIONrÃ   ÚPasswordHistoryLengthrÄ   ÚMaxPasswordAgeÚMinPasswordAgeN)r2   r3   r4   r   r   r[   r^   r*   r*   r*   r+   rÏ   E  ó    ûrÏ   c                   @   rD   )ÚDOMAIN_LOGOFF_INFORMATIONÚForceLogoffN©r2   r3   r4   r[   r^   r*   r*   r*   r+   rÔ   O  rH   rÔ   c                   @   rD   )ÚDOMAIN_SERVER_ROLE_INFORMATIONÚDomainServerRoleN)r2   r3   r4   rÌ   r^   r*   r*   r*   r+   r×   U  rH   r×   c                   @   r¬   )ÚDOMAIN_MODIFIED_INFORMATIONÚDomainModifiedCountÚCreationTimeNrÖ   r*   r*   r*   r+   rÙ   [  r_   rÙ   c                   @   s"   e Zd ZdefdefdeffZdS )ÚDOMAIN_MODIFIED_INFORMATION2rÚ   rÛ   ÚModifiedCountAtLastPromotionNrÖ   r*   r*   r*   r+   rÜ   b  r|   rÜ   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 )Ú SAMPR_DOMAIN_GENERAL_INFORMATIONrÕ   ÚOemInformationÚ
DomainNameÚReplicaSourceNodeNamerÚ   rË   rØ   ÚUasCompatibilityRequiredÚ	UserCountÚ
GroupCountÚ
AliasCountN)r2   r3   r4   r[   r   r   r   r^   r*   r*   r*   r+   rÞ   j  s    õrÞ   c                   @   s(   e Zd ZdefdefdefdeffZdS )Ú!SAMPR_DOMAIN_GENERAL_INFORMATION2ÚI1ÚLockoutDurationÚLockoutObservationWindowÚLockoutThresholdN)r2   r3   r4   rÞ   r   r   r^   r*   r*   r*   r+   ræ   z  ó    üræ   c                   @   rD   )ÚSAMPR_DOMAIN_OEM_INFORMATIONrß   N©r2   r3   r4   r   r^   r*   r*   r*   r+   rì   ƒ  rH   rì   c                   @   rD   )ÚSAMPR_DOMAIN_NAME_INFORMATIONrà   Nrí   r*   r*   r*   r+   rî   ‰  rH   rî   c                   @   rD   )Ú$SAMPR_DOMAIN_REPLICATION_INFORMATIONrá   Nrí   r*   r*   r*   r+   rï   �  rH   rï   c                   @   ry   )Ú SAMPR_DOMAIN_LOCKOUT_INFORMATIONrè   ré   rê   N)r2   r3   r4   r   r   r^   r*   r*   r*   r+   rð   •  r|   rð   c                   @   r`   )ÚDOMAIN_INFORMATION_CLASSc                   @   s<   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S )z"DOMAIN_INFORMATION_CLASS.enumItemsr,   r5   rb   r6   rc   rd   re   r7   rf   é   é   é   N)r2   r3   r4   ÚDomainPasswordInformationÚDomainGeneralInformationÚDomainLogoffInformationÚDomainOemInformationÚDomainNameInformationÚDomainReplicationInformationÚDomainServerRoleInformationÚDomainModifiedInformationÚDomainStateInformationÚDomainGeneralInformation2ÚDomainLockoutInformationÚDomainModifiedInformation2r*   r*   r*   r+   rr   ž  s    rr   Nrs   r*   r*   r*   r+   rñ   �  rt   rñ   c                   @   sˆ   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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 )ÚSAMPR_DOMAIN_INFO_BUFFERÚPasswordÚGeneralÚLogoffÚOemr�   ÚRoleÚReplicationÚModifiedÚStateÚGeneral2ÚLockoutÚ	Modified2N)r2   r3   r4   rñ   rõ   rÏ   rö   rÞ   r÷   rÔ   rø   rì   rù   rî   rû   r×   rú   rï   rü   rÙ   rý   rÊ   rþ   ræ   rÿ   rð   r   rÜ   rÁ   r*   r*   r*   r+   r  ­  s    











ôr  c                   @   rD   )ÚPSAMPR_DOMAIN_INFO_BUFFERrF   N)r2   r3   r4   r  rG   r*   r*   r*   r+   r  ½  rH   r  c                   @   rD   )ÚGROUP_ATTRIBUTE_INFORMATIONr®   Nr¯   r*   r*   r*   r+   r  Ã  rH   r  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚSAMPR_GROUP_GENERAL_INFORMATIONr�   r®   r¸   ÚAdminCommentN©r2   r3   r4   r   r   r^   r*   r*   r*   r+   r  É  rë   r  c                   @   rD   )ÚSAMPR_GROUP_NAME_INFORMATIONr�   Nrí   r*   r*   r*   r+   r  Ò  rH   r  c                   @   rD   )Ú#SAMPR_GROUP_ADM_COMMENT_INFORMATIONr  Nrí   r*   r*   r*   r+   r  Ø  rH   r  c                   @   r`   )ÚGROUP_INFORMATION_CLASSc                   @   ó    e Zd ZdZdZdZdZdZdS )z!GROUP_INFORMATION_CLASS.enumItemsr,   r5   rb   r6   rc   N)r2   r3   r4   ÚGroupGeneralInformationÚGroupNameInformationÚGroupAttributeInformationÚGroupAdminCommentInformationÚGroupReplicationInformationr*   r*   r*   r+   rr   ß  ó    rr   Nrs   r*   r*   r*   r+   r  Þ  rt   r  c                   @   sB   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iZdS )ÚSAMPR_GROUP_INFO_BUFFERr  r�   Ú	Attributer  ÚDoNotUseN)r2   r3   r4   r  r  r  r  r  r  r  r  r  r  rÁ   r*   r*   r*   r+   r  ç  ó    




ûr  c                   @   rD   )ÚPSAMPR_GROUP_INFO_BUFFERrF   N)r2   r3   r4   r  rG   r*   r*   r*   r+   r   ð  rH   r   c                   @   s"   e Zd ZdefdefdeffZdS )ÚSAMPR_ALIAS_GENERAL_INFORMATIONr�   r¸   r  Nr  r*   r*   r*   r+   r!  ö  r|   r!  c                   @   rD   )ÚSAMPR_ALIAS_NAME_INFORMATIONr�   Nrí   r*   r*   r*   r+   r"  þ  rH   r"  c                   @   rD   )Ú#SAMPR_ALIAS_ADM_COMMENT_INFORMATIONr  Nrí   r*   r*   r*   r+   r#    rH   r#  c                   @   r`   )ÚALIAS_INFORMATION_CLASSc                   @   ó   e Zd ZdZdZdZdS )z!ALIAS_INFORMATION_CLASS.enumItemsr,   r5   rb   N)r2   r3   r4   ÚAliasGeneralInformationÚAliasNameInformationÚAliasAdminCommentInformationr*   r*   r*   r+   rr     ó    rr   Nrs   r*   r*   r*   r+   r$  
  rt   r$  c                   @   ó.   e Zd Zejdefejdefejde	fiZ
dS )ÚSAMPR_ALIAS_INFO_BUFFERr  r�   r  N)r2   r3   r4   r$  r&  r!  r'  r"  r(  r#  rÁ   r*   r*   r*   r+   r+    ó
    


ýr+  c                   @   rD   )ÚPSAMPR_ALIAS_INFO_BUFFERrF   N)r2   r3   r4   r+  rG   r*   r*   r*   r+   r-    rH   r-  c                   @   rD   )ÚUSER_PRIMARY_GROUP_INFORMATIONÚPrimaryGroupIdNr¯   r*   r*   r*   r+   r.    rH   r.  c                   @   rD   )ÚUSER_CONTROL_INFORMATIONÚUserAccountControlNr¯   r*   r*   r*   r+   r0  $  rH   r0  c                   @   rD   )ÚUSER_EXPIRES_INFORMATIONÚAccountExpiresNrÖ   r*   r*   r*   r+   r2  *  rH   r2  c                   @   r¤   )ÚLOGON_HOURS_ARRAYNr¦   r*   r*   r*   r+   r4  0  r§   r4  c                   @   rD   )ÚPLOGON_HOURS_ARRAYrF   N)r2   r3   r4   r4  rG   r*   r*   r*   r+   r5  3  rH   r5  c                   @   s&   e Zd ZdefdeffZddd„ZdS )ÚSAMPR_LOGON_HOURSÚUnitsPerWeekÚ
LogonHoursr   c                 C   s,   | d dkrt | d ƒd | d< t | |¡S )Nr8  r   r7   r7  )Úlenr   ÚgetData)r&   ÚsoFarr*   r*   r+   r:  ?  s   zSAMPR_LOGON_HOURS.getDataN)r   )r2   r3   r4   r   r5  r^   r:  r*   r*   r*   r+   r6  8  s
    ýr6  c                   @   s  e Zd Zg def‘def‘def‘def‘def‘def‘def‘def‘d	ef‘d
ef‘def‘def‘def‘def‘def‘def‘def‘def‘def‘def‘def‘def‘def‘def‘def‘de	f‘de	f‘de	f‘de	f‘de
f‘de
f‘d e
f‘d!e
f‘R Zd"S )#ÚSAMPR_USER_ALL_INFORMATIONÚ	LastLogonÚ
LastLogoffÚPasswordLastSetr3  ÚPasswordCanChangeÚPasswordMustChangeÚUserNameÚFullNameÚHomeDirectoryÚHomeDirectoryDriveÚ
ScriptPathÚProfilePathr  ÚWorkStationsÚUserCommentÚ
ParametersÚLmOwfPasswordÚNtOwfPasswordÚPrivateDatarª   ÚUserIdr/  r1  ÚWhichFieldsr8  ÚBadPasswordCountÚ
LogonCountÚCountryCodeÚCodePageÚLmPasswordPresentÚNtPasswordPresentÚPasswordExpiredÚPrivateDataSensitiveN)r2   r3   r4   r[   r   rz   r©   r   r6  r   r   r^   r*   r*   r*   r+   r<  E  sˆ    ÿþýüûúùø	÷
öõôóòñðîíìêèçæåäãâá à!ß"Þ#Ý$
Ü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 )ÚSAMPR_USER_GENERAL_INFORMATIONrB  rC  r/  r  rI  Nr  r*   r*   r*   r+   rX  n  rÓ   rX  c                   @   s(   e Zd ZdefdefdefdeffZdS )Ú"SAMPR_USER_PREFERENCES_INFORMATIONrI  Ú	Reserved1rR  rS  N)r2   r3   r4   r   r   r^   r*   r*   r*   r+   rY  x  rë   rY  c                   @   rD   )Ú!SAMPR_USER_PARAMETERS_INFORMATIONrJ  Nrí   r*   r*   r*   r+   r[  �  rH   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fZdS )ÚSAMPR_USER_LOGON_INFORMATIONrB  rC  rN  r/  rD  rE  rF  rG  rH  r=  r>  r?  r@  rA  r8  rP  rQ  r1  N©	r2   r3   r4   r   r   r[   r6  r   r^   r*   r*   r*   r+   r\  ‡  ó(    îr\  c                   @   s|   e Zd Zdefdefdefdefdefdefdefdefd	efd
ef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 )ÚSAMPR_USER_ACCOUNT_INFORMATIONrB  rC  rN  r/  rD  rE  rF  rG  r  rH  r=  r>  r8  rP  rQ  r?  r3  r1  Nr]  r*   r*   r*   r+   r_  ž  r^  r_  c                   @   rD   )ÚSAMPR_USER_A_NAME_INFORMATIONrB  Nrí   r*   r*   r*   r+   r`  µ  rH   r`  c                   @   rD   )ÚSAMPR_USER_F_NAME_INFORMATIONrC  Nrí   r*   r*   r*   r+   ra  »  rH   ra  c                   @   r¬   )ÚSAMPR_USER_NAME_INFORMATIONrB  rC  Nrí   r*   r*   r*   r+   rb  Á  r_   rb  c                   @   r¬   )ÚSAMPR_USER_HOME_INFORMATIONrD  rE  Nrí   r*   r*   r*   r+   rc  È  r_   rc  c                   @   rD   )ÚSAMPR_USER_SCRIPT_INFORMATIONrF  Nrí   r*   r*   r*   r+   rd  Ï  rH   rd  c                   @   rD   )ÚSAMPR_USER_PROFILE_INFORMATIONrG  Nrí   r*   r*   r*   r+   re  Õ  rH   re  c                   @   rD   )Ú$SAMPR_USER_ADMIN_COMMENT_INFORMATIONr  Nrí   r*   r*   r*   r+   rf  Û  rH   rf  c                   @   rD   )Ú#SAMPR_USER_WORKSTATIONS_INFORMATIONrH  Nrí   r*   r*   r*   r+   rg  á  rH   rg  c                   @   rD   )Ú"SAMPR_USER_LOGON_HOURS_INFORMATIONr8  N)r2   r3   r4   r6  r^   r*   r*   r*   r+   rh  ç  rH   rh  c                   @   s    e Zd ZddeffZdd„ ZdS )ÚSAMPR_USER_PASSWORD)r{   z512s=b""rL   c                 C   r…   )Nr6   r*   r€   r*   r*   r+   r�   ò  r‡   z SAMPR_USER_PASSWORD.getAlignmentN)r2   r3   r4   r   r^   r�   r*   r*   r*   r+   ri  í  s
    þri  c                   @   r}   )ÚSAMPR_ENCRYPTED_USER_PASSWORD))r{   z516s=b""c                 C   r…   r†   r*   r€   r*   r*   r+   r�   ú  r‡   z*SAMPR_ENCRYPTED_USER_PASSWORD.getAlignmentNr‚   r*   r*   r*   r+   rj  ö  rƒ   rj  c                   @   rD   )ÚPSAMPR_ENCRYPTED_USER_PASSWORDrF   N)r2   r3   r4   rj  rG   r*   r*   r*   r+   rk  ý  rH   rk  c                   @   r}   )Ú!SAMPR_ENCRYPTED_USER_PASSWORD_NEW))r{   z532s=b""c                 C   r…   r†   r*   r€   r*   r*   r+   r�     r‡   z.SAMPR_ENCRYPTED_USER_PASSWORD_NEW.getAlignmentNr‚   r*   r*   r*   r+   rl    rƒ   rl  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 )Ú SAMPR_USER_INTERNAL1_INFORMATIONÚEncryptedNtOwfPasswordÚEncryptedLmOwfPasswordrU  rT  rV  N)r2   r3   r4   ÚENCRYPTED_NT_OWF_PASSWORDr„   r   r^   r*   r*   r*   r+   rm    rÓ   rm  c                   @   rZ   )Ú SAMPR_USER_INTERNAL4_INFORMATIONrç   ÚUserPasswordN)r2   r3   r4   r<  rj  r^   r*   r*   r*   r+   rq    r_   rq  c                   @   rZ   )Ú$SAMPR_USER_INTERNAL4_INFORMATION_NEWrç   rr  N)r2   r3   r4   r<  rl  r^   r*   r*   r*   r+   rs    r_   rs  c                   @   rZ   )Ú SAMPR_USER_INTERNAL5_INFORMATIONrr  rV  N)r2   r3   r4   rj  r   r^   r*   r*   r*   r+   rt  #  r_   rt  c                   @   rZ   )Ú$SAMPR_USER_INTERNAL5_INFORMATION_NEWrr  rV  N)r2   r3   r4   rl  r   r^   r*   r*   r*   r+   ru  *  r_   ru  c                   @   rZ   )ÚSAMPR_USER_RESET_INFORMATIONÚExtendedWhichFieldsÚ	ResetDataNrž   r*   r*   r*   r+   rv  0  r_   rv  c                   @   r`   )ÚUSER_INFORMATION_CLASSc                   @   sl   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ZdZdS )z USER_INFORMATION_CLASS.enumItemsr,   r5   rb   r6   rc   rd   re   r7   rf   rg   rò   ró   rô   é   r8   é   é   é   é   é   é   é   é   é   N)r2   r3   r4   ÚUserGeneralInformationÚUserPreferencesInformationÚUserLogonInformationÚUserLogonHoursInformationÚUserAccountInformationÚUserNameInformationÚUserAccountNameInformationÚUserFullNameInformationÚUserPrimaryGroupInformationÚUserHomeInformationÚUserScriptInformationÚUserProfileInformationÚUserAdminCommentInformationÚUserWorkStationsInformationÚUserControlInformationÚUserExpiresInformationÚUserInternal1InformationÚUserParametersInformationÚUserAllInformationÚUserInternal4InformationÚUserInternal5InformationÚUserInternal4InformationNewÚUserInternal5InformationNewÚUserResetInformationr*   r*   r*   r+   rr   8  s2    rr   Nrs   r*   r*   r*   r+   ry  7  rt   ry  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ej.de/fej0de1fej2de3fi¥Z4dS )ÚSAMPR_USER_INFO_BUFFERr  ÚPreferencesÚLogonr8  ÚAccountr�   ÚAccountNamerC  ÚPrimaryGroupÚHomeÚScriptÚProfiler  rH  ÚControlÚExpiresÚ	Internal1rJ  ÚAllÚ	Internal4Ú	Internal5ÚInternal4NewÚInternal5NewÚResetN)5r2   r3   r4   ry  r„  rX  r…  rY  r†  r\  r‡  rh  rˆ  r_  r‰  rb  rŠ  r`  r‹  ra  rŒ  r.  r�  rc  rŽ  rd  r�  re  r�  rf  r‘  rg  r’  r0  r“  r2  r”  rm  r•  r[  r–  r<  r—  rq  r˜  rt  r™  rs  rš  ru  r›  rv  rÁ   r*   r*   r*   r+   rœ  S  sX    
ÿ
þ
ý
ü
û
ú
ù
ø
	÷

ö
õ
ô
ó
ò
ñ
ð
ï







èrœ  c                   @   rD   )ÚPSAMPR_USER_INFO_BUFFERrF   N)r2   r3   r4   rœ  rG   r*   r*   r*   r+   r®  o  rH   r®  c                   @   ru   )ÚPSAMPR_SERVER_NAME2))rF   z4s=b""N)r2   r3   r4   rG   r*   r*   r*   r+   r¯  t  rB   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 )ÚSAMPR_DOMAIN_DISPLAY_USERÚIndexÚRidÚAccountControlr   r  rC  Nrž   r*   r*   r*   r+   r°  z  ó    úr°  c                   @   r>   )ÚSAMPR_DOMAIN_DISPLAY_USER_ARRAYN)r2   r3   r4   r°  rA   r*   r*   r*   r+   rµ  „  rB   rµ  c                   @   rD   )Ú PSAMPR_DOMAIN_DISPLAY_USER_ARRAYrF   N)r2   r3   r4   rµ  rG   r*   r*   r*   r+   r¶  ‡  rH   r¶  c                   @   ó.   e Zd ZdefdefdefdefdeffZdS )ÚSAMPR_DOMAIN_DISPLAY_MACHINEr±  r²  r³  r   r  Nrž   r*   r*   r*   r+   r¸  �  rÓ   r¸  c                   @   r>   )Ú"SAMPR_DOMAIN_DISPLAY_MACHINE_ARRAYN)r2   r3   r4   r¸  rA   r*   r*   r*   r+   r¹  –  rB   r¹  c                   @   rD   )Ú#PSAMPR_DOMAIN_DISPLAY_MACHINE_ARRAYrF   N)r2   r3   r4   r¹  rG   r*   r*   r*   r+   rº  ™  rH   rº  c                   @   r·  )ÚSAMPR_DOMAIN_DISPLAY_GROUPr±  r²  r³  r   r  Nrž   r*   r*   r*   r+   r»  Ÿ  rÓ   r»  c                   @   r>   )Ú SAMPR_DOMAIN_DISPLAY_GROUP_ARRAYN)r2   r3   r4   r»  rA   r*   r*   r*   r+   r¼  ¨  rB   r¼  c                   @   rD   )Ú!PSAMPR_DOMAIN_DISPLAY_GROUP_ARRAYrF   N)r2   r3   r4   r¼  rG   r*   r*   r*   r+   r½  «  rH   r½  c                   @   rZ   )ÚSAMPR_DOMAIN_DISPLAY_OEM_USERr±  ÚOemAccountNameN©r2   r3   r4   r   rI   r^   r*   r*   r*   r+   r¾  ±  r_   r¾  c                   @   r>   )Ú#SAMPR_DOMAIN_DISPLAY_OEM_USER_ARRAYN)r2   r3   r4   r¾  rA   r*   r*   r*   r+   rÁ  ·  rB   rÁ  c                   @   rD   )Ú$PSAMPR_DOMAIN_DISPLAY_OEM_USER_ARRAYrF   N)r2   r3   r4   rÁ  rG   r*   r*   r*   r+   rÂ  º  rH   rÂ  c                   @   rZ   )ÚSAMPR_DOMAIN_DISPLAY_OEM_GROUPr±  r¿  NrÀ  r*   r*   r*   r+   rÃ  À  r_   rÃ  c                   @   r>   )Ú$SAMPR_DOMAIN_DISPLAY_OEM_GROUP_ARRAYN)r2   r3   r4   rÃ  rA   r*   r*   r*   r+   rÄ  Æ  rB   rÄ  c                   @   rD   )Ú%PSAMPR_DOMAIN_DISPLAY_OEM_GROUP_ARRAYrF   N)r2   r3   r4   rÄ  rG   r*   r*   r*   r+   rÅ  É  rH   rÅ  c                   @   rZ   )Ú SAMPR_DOMAIN_DISPLAY_USER_BUFFERr¢   r{   N)r2   r3   r4   r   r¶  r^   r*   r*   r*   r+   rÆ  Ï  r_   rÆ  c                   @   rZ   )Ú#SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFERr¢   r{   N)r2   r3   r4   r   rº  r^   r*   r*   r*   r+   rÇ  Ö  r_   rÇ  c                   @   rZ   )Ú!SAMPR_DOMAIN_DISPLAY_GROUP_BUFFERr¢   r{   N)r2   r3   r4   r   r½  r^   r*   r*   r*   r+   rÈ  Ý  r_   rÈ  c                   @   rZ   )Ú$SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFERr¢   r{   N)r2   r3   r4   r   rÂ  r^   r*   r*   r*   r+   rÉ  ä  r_   rÉ  c                   @   rZ   )Ú%SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFERr¢   r{   N)r2   r3   r4   r   rÅ  r^   r*   r*   r*   r+   rÊ  ë  r_   rÊ  c                   @   r`   )ÚDOMAIN_DISPLAY_INFORMATIONc                   @   r  )z$DOMAIN_DISPLAY_INFORMATION.enumItemsr,   r5   rb   r6   rc   N)r2   r3   r4   ÚDomainDisplayUserÚDomainDisplayMachineÚDomainDisplayGroupÚDomainDisplayOemUserÚDomainDisplayOemGroupr*   r*   r*   r+   rr   ó  r  rr   Nrs   r*   r*   r*   r+   rË  ò  rt   rË  c                   @   sB   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iZdS )ÚSAMPR_DISPLAY_INFO_BUFFERÚUserInformationÚMachineInformationÚGroupInformationÚOemUserInformationÚOemGroupInformationN)r2   r3   r4   rË  rÌ  rÆ  rÍ  rÇ  rÎ  rÈ  rÏ  rÉ  rÐ  rÊ  rÁ   r*   r*   r*   r+   rÑ  û  r  rÑ  c                   @   rZ   )ÚSAM_VALIDATE_PASSWORD_HASHrL   ÚHashN)r2   r3   r4   r   r   r^   r*   r*   r*   r+   r×    r_   r×  c                   @   rD   )ÚPSAM_VALIDATE_PASSWORD_HASHrF   N)r2   r3   r4   r×  rG   r*   r*   r*   r+   rÙ    rH   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 )	ÚSAM_VALIDATE_PERSISTED_FIELDSÚPresentFieldsr?  ÚBadPasswordTimeÚLockoutTimerP  rÐ   ÚPasswordHistoryN)r2   r3   r4   r   r   rÙ  r^   r*   r*   r*   r+   rÚ    s    ùrÚ  c                   @   r`   )ÚSAM_VALIDATE_VALIDATION_STATUSc                   @   s8   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S )z(SAM_VALIDATE_VALIDATION_STATUS.enumItemsr   r,   r5   rb   r6   rc   rd   re   r7   rf   rg   N)r2   r3   r4   ÚSamValidateSuccessÚSamValidatePasswordMustChangeÚSamValidateAccountLockedOutÚSamValidatePasswordExpiredÚSamValidatePasswordIncorrectÚSamValidatePasswordIsInHistoryÚSamValidatePasswordTooShortÚSamValidatePasswordTooLongÚ#SamValidatePasswordNotComplexEnoughÚSamValidatePasswordTooRecentÚSamValidatePasswordFilterErrorr*   r*   r*   r+   rr     s    rr   Nrs   r*   r*   r*   r+   rß    rt   rß  c                   @   rZ   )Ú SAM_VALIDATE_STANDARD_OUTPUT_ARGÚChangedPersistedFieldsÚValidationStatusN)r2   r3   r4   rÚ  rß  r^   r*   r*   r*   r+   rë  ,  r_   rë  c                   @   rD   )Ú!PSAM_VALIDATE_STANDARD_OUTPUT_ARGrF   N)r2   r3   r4   rë  rG   r*   r*   r*   r+   rî  2  rH   rî  c                   @   rZ   )Ú%SAM_VALIDATE_AUTHENTICATION_INPUT_ARGÚInputPersistedFieldsÚPasswordMatchedN)r2   r3   r4   rÚ  r   r^   r*   r*   r*   r+   rï  8  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 )Ú&SAM_VALIDATE_PASSWORD_CHANGE_INPUT_ARGrð  ÚClearPasswordÚUserAccountNameÚHashedPasswordÚPasswordMatchN©r2   r3   r4   rÚ  r   r×  r   r^   r*   r*   r*   r+   rò  ?  rÓ   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 )Ú%SAM_VALIDATE_PASSWORD_RESET_INPUT_ARGrð  ró  rô  rõ  ÚPasswordMustChangeAtNextLogonÚClearLockoutNr÷  r*   r*   r*   r+   rø  I  r´  rø  c                   @   r`   )ÚPASSWORD_POLICY_VALIDATION_TYPEc                   @   r%  )z)PASSWORD_POLICY_VALIDATION_TYPE.enumItemsr,   r5   rb   N)r2   r3   r4   ÚSamValidateAuthenticationÚSamValidatePasswordChangeÚSamValidatePasswordResetr*   r*   r*   r+   rr   U  r)  rr   Nrs   r*   r*   r*   r+   rû  T  rt   rû  c                   @   r*  )ÚSAM_VALIDATE_INPUT_ARGÚValidateAuthenticationInputÚValidatePasswordChangeInputÚValidatePasswordResetInputN)r2   r3   r4   rû  rü  rï  rý  rò  rþ  rø  rÁ   r*   r*   r*   r+   rÿ  [  r,  rÿ  c                   @   s.   e Zd ZejdefejdefejdefiZdS )ÚSAM_VALIDATE_OUTPUT_ARGÚValidateAuthenticationOutputÚValidatePasswordChangeOutputÚValidatePasswordResetOutputN)	r2   r3   r4   rû  rü  rë  rý  rþ  rÁ   r*   r*   r*   r+   r  c  r,  r  c                   @   rD   )ÚPSAM_VALIDATE_OUTPUT_ARGrF   N)r2   r3   r4   r  rG   r*   r*   r*   r+   r  j  rH   r  c                   @   ru   )ÚUSER_PROPERTIES))rZ  ú<L=0)rL   r	  ©Ú	Reserved2ú<H=0©Ú	Reserved3r  )Ú	Reserved4z96s="")ÚPropertySignaturez<H=0x50N©r2   r3   r4   r^   r*   r*   r*   r+   r  r  rB   r  c                 C   sÚ   t | ƒ}t|ƒ}d|d  }||k rt d¡‚t| ƒ|kr"t d¡‚||kr9d|d< | ||d … |d< |dd	fS t| ƒ|d
 k rFt d¡‚t d| ||d
 … ¡d }||d< | ||d … |d< ||| |d
 |… fS )Nró   rL   z4USER_PROPERTIES length shorter than the fixed headerz!USER_PROPERTIES missing Reserved5r   ÚPropertyCountr,   Ú	Reserved5ó    r5   z%USER_PROPERTIES missing PropertyCountrw   )r  r9  ÚstructÚerrorÚunpack)ÚdataÚuser_propertiesÚproperty_count_offsetÚproperties_endÚproperty_countr*   r*   r+   Úunpack_user_properties}  s"   



r  c                   @   ru   )ÚUSER_PROPERTY))Ú
NameLengthr  )ÚValueLengthr  )ÚReservedr  )Ú_PropertyNamez_-PropertyNamezself['NameLength'])ÚPropertyNameú:)Ú_PropertyValuez_-PropertyValuezself['ValueLength'])ÚPropertyValuer$  Nr  r*   r*   r*   r+   r  œ  rB   r  c                   @   ru   )ÚWDIGEST_CREDENTIALS)")rZ  úB=0)r  r(  )ÚVersionzB=1)ÚNumberOfHasheszB=29)r  z12s="")ÚHash1ú16s="")ÚHash2r,  )ÚHash3r,  )ÚHash4r,  )ÚHash5r,  )ÚHash6r,  )ÚHash7r,  )ÚHash8r,  )ÚHash9r,  )ÚHash10r,  )ÚHash11r,  )ÚHash12r,  )ÚHash13r,  )ÚHash14r,  )ÚHash15r,  )ÚHash16r,  )ÚHash17r,  )ÚHash18r,  )ÚHash19r,  )ÚHash20r,  )ÚHash21r,  )ÚHash22r,  )ÚHash23r,  )ÚHash24r,  )ÚHash25r,  )ÚHash26r,  )ÚHash27r,  )ÚHash28r,  )ÚHash29r,  Nr  r*   r*   r*   r+   r'  ¨  rB   r'  c                   @   ru   )ÚKERB_KEY_DATA)©rZ  r  r
  r  ©ÚKeyTyper	  ©Ú	KeyLengthr	  ©Ú	KeyOffsetr	  Nr  r*   r*   r*   r+   rI  Ï  rB   rI  c                   @   ru   )ÚKERB_STORED_CREDENTIAL))r¼   z<H=3©ÚFlagsr  ©ÚCredentialCountr  ©ÚOldCredentialCountr  ©ÚDefaultSaltLengthr  ©ÚDefaultSaltMaximumLengthr  ©ÚDefaultSaltOffsetr	  ©r{   r$  Nr  r*   r*   r*   r+   rQ  Ú  rB   rQ  c                   @   ru   )ÚKERB_KEY_DATA_NEW)rJ  r
  )r  r	  )ÚIterationCountr	  rK  rM  rO  Nr  r*   r*   r*   r+   r_  ì  rB   r_  c                   @   ru   )ÚKERB_STORED_CREDENTIAL_NEW))r¼   z<H=4rR  rT  )ÚServiceCredentialCountr  rV  )ÚOlderCredentialCountr  rX  rZ  r\  )ÚDefaultIterationCountr	  r^  Nr  r*   r*   r*   r+   ra  ø  rB   ra  c                   @   ó    e Zd ZdZdefdeffZdS )ÚSamrConnectr   Ú
ServerNameÚDesiredAccessN)r2   r3   r4   Úopnumr¯  r   r^   r*   r*   r*   r+   rf    ó
    þrf  c                   @   rZ   )ÚSamrConnectResponseÚServerHandleÚ	ErrorCodeN©r2   r3   r4   r~   r   r^   r*   r*   r*   r+   rk    r_   rk  c                   @   re  )ÚSamrCloseHandler,   Ú	SamHandlerh  N)r2   r3   r4   ri  r~   r   r^   r*   r*   r*   r+   ro    rj  ro  c                   @   rZ   )ÚSamrCloseHandleResponserp  rm  Nrn  r*   r*   r*   r+   rq  &  r_   rq  c                   @   ó&   e Zd ZdZdefdefdeffZdS )ÚSamrSetSecurityObjectr5   ÚObjectHandleÚSecurityInformationrª   N)r2   r3   r4   ri  r~   r   r©   r^   r*   r*   r*   r+   rs  ,  ó    ýrs  c                   @   rD   )ÚSamrSetSecurityObjectResponserm  Nr¯   r*   r*   r*   r+   rw  4  rH   rw  c                   @   re  )ÚSamrQuerySecurityObjectrb   rt  ru  N)r2   r3   r4   ri  r~   r   r^   r*   r*   r*   r+   rx  9  rj  rx  c                   @   rZ   )ÚSamrQuerySecurityObjectResponserª   rm  N)r2   r3   r4   r«   r   r^   r*   r*   r*   r+   ry  @  r_   ry  c                   @   re  )ÚSamrLookupDomainInSamServerrc   rl  r�   N)r2   r3   r4   ri  r~   r   r^   r*   r*   r*   r+   rz  F  rj  rz  c                   @   rZ   )Ú#SamrLookupDomainInSamServerResponseÚDomainIdrm  N©r2   r3   r4   r   r   r^   r*   r*   r*   r+   r{  M  r_   r{  c                   @   ó&   e Zd ZdZdefdefdeffZdS )ÚSamrEnumerateDomainsInSamServerrd   rl  ÚEnumerationContextÚPreferedMaximumLengthN©r2   r3   r4   ri  r~   r   r^   r*   r*   r*   r+   r  S  rv  r  c                   @   ó(   e Zd ZdefdefdefdeffZdS )Ú'SamrEnumerateDomainsInSamServerResponser€  r{   ÚCountReturnedrm  N©r2   r3   r4   r   r£   r^   r*   r*   r*   r+   r„  [  rë   r„  c                   @   rr  )ÚSamrOpenDomainre   rl  rh  r|  N)r2   r3   r4   ri  r~   r   r   r^   r*   r*   r*   r+   r‡  c  rv  r‡  c                   @   rZ   )ÚSamrOpenDomainResponseÚDomainHandlerm  Nrn  r*   r*   r*   r+   rˆ  k  r_   rˆ  c                   @   re  )ÚSamrQueryInformationDomainr7   r‰  ÚDomainInformationClassN©r2   r3   r4   ri  r~   rñ   r^   r*   r*   r*   r+   rŠ  q  rj  rŠ  c                   @   rZ   )Ú"SamrQueryInformationDomainResponser{   rm  N©r2   r3   r4   r  r   r^   r*   r*   r*   r+   r�  x  r_   r�  c                   @   rr  )ÚSamrSetInformationDomainrf   r‰  r‹  ÚDomainInformationN)r2   r3   r4   ri  r~   rñ   r  r^   r*   r*   r*   r+   r�  ~  rv  r�  c                   @   rD   )Ú SamrSetInformationDomainResponserm  Nr¯   r*   r*   r*   r+   r‘  †  rH   r‘  c                   @   rr  )ÚSamrCreateGroupInDomainrg   r‰  r�   rh  N©r2   r3   r4   ri  r~   r   r   r^   r*   r*   r*   r+   r’  ‹  rv  r’  c                   @   r¶   )ÚSamrCreateGroupInDomainResponseÚGroupHandlerœ   rm  Nrn  r*   r*   r*   r+   r”  “  r|   r”  c                   @   r~  )ÚSamrEnumerateGroupsInDomainrò   r‰  r€  r�  Nr‚  r*   r*   r*   r+   r–  š  rv  r–  c                   @   rr  )ÚSamrCreateUserInDomainró   r‰  r�   rh  Nr“  r*   r*   r*   r+   r—  ¢  rv  r—  c                   @   r¶   )ÚSamrCreateUserInDomainResponseÚ
UserHandlerœ   rm  Nrn  r*   r*   r*   r+   r˜  ª  r|   r˜  c                   @   rƒ  )Ú#SamrEnumerateGroupsInDomainResponser€  r{   r…  rm  Nr†  r*   r*   r*   r+   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 )ÚSamrEnumerateUsersInDomainrô   r‰  r€  r1  r�  Nr‚  r*   r*   r*   r+   r›  ¹  ó    ür›  c                   @   rƒ  )Ú"SamrEnumerateUsersInDomainResponser€  r{   r…  rm  Nr†  r*   r*   r*   r+   r�  Â  rë   r�  c                   @   rr  )ÚSamrCreateAliasInDomainrz  r‰  r   rh  Nr“  r*   r*   r*   r+   rž  Ê  rv  rž  c                   @   r¶   )ÚSamrCreateAliasInDomainResponseÚAliasHandlerœ   rm  Nrn  r*   r*   r*   r+   rŸ  Ò  r|   rŸ  c                   @   r~  )ÚSamrEnumerateAliasesInDomainé   r‰  r€  r�  Nr‚  r*   r*   r*   r+   r¡  Ú  rv  r¡  c                   @   rƒ  )Ú$SamrEnumerateAliasesInDomainResponser€  r{   r…  rm  Nr†  r*   r*   r*   r+   r£  â  rë   r£  c                   @   re  )ÚSamrGetAliasMembershipr8   r‰  ÚSidArrayN©r2   r3   r4   ri  r~   r–   r^   r*   r*   r*   r+   r¤  ê  rj  r¤  c                   @   rZ   )ÚSamrGetAliasMembershipResponseÚ
Membershiprm  N©r2   r3   r4   r�   r   r^   r*   r*   r*   r+   r§  ñ  r_   r§  c                   @   rr  )ÚSamrLookupNamesInDomainr{  r‰  rŽ   ÚNamesN)r2   r3   r4   ri  r~   r   r?   r^   r*   r*   r*   r+   rª  ÷  rv  rª  c                   @   ry   )ÚSamrLookupNamesInDomainResponseÚRelativeIdsÚUserm  Nr©  r*   r*   r*   r+   r¬  ÿ  r|   r¬  c                   @   rr  )ÚSamrLookupIdsInDomainr|  r‰  rŽ   r­  N)r2   r3   r4   ri  r~   r   rŒ   r^   r*   r*   r*   r+   r¯    rv  r¯  c                   @   s"   e Zd ZdefdefdeffZdS )ÚSamrLookupIdsInDomainResponser«  r®  rm  N)r2   r3   r4   rš   r�   r   r^   r*   r*   r*   r+   r°    r|   r°  c                   @   r~  )ÚSamrOpenGroupé   r‰  rh  ÚGroupIdNr‚  r*   r*   r*   r+   r±    rv  r±  c                   @   rZ   )ÚSamrOpenGroupResponser•  rm  Nrn  r*   r*   r*   r+   r´    r_   r´  c                   @   re  )ÚSamrQueryInformationGroupr}  r•  ÚGroupInformationClassN)r2   r3   r4   ri  r~   r  r^   r*   r*   r*   r+   rµ  #  rj  rµ  c                   @   rZ   )Ú!SamrQueryInformationGroupResponser{   rm  N)r2   r3   r4   r   r   r^   r*   r*   r*   r+   r·  *  r_   r·  c                   @   rr  )ÚSamrSetInformationGroupr~  r•  r¶  r{   N)r2   r3   r4   ri  r~   r  r  r^   r*   r*   r*   r+   r¸  0  rv  r¸  c                   @   rD   )ÚSamrSetInformationGroupResponserm  Nr¯   r*   r*   r*   r+   r¹  8  rH   r¹  c                   @   r~  )ÚSamrAddMemberToGroupé   r•  ÚMemberIdr®   Nr‚  r*   r*   r*   r+   rº  =  rv  rº  c                   @   rD   )ÚSamrAddMemberToGroupResponserm  Nr¯   r*   r*   r*   r+   r½  E  rH   r½  c                   @   ó   e Zd ZdZdeffZdS )ÚSamrDeleteGroupr  r•  N©r2   r3   r4   ri  r~   r^   r*   r*   r*   r+   r¿  J  ó    ÿr¿  c                   @   rZ   )ÚSamrDeleteGroupResponser•  rm  Nrn  r*   r*   r*   r+   rÂ  P  r_   rÂ  c                   @   re  )ÚSamrRemoveMemberFromGroupr€  r•  r¼  Nr‚  r*   r*   r*   r+   rÃ  V  rj  rÃ  c                   @   rD   )Ú!SamrRemoveMemberFromGroupResponserm  Nr¯   r*   r*   r*   r+   rÄ  ]  rH   rÄ  c                   @   r¾  )ÚSamrGetMembersInGroupr�  r•  NrÀ  r*   r*   r*   r+   rÅ  b  rÁ  rÅ  c                   @   rZ   )ÚSamrGetMembersInGroupResponser¹   rm  N)r2   r3   r4   rº   r   r^   r*   r*   r*   r+   rÆ  h  r_   rÆ  c                   @   r~  )ÚSamrSetMemberAttributesOfGroupr‚  r•  r¼  r®   Nr‚  r*   r*   r*   r+   rÇ  n  rv  rÇ  c                   @   rD   )Ú&SamrSetMemberAttributesOfGroupResponserm  Nr¯   r*   r*   r*   r+   rÈ  v  rH   rÈ  c                   @   r~  )ÚSamrOpenAliasé   r‰  rh  ÚAliasIdNr‚  r*   r*   r*   r+   rÉ  {  rv  rÉ  c                   @   rZ   )ÚSamrOpenAliasResponser   rm  Nrn  r*   r*   r*   r+   rÌ  ƒ  r_   rÌ  c                   @   re  )ÚSamrQueryInformationAliasé   r   ÚAliasInformationClassN)r2   r3   r4   ri  r~   r$  r^   r*   r*   r*   r+   rÍ  ‰  rj  rÍ  c                   @   rZ   )Ú!SamrQueryInformationAliasResponser{   rm  N)r2   r3   r4   r-  r   r^   r*   r*   r*   r+   rÐ  �  r_   rÐ  c                   @   rr  )ÚSamrSetInformationAliasé   r   rÏ  r{   N)r2   r3   r4   ri  r~   r$  r+  r^   r*   r*   r*   r+   rÑ  –  rv  rÑ  c                   @   rD   )ÚSamrSetInformationAliasResponserm  Nr¯   r*   r*   r*   r+   rÓ  ž  rH   rÓ  c                   @   r¾  )ÚSamrDeleteAliasrƒ  r   NrÀ  r*   r*   r*   r+   rÔ  £  rÁ  rÔ  c                   @   rZ   )ÚSamrDeleteAliasResponser   rm  Nrn  r*   r*   r*   r+   rÕ  ©  r_   rÕ  c                   @   re  )ÚSamrAddMemberToAliasé   r   r¼  N©r2   r3   r4   ri  r~   r   r^   r*   r*   r*   r+   rÖ  ¯  rj  rÖ  c                   @   rD   )ÚSamrAddMemberToAliasResponserm  Nr¯   r*   r*   r*   r+   rÙ  ¶  rH   rÙ  c                   @   re  )ÚSamrRemoveMemberFromAliasr9   r   r¼  NrØ  r*   r*   r*   r+   rÚ  »  rj  rÚ  c                   @   rD   )Ú!SamrRemoveMemberFromAliasResponserm  Nr¯   r*   r*   r*   r+   rÛ  Â  rH   rÛ  c                   @   r¾  )ÚSamrGetMembersInAliasé!   r   NrÀ  r*   r*   r*   r+   rÜ  Ç  rÁ  rÜ  c                   @   rZ   )ÚSamrGetMembersInAliasResponser¹   rm  N)r2   r3   r4   r™   r   r^   r*   r*   r*   r+   rÞ  Í  r_   rÞ  c                   @   r~  )ÚSamrOpenUseré"   r‰  rh  rN  Nr‚  r*   r*   r*   r+   rß  Ó  rv  rß  c                   @   rZ   )ÚSamrOpenUserResponser™  rm  Nrn  r*   r*   r*   r+   rá  Û  r_   rá  c                   @   r¾  )ÚSamrDeleteUseré#   r™  NrÀ  r*   r*   r*   r+   râ  á  rÁ  râ  c                   @   rZ   )ÚSamrDeleteUserResponser™  rm  Nrn  r*   r*   r*   r+   rä  ç  r_   rä  c                   @   re  )ÚSamrQueryInformationUseré$   r™  ÚUserInformationClassN©r2   r3   r4   ri  r~   ry  r^   r*   r*   r*   r+   rå  í  rj  rå  c                   @   rZ   )Ú SamrQueryInformationUserResponser{   rm  N©r2   r3   r4   r®  r   r^   r*   r*   r*   r+   ré  ô  r_   ré  c                   @   rr  )ÚSamrSetInformationUseré%   r™  rç  r{   N©r2   r3   r4   ri  r~   ry  rœ  r^   r*   r*   r*   r+   rë  ú  rv  rë  c                   @   rD   )ÚSamrSetInformationUserResponserm  Nr¯   r*   r*   r*   r+   rî    rH   rî  c                   @   sV   e Zd ZdZdefdefdefdefdefdefdefd	efd
efdefdeffZdS )ÚSamrChangePasswordUseré&   r™  Ú	LmPresentÚOldLmEncryptedWithNewLmÚNewLmEncryptedWithOldLmÚ	NtPresentÚOldNtEncryptedWithNewNtÚNewNtEncryptedWithOldNtÚNtCrossEncryptionPresentÚNewNtEncryptedWithNewLmÚLmCrossEncryptionPresentÚNewLmEncryptedWithNewNtN)	r2   r3   r4   ri  r~   r   rˆ   ÚPENCRYPTED_NT_OWF_PASSWORDr^   r*   r*   r*   r+   rï    s    õrï  c                   @   rD   )ÚSamrChangePasswordUserResponserm  Nr¯   r*   r*   r*   r+   rü    rH   rü  c                   @   r¾  )ÚSamrGetGroupsForUseré'   r™  NrÀ  r*   r*   r*   r+   rý    rÁ  rý  c                   @   rZ   )ÚSamrGetGroupsForUserResponser´   rm  N)r2   r3   r4   rµ   r   r^   r*   r*   r*   r+   rÿ  "  r_   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 )ÚSamrQueryDisplayInformationé(   r‰  ÚDisplayInformationClassr±  Ú
EntryCountÚPreferredMaximumLengthN©r2   r3   r4   ri  r~   rË  r   r^   r*   r*   r*   r+   r  (  ó    ûr  c                   @   ó(   e Zd ZdefdefdefdeffZdS )Ú#SamrQueryDisplayInformationResponseÚTotalAvailableÚTotalReturnedr{   rm  N©r2   r3   r4   r   rÑ  r^   r*   r*   r*   r+   r	  2  rë   r	  c                   @   rr  )ÚSamrGetDisplayEnumerationIndexé)   r‰  r  ÚPrefixN©r2   r3   r4   ri  r~   rË  r   r^   r*   r*   r*   r+   r  :  rv  r  c                   @   r¬   )Ú&SamrGetDisplayEnumerationIndexResponser±  rm  Nr¯   r*   r*   r*   r+   r  B  r_   r  c                   @   r¾  )Ú$SamrGetUserDomainPasswordInformationé,   r™  NrÀ  r*   r*   r*   r+   r  H  rÁ  r  c                   @   rZ   )Ú,SamrGetUserDomainPasswordInformationResponseÚPasswordInformationrm  N©r2   r3   r4   rÂ   r   r^   r*   r*   r*   r+   r  N  r_   r  c                   @   re  )Ú!SamrRemoveMemberFromForeignDomainé-   r‰  Ú	MemberSidNrØ  r*   r*   r*   r+   r  T  rj  r  c                   @   rD   )Ú)SamrRemoveMemberFromForeignDomainResponserm  Nr¯   r*   r*   r*   r+   r  [  rH   r  c                   @   re  )ÚSamrQueryInformationDomain2é.   r‰  r‹  NrŒ  r*   r*   r*   r+   r  `  rj  r  c                   @   rZ   )Ú#SamrQueryInformationDomain2Responser{   rm  NrŽ  r*   r*   r*   r+   r  g  r_   r  c                   @   re  )ÚSamrQueryInformationUser2é/   r™  rç  Nrè  r*   r*   r*   r+   r  m  rj  r  c                   @   rZ   )Ú!SamrQueryInformationUser2Responser{   rm  Nrê  r*   r*   r*   r+   r   t  r_   r   c                   @   r   )ÚSamrQueryDisplayInformation2é0   r‰  r  r±  r  r  Nr  r*   r*   r*   r+   r!  z  r  r!  c                   @   r  )Ú$SamrQueryDisplayInformation2Responser
  r  r{   rm  Nr  r*   r*   r*   r+   r#  „  rë   r#  c                   @   rr  )ÚSamrGetDisplayEnumerationIndex2é1   r‰  r  r  Nr  r*   r*   r*   r+   r$  Œ  rv  r$  c                   @   r¬   )Ú'SamrGetDisplayEnumerationIndex2Responser±  rm  Nr¯   r*   r*   r*   r+   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 )ÚSamrCreateUser2InDomainé2   r‰  r�   ÚAccountTyperh  Nr“  r*   r*   r*   r+   r'  š  rœ  r'  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚSamrCreateUser2InDomainResponser™  ÚGrantedAccessrœ   rm  Nrn  r*   r*   r*   r+   r*  £  rë   r*  c                   @   r   )ÚSamrQueryDisplayInformation3é3   r‰  r  r±  r  r  Nr  r*   r*   r*   r+   r,  «  r  r,  c                   @   r  )Ú$SamrQueryDisplayInformation3Responser
  r  r{   rm  Nr  r*   r*   r*   r+   r.  µ  rë   r.  c                   @   re  )ÚSamrAddMultipleMembersToAliasé4   r   ÚMembersBufferNr¦  r*   r*   r*   r+   r/  ½  rj  r/  c                   @   rD   )Ú%SamrAddMultipleMembersToAliasResponserm  Nr¯   r*   r*   r*   r+   r2  Ä  rH   r2  c                   @   re  )Ú"SamrRemoveMultipleMembersFromAliasé5   r   r1  Nr¦  r*   r*   r*   r+   r3  É  rj  r3  c                   @   rD   )Ú*SamrRemoveMultipleMembersFromAliasResponserm  Nr¯   r*   r*   r*   r+   r5  Ð  rH   r5  c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚSamrOemChangePasswordUser2é6   rg  rB  ÚNewPasswordEncryptedWithOldLmÚ"OldLmOwfPasswordEncryptedWithNewLmN)	r2   r3   r4   ri  rY   rI   rk  rˆ   r^   r*   r*   r*   r+   r6  Õ  rœ  r6  c                   @   rD   )Ú"SamrOemChangePasswordUser2Responserm  Nr¯   r*   r*   r*   r+   r:  Þ  rH   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 )
ÚSamrUnicodeChangePasswordUser2é7   rg  rB  ÚNewPasswordEncryptedWithOldNtÚ"OldNtOwfPasswordEncryptedWithNewNtrñ  r8  Ú"OldLmOwfPasswordEncryptedWithNewNtN)r2   r3   r4   ri  r   r   rk  rû  r   rˆ   r^   r*   r*   r*   r+   r;  ã  s    ùr;  c                   @   rD   )Ú&SamrUnicodeChangePasswordUser2Responserm  Nr¯   r*   r*   r*   r+   r@  ï  rH   r@  c                   @   r¾  )Ú SamrGetDomainPasswordInformationé8   ÚUnusedN)r2   r3   r4   ri  r   r^   r*   r*   r*   r+   rA  ô  s    þrA  c                   @   rZ   )Ú(SamrGetDomainPasswordInformationResponser  rm  Nr  r*   r*   r*   r+   rD  û  r_   rD  c                   @   re  )ÚSamrConnect2é9   rg  rh  N©r2   r3   r4   ri  ÚPSAMPR_SERVER_NAMEr   r^   r*   r*   r*   r+   rE  	  rj  rE  c                   @   rZ   )ÚSamrConnect2Responserl  rm  Nrn  r*   r*   r*   r+   rI  	  r_   rI  c                   @   rr  )ÚSamrSetInformationUser2é:   r™  rç  r{   Nrí  r*   r*   r*   r+   rJ  	  rv  rJ  c                   @   rD   )ÚSamrSetInformationUser2Responserm  Nr¯   r*   r*   r*   r+   rL  	  rH   rL  c                   @   r~  )ÚSamrConnect4é>   rg  ÚClientRevisionrh  NrG  r*   r*   r*   r+   rM  	  rv  rM  c                   @   rZ   )ÚSamrConnect4Responserl  rm  Nrn  r*   r*   r*   r+   rP  #	  r_   rP  c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚSamrConnect5r:   rg  rh  Ú	InVersionÚInRevisionInfoN)r2   r3   r4   ri  rH  r   r¾   r^   r*   r*   r*   r+   rQ  )	  rœ  rQ  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚSamrConnect5ResponseÚ
OutVersionÚOutRevisionInforl  rm  N)r2   r3   r4   r   r¾   r~   r^   r*   r*   r*   r+   rT  2	  rë   rT  c                   @   re  )ÚSamrRidToSidéA   rt  r²  Nr‚  r*   r*   r*   r+   rW  :	  rj  rW  c                   @   rZ   )ÚSamrRidToSidResponseÚSidrm  Nr}  r*   r*   r*   r+   rY  A	  r_   rY  c                   @   rr  )ÚSamrSetDSRMPasswordéB   rC  rN  rn  N)r2   r3   r4   ri  r   r   rû  r^   r*   r*   r*   r+   r[  G	  rv  r[  c                   @   rD   )ÚSamrSetDSRMPasswordResponserm  Nr¯   r*   r*   r*   r+   r]  O	  rH   r]  c                   @   re  )ÚSamrValidatePasswordéC   ÚValidationTypeÚInputArgN)r2   r3   r4   ri  rû  rÿ  r^   r*   r*   r*   r+   r^  T	  rj  r^  c                   @   rZ   )ÚSamrValidatePasswordResponseÚ	OutputArgrm  N)r2   r3   r4   r  r   r^   r*   r*   r*   r+   rb  [	  r_   rb  rb   rc   rd   re   rf   rg   rò   ró   rô   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-  r0  r4  )
r7  r<  rB  rF  rK  rN  r:   rX  r\  r_  ú c                 C   sD   t ƒ }||d< ||d< ||d< ||d d< ||d d d< |  |¡S )Nrg  rh  rR  rS  r¿   rÀ   r¼   )rQ  Úrequest)ÚdceÚ
serverNameÚdesiredAccessÚ	inVersionÚrevisionre  r*   r*   r+   ÚhSamrConnect5¨	  s   
rk  c                 C   ó(   t ƒ }||d< ||d< ||d< |  |¡S )Nrg  rh  rO  )rM  re  )rf  rg  rh  ÚclientRevisionre  r*   r*   r+   ÚhSamrConnect4±	  ó
   
rn  c                 C   ó    t ƒ }||d< ||d< |  |¡S ©Nrg  rh  )rE  re  ©rf  rg  rh  re  r*   r*   r+   ÚhSamrConnect2¸	  ó   
rs  c                 C   rp  rq  )rf  re  rr  r*   r*   r+   ÚhSamrConnect¾	  rt  ru  c                 C   rl  )Nrl  rh  r|  )r‡  re  )rf  ÚserverHandlerh  ÚdomainIdre  r*   r*   r+   ÚhSamrOpenDomainÄ	  ro  rx  c                 C   rl  )Nr‰  rh  r³  )r±  re  )rf  ÚdomainHandlerh  ÚgroupIdre  r*   r*   r+   ÚhSamrOpenGroupË	  ro  r{  c                 C   rl  )Nr‰  rh  rË  )rÉ  re  )rf  ry  rh  ÚaliasIdre  r*   r*   r+   ÚhSamrOpenAliasÒ	  ro  r}  c                 C   rl  )Nr‰  rh  rN  )rß  re  )rf  ry  rh  ÚuserIdre  r*   r*   r+   ÚhSamrOpenUserÙ	  ro  r  ì   ÿÿ c                 C   rl  )Nrl  r€  r�  )r  re  )rf  rv  ÚenumerationContextÚpreferedMaximumLengthre  r*   r*   r+   Ú hSamrEnumerateDomainsInSamServerà	  ro  rƒ  c                 C   rl  ©Nr‰  r€  r�  )r–  re  ©rf  ry  r�  r‚  re  r*   r*   r+   ÚhSamrEnumerateGroupsInDomainç	  ro  r†  c                 C   rl  r„  )r¡  re  r…  r*   r*   r+   ÚhSamrEnumerateAliasesInDomainî	  ro  r‡  c                 C   s0   t ƒ }||d< ||d< ||d< ||d< |  |¡S )Nr‰  r1  r€  r�  )r›  re  )rf  ry  ÚuserAccountControlr�  r‚  re  r*   r*   r+   ÚhSamrEnumerateUsersInDomainõ	  s   
r‰  c                 C   ó8   t ƒ }||d< ||d< ||d< ||d< ||d< |  |¡S ©Nr‰  r  r±  r  r  )r,  re  ©rf  ry  ÚdisplayInformationClassÚindexÚ
entryCountr‚  re  r*   r*   r+   ÚhSamrQueryDisplayInformation3ý	  ó   
r�  c                 C   rŠ  r‹  )r!  re  rŒ  r*   r*   r+   ÚhSamrQueryDisplayInformation2
  r‘  r’  c                 C   rŠ  r‹  )r  re  rŒ  r*   r*   r+   ÚhSamrQueryDisplayInformation
  r‘  r“  rO   c                 C   rl  ©Nr‰  r  r  )r$  re  ©rf  ry  r�  Úprefixre  r*   r*   r+   Ú hSamrGetDisplayEnumerationIndex2
  ro  r—  c                 C   rl  r”  )r  re  r•  r*   r*   r+   ÚhSamrGetDisplayEnumerationIndex
  ro  r˜  c                 C   rl  ©Nr‰  r�   rh  )r’  re  ©rf  ry  Únamerh  re  r*   r*   r+   ÚhSamrCreateGroupInDomain&
  ro  rœ  c                 C   rl  )Nr‰  r   rh  )rž  re  )rf  ry  ÚaccountNamerh  re  r*   r*   r+   ÚhSamrCreateAliasInDomain-
  ro  rž  c              
   C   s†   t ƒ }||d< ||d< ||d< ||d< z|  |¡W S  tyB } z|jdkr*tdƒ‚|jdkr3tdƒ‚|jd	kr<td
ƒ‚|‚d }~ww )Nr‰  r�   r)  rh  l   "    zNAuthenticating account doesn't have the right to create a new machine account!l   ç   z8Authenticating account's machine account quota exceeded!l   b    z?Account name not accepted, maybe the '$' at the end is missing?)r'  re  r$   r(   Ú	Exception)rf  ry  r›  ÚaccountTyperh  re  Úer*   r*   r+   ÚhSamrCreateUser2InDomain4
  s"   


€ør¢  c                 C   rl  r™  )r—  re  rš  r*   r*   r+   ÚhSamrCreateUserInDomainG
  ro  r£  c                 C   rp  ©Nr‰  r‹  )rŠ  re  ©rf  ry  ÚdomainInformationClassre  r*   r*   r+   ÚhSamrQueryInformationDomainN
  rt  r§  c                 C   rp  r¤  )r  re  r¥  r*   r*   r+   ÚhSamrQueryInformationDomain2T
  rt  r¨  c                 C   rp  )Nr•  r¶  )rµ  re  )rf  ÚgroupHandleÚgroupInformationClassre  r*   r*   r+   ÚhSamrQueryInformationGroupZ
  rt  r«  c                 C   rp  )Nr   rÏ  )rÍ  re  )rf  ÚaliasHandleÚaliasInformationClassre  r*   r*   r+   ÚhSamrQueryInformationAlias`
  rt  r®  c                 C   rp  ©Nr™  rç  )r  re  ©rf  Ú
userHandleÚuserInformationClassre  r*   r*   r+   ÚhSamrQueryInformationUser2f
  rt  r³  c                 C   rp  r¯  )rå  re  r°  r*   r*   r+   ÚhSamrQueryInformationUserl
  rt  r´  c                 C   ó,   t ƒ }||d< |d |d< ||d< |  |¡S )Nr‰  r¿   r‹  r�  )r�  re  )rf  ry  ÚdomainInformationre  r*   r*   r+   ÚhSamrSetInformationDomainr
  ó
   
r·  c                 C   rµ  )Nr•  r¿   r¶  r{   )r¸  re  )rf  r©  Úbufferre  r*   r*   r+   ÚhSamrSetInformationGroupy
  r¸  rº  c                 C   rµ  )Nr   r¿   rÏ  r{   )rÑ  re  )rf  r¬  r¹  re  r*   r*   r+   ÚhSamrSetInformationAlias€
  r¸  r»  c                 C   rµ  ©Nr™  r¿   rç  r{   )rJ  re  ©rf  r±  r¹  re  r*   r*   r+   ÚhSamrSetInformationUser2‡
  r¸  r¾  c                 C   rµ  r¼  )rë  re  r½  r*   r*   r+   ÚhSamrSetInformationUserŽ
  r¸  r¿  c                 C   ó   t ƒ }||d< |  |¡S ©Nr•  )r¿  re  ©rf  r©  re  r*   r*   r+   ÚhSamrDeleteGroup•
  ó   
rÃ  c                 C   rÀ  ©Nr   )rÔ  re  ©rf  r¬  re  r*   r*   r+   ÚhSamrDeleteAliasš
  rÄ  rÇ  c                 C   rÀ  ©Nr™  )râ  re  ©rf  r±  re  r*   r*   r+   ÚhSamrDeleteUserŸ
  rÄ  rÊ  c                 C   rl  ©Nr•  r¼  r®   )rº  re  ©rf  r©  ÚmemberIdÚ
attributesre  r*   r*   r+   ÚhSamrAddMemberToGroup¤
  ro  rÏ  c                 C   rp  )Nr•  r¼  )rÃ  re  )rf  r©  rÍ  re  r*   r*   r+   ÚhSamrRemoveMemberFromGroup«
  rt  rÐ  c                 C   rÀ  rÁ  )rÅ  re  rÂ  r*   r*   r+   ÚhSamrGetMembersInGroup±
  rÄ  rÑ  c                 C   rp  ©Nr   r¼  )rÖ  re  ©rf  r¬  rÍ  re  r*   r*   r+   ÚhSamrAddMemberToAlias¶
  rt  rÔ  c                 C   rp  rÒ  )rÚ  re  rÓ  r*   r*   r+   ÚhSamrRemoveMemberFromAlias¼
  rt  rÕ  c                 C   rÀ  rÅ  )rÜ  re  rÆ  r*   r*   r+   ÚhSamrGetMembersInAliasÂ
  rÄ  rÖ  c                 C   rp  )Nr‰  r  )r  re  )rf  ry  Ú	memberSidre  r*   r*   r+   Ú"hSamrRemoveMemberFromForeignDomainÇ
  rt  rØ  c                 C   ó4   t ƒ }||d< ||d< t|d ƒ|d d< |  |¡S ©Nr   r1  r—   rŽ   )r/  r9  re  ©rf  r¬  ÚmembersBufferre  r*   r*   r+   ÚhSamrAddMultipleMembersToAliasÍ
  ó
   
rÝ  c                 C   rÙ  rÚ  )r3  r9  re  rÛ  r*   r*   r+   Ú#hSamrRemoveMultipleMembersFromAliasÔ
  rÞ  rß  c                 C   rÀ  rÈ  )rý  re  rÉ  r*   r*   r+   ÚhSamrGetGroupsForUserÛ
  rÄ  rà  c                 C   rÙ  )Nr‰  r¥  r—   rŽ   )r¤  r9  re  )rf  ry  ÚsidArrayre  r*   r*   r+   ÚhSamrGetAliasMembershipà
  rÞ  râ  c           
      C   s  t ƒ }||d< ddlm}m}	 |dkr|	 |¡}nzt|ƒ}W n   Y |dkr.|	 |¡}nzt|ƒ}W n   Y |dkrC|	 |¡}nzt|ƒ}W n   Y d|d< t|d< t|d< d|d	< | ||¡|d
< | ||¡|d< d|d< t|d< d|d< | ||¡|d< |  	|¡S )Nr™  r   ©ÚcryptoÚntlmrO   rñ  rò  ró  r,   rô  rõ  rö  r÷  rø  rù  rú  )
rï  Úimpacketrä  rå  ÚNTOWFv1r   ÚLMOWFv1r   ÚSamEncryptNTLMHashre  )
rf  r±  ÚoldPasswordÚnewPasswordÚoldPwdHashNTÚnewPwdHashLMÚnewPwdHashNTre  rä  rå  r*   r*   r+   ÚhSamrChangePasswordUserç
  s@   
rï  c                 C   s|  t ƒ }||d< ||d< zddlm} W n ty&   t d¡ t d¡ Y nw ddlm}	m}
 |dkrB|dkrB|
 	|¡}|
 
|¡}nzt|ƒ}W n   Y zt|ƒ}W n   Y |
 
|¡}tƒ }z| d	¡}W n ty~   dd l}| | ¡ ¡ d	¡}Y nw d
dt|ƒ  | |d< t|ƒ|d< | ¡ }| |¡}| |¡}||d d< |	 ||¡|d< d|d< t|d< t|d< |  |¡S )Nrg  rB  r   r"   zDWarning: You don't have any crypto installed. You need pycryptodomexz+See https://pypi.org/project/pycryptodomex/rã  rO   úutf-16leó   Ar=   r{   rL   r=  r>  rñ  r8  r?  )r;  ÚCryptodome.Cipherr#   rŸ  r   Úcriticalræ  rä  rå  rè  rç  r   ri  ÚencodeÚUnicodeDecodeErrorÚsysÚdecodeÚgetfilesystemencodingr9  r:  ÚnewÚencryptré  r   re  )rf  rg  ÚuserNamerê  rë  ÚoldPwdHashLMrì  re  r#   rä  rå  rî  ÚsamUserÚencoded_passwordrö  ÚpwdBuffÚrc4ÚencBufr*   r*   r+   ÚhSamrUnicodeChangePasswordUser2  sP   
þ

þ


r  c                 C   rp  )Nrl  r�   )rz  re  )rf  rv  r›  re  r*   r*   r+   ÚhSamrLookupDomainInSamServerG  rt  r  c                 C   rl  )Nrt  ru  rª   )rs  re  )rf  ÚobjectHandleÚsecurityInformationÚsecurityDescriptorre  r*   r*   r+   ÚhSamrSetSecurityObjectM  ro  r  c                 C   rp  )Nrt  ru  )rx  re  )rf  r  r  re  r*   r*   r+   ÚhSamrQuerySecurityObjectT  rt  r  c                 C   rÀ  )Nrp  )ro  re  )rf  Ú	samHandlere  r*   r*   r+   ÚhSamrCloseHandleZ  rÄ  r
  c                 C   rl  rË  )rÇ  re  rÌ  r*   r*   r+   ÚhSamrSetMemberAttributesOfGroup_  ro  r  c                 C   rÀ  rÈ  )r  re  rÉ  r*   r*   r+   Ú%hSamrGetUserDomainPasswordInformationf  rÄ  r  c                 C   s   t ƒ }t|d< |  |¡S )NrC  )rA  r   re  )rf  re  r*   r*   r+   Ú!hSamrGetDomainPasswordInformationk  rÄ  r  c                 C   rp  )Nrt  r²  )rW  re  )rf  r  Úridre  r*   r*   r+   ÚhSamrRidToSidp  rt  r  c                 C   s$   t ƒ }|d |d< ||d< |  |¡S )Nr¿   r`  ra  )r^  re  )rf  ÚinputArgre  r*   r*   r+   ÚhSamrValidatePasswordv  s   
r  c                 C   óZ   t ƒ }||d< t|ƒ|d< |D ]}tƒ }||d< |d  |¡ qd|jd jd< |  |¡S )Nr‰  rŽ   rF   r«  éè  ÚMaximumCount)rª  r9  r   ÚappendÚfieldsre  )rf  ry  Únamesre  r›  Úentryr*   r*   r+   ÚhSamrLookupNamesInDomain|  ó   
r  c                 C   r  )Nr‰  rŽ   rF   r­  r  r  )r¯  r9  r   r  r  re  )rf  ry  Úidsre  ÚdIdr  r*   r*   r+   ÚhSamrLookupIdsInDomain‰  r  r  c                 C   s*  t ƒ }||d< tj|d< tj|d d< d|d d d d< t|d d d d	< t|d d d d
< t|d d d d< t|d d d d< t|d d d d< t|d d d d< t|d d d d< t|d d d d< t|d d d d< t|d d d d< t|d d d d d< t|d d d d d< t|d d d d< t|d d d d d< t|d d d d d< d|d d d d< | d¡}t|ƒ}| dd¡}|t d|¡7 }t	 
d¡}|  ¡  ¡  ¡ }tƒ }| |¡ | |¡ | ¡ }	t |	¡}
|
 |¡| }||d d d d< |  |¡S ) Nr™  rç  r{   r¿   i   	r«  rç   rO  rB  rC  rD  rE  rF  rG  r  rH  rI  rJ  rK  rL  rM  rª   r8  r,   rV  rð  r=   ó    z<Ir8   rr  )rJ  ry  r™  r   rô  r9  Úrjustr  ÚpackÚosÚurandomÚget_rpc_transportÚget_smb_connectionÚgetSessionKeyr!   ÚupdateÚdigestr#   rù  rú  re  )rf  r±  Úpasswordre  ÚpwdbuffÚbufflenÚsaltÚsession_keyÚkeymdr.   ÚcipherÚbuffercryptr*   r*   r+   ÚhSamrSetPasswordInternal4New–  sF   






r0  c                 C   sÂ   t ƒ }||d< tj|d< tj|d d< ddlm}m} |dkr%| |¡}nzt|ƒ}W n   Y |  ¡  	¡  
¡ }| ||¡|d d d	< t|d d d
< d|d d d< d|d d d< |  |¡S )Nr™  rç  r{   r¿   r   rã  rO   r§  rn  ro  r,   rU  rT  )rë  ry  r”  ræ  rä  rå  rç  r   r#  r$  r%  ré  r   re  )rf  r±  r(  ÚhashNTre  rä  rå  r,  r*   r*   r+   ÚhSamrSetNTInternal1À  s"   

r2  )r   r€  )rO   rO   rO   )rd  rO   rO   rO   rO   rO   )rO   (@  Ú
__future__r   r   Úbinasciir   Ú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   Úimpacket.dcerpc.v5.rpcrtr   ræ  r   r   Úimpacket.uuidr   Úimpacket.dcerpc.v5.enumr   Úimpacket.structurer    r  r!  Úhashlibr!   rò  r#   ÚMSRPC_UUID_SAMRr$   rH  ÚDELETEÚREAD_CONTROLÚ	WRITE_DACÚWRITE_OWNERÚACCESS_SYSTEM_SECURITYÚMAXIMUM_ALLOWEDÚGENERIC_READÚGENERIC_WRITEÚGENERIC_EXECUTEÚGENERIC_ALLÚSAM_SERVER_CONNECTÚSAM_SERVER_SHUTDOWNÚSAM_SERVER_INITIALIZEÚSAM_SERVER_CREATE_DOMAINÚSAM_SERVER_ENUMERATE_DOMAINSÚSAM_SERVER_LOOKUP_DOMAINÚSAM_SERVER_ALL_ACCESSÚSAM_SERVER_READÚSAM_SERVER_WRITEÚSAM_SERVER_EXECUTEÚDOMAIN_READ_PASSWORD_PARAMETERSÚDOMAIN_WRITE_PASSWORD_PARAMSÚDOMAIN_READ_OTHER_PARAMETERSÚDOMAIN_WRITE_OTHER_PARAMETERSÚDOMAIN_CREATE_USERÚDOMAIN_CREATE_GROUPÚDOMAIN_CREATE_ALIASÚDOMAIN_GET_ALIAS_MEMBERSHIPÚDOMAIN_LIST_ACCOUNTSÚDOMAIN_LOOKUPÚDOMAIN_ADMINISTER_SERVERÚDOMAIN_ALL_ACCESSÚDOMAIN_READÚDOMAIN_WRITEÚDOMAIN_EXECUTEÚGROUP_READ_INFORMATIONÚGROUP_WRITE_ACCOUNTÚGROUP_ADD_MEMBERÚGROUP_REMOVE_MEMBERÚGROUP_LIST_MEMBERSÚGROUP_ALL_ACCESSÚ
GROUP_READÚGROUP_WRITEÚGROUP_EXECUTEÚALIAS_ADD_MEMBERÚALIAS_REMOVE_MEMBERÚALIAS_LIST_MEMBERSÚALIAS_READ_INFORMATIONÚALIAS_WRITE_ACCOUNTÚALIAS_ALL_ACCESSÚ
ALIAS_READÚALIAS_WRITEÚALIAS_EXECUTEÚUSER_READ_GENERALÚUSER_READ_PREFERENCESÚUSER_WRITE_PREFERENCESÚUSER_READ_LOGONÚUSER_READ_ACCOUNTÚUSER_WRITE_ACCOUNTÚUSER_CHANGE_PASSWORDÚUSER_FORCE_PASSWORD_CHANGEÚUSER_LIST_GROUPSÚUSER_READ_GROUP_INFORMATIONÚUSER_WRITE_GROUP_INFORMATIONÚUSER_ALL_ACCESSÚ	USER_READÚ
USER_WRITEÚUSER_EXECUTEÚUSER_ALL_USERNAMEÚUSER_ALL_FULLNAMEÚUSER_ALL_USERIDÚUSER_ALL_PRIMARYGROUPIDÚUSER_ALL_ADMINCOMMENTÚUSER_ALL_USERCOMMENTÚUSER_ALL_HOMEDIRECTORYÚUSER_ALL_HOMEDIRECTORYDRIVEÚUSER_ALL_SCRIPTPATHÚUSER_ALL_PROFILEPATHÚUSER_ALL_WORKSTATIONSÚUSER_ALL_LASTLOGONÚUSER_ALL_LASTLOGOFFÚUSER_ALL_LOGONHOURSÚUSER_ALL_BADPASSWORDCOUNTÚUSER_ALL_LOGONCOUNTÚUSER_ALL_PASSWORDCANCHANGEÚUSER_ALL_PASSWORDMUSTCHANGEÚUSER_ALL_PASSWORDLASTSETÚUSER_ALL_ACCOUNTEXPIRESÚUSER_ALL_USERACCOUNTCONTROLÚUSER_ALL_PARAMETERSÚUSER_ALL_COUNTRYCODEÚUSER_ALL_CODEPAGEÚUSER_ALL_NTPASSWORDPRESENTÚUSER_ALL_LMPASSWORDPRESENTÚUSER_ALL_PRIVATEDATAÚUSER_ALL_PASSWORDEXPIREDÚUSER_ALL_SECURITYDESCRIPTORÚUSER_ALL_UNDEFINED_MASKÚSAM_DOMAIN_OBJECTÚSAM_GROUP_OBJECTÚSAM_NON_SECURITY_GROUP_OBJECTÚSAM_ALIAS_OBJECTÚSAM_NON_SECURITY_ALIAS_OBJECTÚSAM_USER_OBJECTÚSAM_MACHINE_ACCOUNTÚSAM_TRUST_ACCOUNTÚSAM_APP_BASIC_GROUPÚSAM_APP_QUERY_GROUPÚSE_GROUP_MANDATORYÚSE_GROUP_ENABLED_BY_DEFAULTÚSE_GROUP_ENABLEDÚGROUP_TYPE_ACCOUNT_GROUPÚGROUP_TYPE_RESOURCE_GROUPÚGROUP_TYPE_UNIVERSAL_GROUPÚGROUP_TYPE_SECURITY_ENABLEDÚGROUP_TYPE_SECURITY_ACCOUNTÚGROUP_TYPE_SECURITY_RESOURCEÚGROUP_TYPE_SECURITY_UNIVERSALÚUSER_ACCOUNT_DISABLEDÚUSER_HOME_DIRECTORY_REQUIREDÚUSER_PASSWORD_NOT_REQUIREDÚUSER_TEMP_DUPLICATE_ACCOUNTÚUSER_NORMAL_ACCOUNTÚUSER_MNS_LOGON_ACCOUNTÚUSER_INTERDOMAIN_TRUST_ACCOUNTÚUSER_WORKSTATION_TRUST_ACCOUNTÚUSER_SERVER_TRUST_ACCOUNTÚUSER_DONT_EXPIRE_PASSWORDÚUSER_ACCOUNT_AUTO_LOCKEDÚ$USER_ENCRYPTED_TEXT_PASSWORD_ALLOWEDÚUSER_SMARTCARD_REQUIREDÚUSER_TRUSTED_FOR_DELEGATIONÚUSER_NOT_DELEGATEDÚUSER_USE_DES_KEY_ONLYÚUSER_DONT_REQUIRE_PREAUTHÚUSER_PASSWORD_EXPIREDÚ+USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATIONÚUSER_NO_AUTH_DATA_REQUIREDÚUSER_PARTIAL_SECRETS_ACCOUNTÚUSER_USE_AES_KEYSÚ	UF_SCRIPTÚUF_ACCOUNTDISABLEÚUF_HOMEDIR_REQUIREDÚ
UF_LOCKOUTÚUF_PASSWD_NOTREQDÚUF_PASSWD_CANT_CHANGEÚ"UF_ENCRYPTED_TEXT_PASSWORD_ALLOWEDÚUF_TEMP_DUPLICATE_ACCOUNTÚUF_NORMAL_ACCOUNTÚUF_INTERDOMAIN_TRUST_ACCOUNTÚUF_WORKSTATION_TRUST_ACCOUNTÚUF_SERVER_TRUST_ACCOUNTÚUF_DONT_EXPIRE_PASSWDÚUF_MNS_LOGON_ACCOUNTÚUF_SMARTCARD_REQUIREDÚUF_TRUSTED_FOR_DELEGATIONÚUF_NOT_DELEGATEDÚUF_USE_DES_KEY_ONLYÚUF_DONT_REQUIRE_PREAUTHÚUF_PASSWORD_EXPIREDÚ)UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATIONÚUF_NO_AUTH_DATA_REQUIREDÚUF_PARTIAL_SECRETS_ACCOUNTÚUF_USE_AES_KEYSÚDOMAIN_USER_RID_ADMINÚDOMAIN_USER_RID_GUESTÚDOMAIN_USER_RID_KRBTGTÚDOMAIN_GROUP_RID_ADMINSÚDOMAIN_GROUP_RID_USERSÚDOMAIN_GROUP_RID_COMPUTERSÚDOMAIN_GROUP_RID_CONTROLLERSÚDOMAIN_ALIAS_RID_ADMINSÚ%DOMAIN_GROUP_RID_READONLY_CONTROLLERSÚDOMAIN_PASSWORD_COMPLEXÚDOMAIN_PASSWORD_NO_ANON_CHANGEÚDOMAIN_PASSWORD_NO_CLEAR_CHANGEÚDOMAIN_LOCKOUT_ADMINSÚDOMAIN_PASSWORD_STORE_CLEARTEXTÚDOMAIN_REFUSE_PASSWORD_CHANGEÚSAM_VALIDATE_PASSWORD_LAST_SETÚSAM_VALIDATE_BAD_PASSWORD_TIMEÚSAM_VALIDATE_LOCKOUT_TIMEÚSAM_VALIDATE_BAD_PASSWORD_COUNTÚ$SAM_VALIDATE_PASSWORD_HISTORY_LENGTHÚSAM_VALIDATE_PASSWORD_HISTORYr?   rC   rE   rI   rY   r[   ra   rv   rx   rz   r~   r„   rp  rˆ   rû  r‰   r‹   rŒ   r�   r‘   r“   r”   r•   r–   r™   rš   r›   rŸ   r    r¡   r£   r¥   r¨   r©   r«   r­   r°   r±   r²   rµ   r·   rº   r»   r¾   rÂ   rÅ   rÊ   rÌ   rÏ   rÔ   r×   rÙ   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  r2  r4  r5  r6  r<  rX  rY  r[  r\  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rq  rs  rt  ru  rv  ry  rœ  r®  r¯  r°  rµ  r¶  r¸  r¹  rº  r»  r¼  r½  r¾  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  rÊ  rË  rÑ  r×  rÙ  rÚ  rß  rë  rî  rï  rò  rø  rû  rÿ  r  r  r  r  r  r'  rI  rQ  r_  ra  rf  rk  ro  rq  rs  rw  rx  ry  rz  r{  r  r„  r‡  rˆ  rŠ  r�  r�  r‘  r’  r”  r–  r—  r˜  rš  r›  r�  rž  rŸ  r¡  r£  r¤  r§  rª  r¬  r¯  r°  r±  r´  rµ  r·  r¸  r¹  rº  r½  r¿  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  rÌ  rÍ  rÐ  rÑ  rÓ  rÔ  rÕ  rÖ  rÙ  rÚ  rÛ  rÜ  rÞ  rß  rá  râ  rä  rå  ré  rë  rî  rï  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  r5  r6  r:  r;  r@  rA  rD  rE  rI  rJ  rL  rM  rP  rQ  rT  rW  rY  r[  r]  r^  rb  ÚOPNUMSrk  rn  rs  ru  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  r0  r2  r*   r*   r*   r+   Ú<module>   s  (@

				)
		

			

'	

	
			ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î3Í
4








ÃD	""	"		.2*