o
    j٫                     @   s  d dl mZ d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZ d dlmZ dZdZe
d	Zd
d
eddfddZzd dlmZ d dlmZ d dlmZ W n eyx   ed ed Y nw dZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+d#Z,d$Z-d%Z.d&Z/d&Z0d'Z1d(Z2d)Z3d*Z4d+Z5d,Z6d-Z7d.Z8d/Z9d0Z:d1Z;d2Z<d3Z=d4Z>d5Z?d6Z@d7ZAdZBdZCdZDdZEdZFdZGd ZHdZIdZJdZKdZLdZMdZNd8ZOd7ZPd9ZQd:ZRG d;d< d<ZSG d=d> d>eZTG d?d@ d@eZUG dAdB dBeZVG dCdD dDeZWG dEdF dFeZXG dGdH dHeZYG dIdJ dJeYZZdKZ[dLdM Z\dNdO Z]dPdQ Z^d
d
dedfdRdSZ_d
d
edddfdTdUZ`dVdW Zad
d
efdXdYZbdZd[ Zcdd\d]Zddd^d_Zed`da Zfdbdc Zgddde Zhdfdg Zidhdi ZjddkdlZkddmdnZldodp ZmefdqdrZndsdt ZoddudvZpddwdxZqd
d
eddfdydzZrG d{d| d|esZtG d}d~ d~etZuG dd deteUZvG dd deteWZwdS )    )division)print_functionN)b)	Structure)LOGTF AAD3B435B51404EEAAD3B435B51404EE     cifsc                 C   s@   |	rt | |||||||||	|
|dS t| |||||||||	d
S )N)
use_ntlmv2channel_binding_valueservice)r   )computeResponseNTLMv2computeResponseNTLMv1)flagsserverChallengeclientChallenge
serverNamedomainuserpasswordlmhashnthashr   r   r    r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/ntlm.pycomputeResponse*   s   
r   )ARC4)DES)MD4zDWarning: You don't have any crypto installed. You need pycryptodomexz+See https://pypi.org/project/pycryptodomex/                  l        i   @i    i   i   i   i   i   i   i  @ i    i   i   i   i   i   i   i @  i    i   i   l   E i   i         @                	   
   c                   @   sf   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )AV_PAIRSNc                 C   s    i | _ |d ur| | d S d S N)fields
fromStringselfdatar   r   r   __init__   s   zAV_PAIRS.__init__c                 C   s   t ||f| j|< d S r/   )lenr0   )r3   keyvaluer   r   r   __setitem__   s   zAV_PAIRS.__setitem__c                 C   s   || j v r
| j | S d S r/   r0   r3   r7   r   r   r   __getitem__   s   

zAV_PAIRS.__getitem__c                 C   s
   || j v S r/   r:   r;   r   r   r   __contains__      
zAV_PAIRS.__contains__c                 C   s
   t | jS r/   )iterr0   r3   r   r   r   __iter__   r>   zAV_PAIRS.__iter__c                 C   s   | j |= d S r/   r:   r;   r   r   r   __delitem__      zAV_PAIRS.__delitem__c                 C      t |  S r/   r6   getDatar@   r   r   r   __len__   rC   zAV_PAIRS.__len__c                 C   rD   r/   rE   r@   r   r   r   __str__   rC   zAV_PAIRS.__str__c                 C   s   |}d}|t urQtd|d td d }|tdd  }td|d td d }|tdd  }|d | }||f| j|< ||d  }|t usd S d S )N   z<Hr   )NTLMSSP_AV_EOLstructunpackcalcsizer0   )r3   r4   tInfofTypelengthcontentr   r   r   r1      s   zAV_PAIRS.fromStringc                 C   s,   t | j D ]}td|| | f  qd S )Nz%s: {%r})listr0   keysprint)r3   ir   r   r   dump  s   zAV_PAIRS.dumpc                 C   sj   t | jv r	| jt = d}t| j D ]}|td|| | d 7 }|| | d 7 }q|tdt d7 }|S )Nr	   z<HHr   r   )rJ   r0   rR   rS   rK   pack)r3   ansrU   r   r   r   rF     s   
zAV_PAIRS.getDatar/   )__name__
__module____qualname__r5   r9   r<   r=   rA   rB   rG   rH   r1   rV   rF   r   r   r   r   r.      s    
r.   c                   @      e Zd ZdZdZdS )VERSION   ))ProductMajorVersion<B=0)ProductMinorVersionr`   )ProductBuildz<H=0)Reservedz3s="")NTLMRevisionCurrentz<B=self.NTLMSSP_REVISION_W2K3N)rY   rZ   r[   NTLMSSP_REVISION_W2K3	structurer   r   r   r   r]     s    r]   c                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )NTLMAuthNegotiate)r   z	"NTLMSSP )message_type<L=1r   <L
domain_len<H-domain_namedomain_max_lenro   )domain_offset<L=0host_len<H-host_name)host_maxlenrv   )host_offsetrs   )
os_version:	host_namerz   domain_namerz   c                 C   sL   t |  ttB tB tB tB tB dB | d< d| d< d| d< d| d< d| _d S )Nr   r   r   r|   r~   ry   )	r   r5   NTLMSSP_NEGOTIATE_128NTLMSSP_NEGOTIATE_KEY_EXCHNTLMSSP_NEGOTIATE_NTLMNTLMSSP_NEGOTIATE_UNICODENTLMSSP_NEGOTIATE_SIGNNTLMSSP_NEGOTIATE_SEAL_workstationr@   r   r   r   r5   0  s&   
	
zNTLMAuthNegotiate.__init__c                 C   
   || _ d S r/   r   )r3   workstationr   r   r   setWorkstationB  r>   z NTLMAuthNegotiate.setWorkstationc                 C   s   | j S r/   r   r@   r   r   r   getWorkstationE  s   z NTLMAuthNegotiate.getWorkstationc                 C   s   | d t @ t kS )Nr   NTLMSSP_NEGOTIATE_VERSIONr@   r   r   r   __hasNegotiateVersionH     z'NTLMAuthNegotiate.__hasNegotiateVersionc                 C   s   t | jd dkr| d  tO  < t | jd dkr"| d  tO  < t | jd }|dkr6| d  tO  < n|  r>td| d t@ tkrLd| | d< | d t@ tkr`dt | d  | | d	< t| S )
Nr|   r   r   r~   ry   zNMust provide the os_version field if the NTLMSSP_NEGOTIATE_VERSION flag is setr(   rx   rr   )	r6   r0   *NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED%NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIEDr   '_NTLMAuthNegotiate__hasNegotiateVersion	Exceptionr   rF   )r3   version_lenr   r   r   rF   K  s   
zNTLMAuthNegotiate.getDatac                 C   s   t | | | d }| d | }||| | d< | d }| d | }||| | d< t|dkr@|  r@t|dd  | d	< d S d
| d	< d S )Nrr   rn   r~   rx   ru   r|   $   r(   ry   r   )r   r1   r6   r   r]   )r3   r4   rr   
domain_endrx   host_endr   r   r   r1   [  s   zNTLMAuthNegotiate.fromStringN)
rY   rZ   r[   rf   r5   r   r   r   rF   r1   r   r   r   r   rg      s    rg   c                   @   s,   e Zd ZdZedd Zdd Zdd ZdS )	NTLMAuthChallenge)rh   )ri   z<L=2rm   rp   )rr   z<L=40)r   rs   )	challenge8s)reservedz8s="")TargetInfoFields_len<H-TargetInfoFields)TargetInfoFields_max_lenr   )TargetInfoFields_offsetrl   
VersionLenz	_-Versionz self.checkVersion(self["flags"]))Versionrz   r}   )TargetInfoFieldsrz   c                 C      | d ur| t @ dkrdS dS Nr   r*   r   r   r   r   r   checkVersion~     zNTLMAuthChallenge.checkVersionc                 C   s:   | d d urt | d tur| d  }|| d< t| S )Nr   )typebytesrF   r   )r3   raw_av_fieldsr   r   r   rF     s   
zNTLMAuthChallenge.getDatac                 C   sP   t | | || d d  d | d  | d< || d d  d | d  | d< | S )Nrr   rn   r~   r   r   r   r   r1   r2   r   r   r   r1     s     zNTLMAuthChallenge.fromStringN)rY   rZ   r[   rf   staticmethodr   rF   r1   r   r   r   r   r   k  s    
r   c                   @   sJ   e Zd ZdZdddZedd Zedd	 Zd
d Zdd Z	dd Z
dS )NTLMAuthChallengeResponse)rh   )ri   z<L=3)
lanman_len	<H-lanman)lanman_max_lenr   )lanman_offsetrl   )ntlm_len<H-ntlm)ntlm_max_lenr   )ntlm_offsetrl   rm   rp   )rr   rl   )user_len<H-user_name)user_max_lenr   )user_offsetrl   rt   )host_max_lenrv   )rx   rl   )session_key_len<H-session_key)session_key_max_lenr   )session_key_offsetrl   rk   r   )r   :="")MICLenz_-MICzself.checkMIC(self["flags"]))MICr   r}   )	user_namerz   r{   )lanmanrz   )ntlmrz   )session_keyrz   r   r   c                 C   s   t |  d| d< |d| d< d| d< d| d< ttB tB tB tB tB dB | d< |rB|dks2|dkrBt	||| d	< t	||| d
< d S |r^|r^t
|}t|}t	||| d	< t	||| d
< d S d| d	< d| d
< | d ssdd| d< d S d S )Nr   r   utf-16ler   r~   r|   r   r   r   r   NULL)r   r5   encoder   r   r   r   r   r   get_ntlmv1_responsecompute_lmhashcompute_nthash)r3   usernamer   r   r   r   r   r   r   r   r5     s@   
	z"NTLMAuthChallengeResponse.__init__c                 C   r   r   r   r   r   r   r   r     r   z&NTLMAuthChallengeResponse.checkVersionc                 C   r   )Nr   r)   r   r   r   r   r   checkMIC  s   z"NTLMAuthChallengeResponse.checkMICc                 C   s   d|  | d  | | d  | d< d|  | d  | | d  t| d  | d< | d t| d  | d< | d t| d  | d	< | d	 t| d
  | d< | d t| d  | d< t| S )Nr'   r   rr   r~   r   r   rx   r|   r   r   r   r   r   )r   r   r6   r   rF   r@   r   r   r   rF     s   $0
z!NTLMAuthChallengeResponse.getDatac                 C   s   t | | | d }| d | }||| | d< | d }| d | }||| | d< | d }| d | }||| | d	< | d
 }| d | }	|||	 | d< | d }
| d |
 }||
| | d< d S )Nrr   rn   r~   rx   ru   r|   r   r   r   r   r   r   r   r   r   r   )r3   r4   rr   r   rx   r   r   user_endr   ntlm_endr   
lanman_endr   r   r   r1     s    z$NTLMAuthChallengeResponse.fromStringc                 C   sr   | d t @ r| d d}| d d}n| d d}| d d}|s1d|v r1|d\}}}d||f  S )Nr   r   r   r~   cp437@z%s/%s)r   decode
rpartitionupper)r3   r   r   _r   r   r   getUserString  s   z'NTLMAuthChallengeResponse.getUserStringN)r   r   r   r   r   r   )rY   rZ   r[   rf   r5   r   r   r   rF   r1   r   r   r   r   r   r     s    
!"

	r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )ImpacketStructurec                 C   r   r/   )parent)r3   otherr   r   r   
set_parent  r>   zImpacketStructure.set_parentc                 C      t | S r/   )strr@   r   r   r   
get_packet     zImpacketStructure.get_packetc                 C   r   r/   )r6   r@   r   r   r   get_size  r   zImpacketStructure.get_sizeN)rY   rZ   r[   r   r   r   r   r   r   r   r     s    r   c                   @   s   e Zd ZdddZdS )ExtendedOrNotMessageSignaturer   c                 K   s,   |t @ r	| j| _n| j| _tj| fi |S r/   )*NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITYextendedMessageSignaturerf   MessageSignaturer   r5   )r3   r   kargsr   r   r   r5   !  s   
z&ExtendedOrNotMessageSignature.__init__N)r   )rY   rZ   r[   r5   r   r   r   r   r      s    r   c                   @   r\   )NTLMMessageSignature)r   rj   )Checksum<qSeqNum<I)r   )	RandomPadz<I=0)r   r   r   N)rY   rZ   r[   r   r   r   r   r   r   r   (  s    r   s   KGS!@#$%c                 C   sd  t | ts	t| } t| d d dd} t }|| d d? d@ d>  || d d@ d> | d d? d@ B d>  || d d	@ d
> | d d	? d@ B d>  || d d@ d> | d	 d? d@ B d>  || d	 d@ d	> | d d
? d@ B d>  || d d@ d> | d
 d? d	@ B d>  || d
 d@ d> | d d? d@ B d>  || d d@ d>  t|S )Nr+       r   r      r$   r    ?   r!   r#      r"   r^   )
isinstancer   	bytearrayljustappend)r7   sr   r   r   __expand_DES_key8  s   
******r   c                 C   s   t t| t j}||S r/   )r   newr   MODE_ECBencrypt)r7   msgcipherr   r   r   __DES_blockH  s   
r   c                 C   sB   t | d d |}|t | dd |7 }|t | dd  |7 }|S )Nr+      )r   )r7   r   answerr   r   r   ntlmssp_DES_encryptL  s   r   c                 C   s   dd l }| }|d ur.z| d W n	   | |} Y z|d W n	   ||}Y t }d|d< |rAttB tB tB |d< |rK|d  t	O  < |d  t
tB tB tB tB tB O  < |d urm|d  tO  < ||d< ||  |S )Nr   r   r   ry   )sysgetfilesystemencodingr   r   rg   r   r   NTLMSSP_NEGOTIATE_ALWAYS_SIGNr   NTLMSSP_NEGOTIATE_TARGET_INFOr   r   r   NTLMSSP_REQUEST_TARGETr   NTLMSSP_NEGOTIATE_56r   r   )r   r   signingRequiredr   versionr  encodingauthr   r   r   getNTLMSSPType1T  s>   

r  c                 C   s  |d u rd}dd l }| }|d urEz|d W n	   ||}Y z|d W n	   ||}Y z|d W n	   ||}Y t|}| d }t|||d }tddd tdD }|d	 }t	|d |d ||||||||||	d
\}}}|d t
@ dkr|dt
A M }|d t@ dkr|dtA M }|d t@ dkr|dtA M }|d t@ dkr|dtA M }|d t@ dkr|dtA M }|d t@ dkr|dtA M }t|d |||d ||||}|dkr|dkr|dkr|dkrd}|d t@ rtddd tdD }t||}nd }|}||d< |d|d< |  d|d< |dkr0d|d< n||d< |
d ur=|
|d< ||d< |d urJ||d< ||fS )Nr   r   r   r   r   c                 S      g | ]}t tjtj qS r   randomchoicestringdigitsascii_letters.0r   r   r   r   
<listcomp>      z#getNTLMSSPType3.<locals>.<listcomp>r*   r   )r   r                          c                 S   r  r   r  r  r   r   r   r    r  r)   r~   r|   r   r   r   r   r   )r  r  r   r   r   r   r   joinranger   r   r   r   r   r   r  KXKEYgenerateEncryptedSessionKeyr   )type1type2r   r   r   r   r   r   r   r   r  r  r	  ntlmChallengeresponseFlagsntlmChallengeResponser   r   
ntResponse
lmResponsesessionBaseKeykeyExchangeKeyexportedSessionKeyencryptedRandomSessionKeyr   r   r   getNTLMSSPType3x  sx   

 



r(  c                 C   s"   t  }|t| || | S r/   )r   r   updateNTOWFv1digest)r   r   r   hashr   r   r   generateSessionKeyV1  s   r-  c
                 C   s   |dkr|dkrd}
d}nDt |||}t|||}| t@ r%d}t||}
n,| t@ rGtd}|| }|| t||	 d d }|d }
n
t||}t||}
t
|||}||
|fS )Nr   md5r*   r  )LMOWFv1r*  NTLMSSP_NEGOTIATE_LM_KEYr   r   hashlibr   r)  r   r+  r-  )r   r   r   r   r   r   r   r   r   r   r#  r"  r.  challr$  r   r   r   r     s$   





r   c                 C   sn   z|  d W n ty   t Y S w ddd | D } tt| d d t}|tt| dd t7 }|S )Nzlatin-1r   c                 s   s&    | ]}|t jv r| n|V  qd S r/   )r  r  r   )r  cr   r   r   	<genexpr>  s   $ z!compute_lmhash.<locals>.<genexpr>r+   r   )r   UnicodeEncodeErrorDEFAULT_LM_HASHr  r   r   KNOWN_DES_INPUT)r   r   r   r   r   r     s   r   c                 C   s   |dkr|S t | S Nr   )r   r   r   r   r   r   r   r*       r*  c                 C   s   |dkr|S t | S r8  )r   r9  r   r   r   r/     r:  r/  c                 C   s\   z	t | d} W n ty    dd l}| | d} Y nw t }||  |	 S )Nutf_16ler   )
r   r   UnicodeDecodeErrorr  r   r  r   r   r)  r+  )r   r  r,  r   r   r   r   %  s   
r   c                 C   s
   t | |S r/   )r   )r7   r   r   r   r   r   1  r>   r   c              
   C   sB  t | }| t@ rX| t@ r3d|d< td|t|td|| d d d |d< ||d< |d7 }|S d|d< tdt|td|| d d d |d< ||d< |d7 }|S d|d< td	t|d
@ |d< d|d< |td	|d |d< td	||d d |d< |d|d< td	|d d |A |d< d|d< |S )Nr   r   r   z<ir*   r   r   r   r   r  r          )	r   r   r   rK   rL   hmac_md5rW   binasciicrc32)r   handle
signingKeyseqNummessagemessageSignaturer   r   r   MAC8  s.   ,.rF  c           	      C   s    ||}t | ||||}||fS r/   rF  )	r   rB  
sealingKeymessageToSignmessageToEncryptrC  rA  sealedMessage	signaturer   r   r   SEALT  s   rM  c                 C   s   t | ||||S r/   rG  )r   rB  rD  rC  rA  r   r   r   SIGNY  r   rN  Clientc                 C   s`   | t @ r,|dkrtd}||d  | }|S td}||d  | }|S d }|S )NrO  r.  s;   session key to client-to-server signing key magic constant s;   session key to server-to-client signing key magic constant )r   r1  r   r)  r+  )r   randomSessionKeymoder.  signKeyr   r   r   SIGNKEY\  s   

rS  c                 C   s   | t @ rD| t@ r|}n| t@ r|d d }n|d d }|dkr2td}||d  | }|S td}||d  | }|S | t@ rR|d d d }|S |d d d }|S )	Nr+   r#   rO  r.  s;   session key to client-to-server sealing key magic constant s;   session key to server-to-client sealing key magic constant    s   8)r   r   r  r1  r   r)  r+  )r   rP  rQ  sealKeyr.  r   r   r   SEALKEYj  s(   

rV  c                 C   s   t | }|j}||}|S r/   )r   r   r   )r%  r&  r   cipher_encrypt
sessionKeyr   r   r   r    s   
r  c           	      C   s   |r|S | t @ r| t@ rt|||d d  }|S |}|S | t@ r\| t@ rGtt||d d |d d tt||d d |d d  }|S | t@ rXt||d d d }|S |}|S td)Nr*   r+   s              zCan't create a valid KXKEY!)r   r   r>  r0  r   r/  "NTLMSSP_REQUEST_NON_NT_SESSION_KEYr   )	r   r$  lmChallengeResponser   r   r   r   r   r%  r   r   r   r    s(    	r  c                 C   s*   dd l }|j| tjd}|| | S )Nr   )	digestmod)hmacr   r1  r.  r)  r+  )r7   r4   r]  hr   r   r   r>    s   
r>  c                 C   s4   |dkr|}nt |}t||  d|d S )Nr   r   )r   r>  r   r   )r   r   r   r,  theHashr   r   r   NTOWFv2  s   r`  c                 C   s   t | |||S r/   )r`  )r   r   r   r   r   r   r   LMOWFv2     ra  c                 C   s<  d}d}t ||||}t|}tdu rH| dd|t d  |t< |t d ur0|t d }ntddt	
t d  }||t< | }nd	}t|
d
krT|
|t< |}||7 }|d7 }|d7 }||7 }||7 }|d7 }|| 7 }t||| }|| }t||| | }t||}|dkr|dkrd}d}|||fS )N   F/r   r   r   l     }*{Gi rY  r   s     r=  r   )r`  r.   	TEST_CASEr   NTLMSSP_AV_DNS_HOSTNAMENTLMSSP_AV_TARGET_NAMENTLMSSP_AV_TIMErK   rW   calendartimegmtimegmtimerF   r6   NTLMSSP_AV_CHANNEL_BINDINGSr>  )r   r   r   r   r   r   r   r   r   r   r   r   responseServerVersionhiResponseServerVersionresponseKeyNTav_pairsaTimetemp
ntProofStrntChallengeResponser[  r$  r   r   r   r     s<    


r   c                   @   s   e Zd ZdZedd ZdS )	NTLM_HTTPNc                 C   s^   d }d}|dkrt |dd  }|d }t D ]}||jkr,| }|| |  S qd S )Nr   r   r#   r*   )base64	b64decoderv  __subclasses__MSG_TYPEr1   )clsmsg_64r   msg_type_clsinstancer   r   r   get_instance  s   

zNTLM_HTTP.get_instance)rY   rZ   r[   rz  classmethodr  r   r   r   r   rv    s    rv  c                   @      e Zd ZdZdZdd ZdS )NTLM_HTTP_AuthRequiredr   r   c                 C   s   d S r/   r   r2   r   r   r   r1     s   z!NTLM_HTTP_AuthRequired.fromStringN)rY   rZ   r[   	commonHdrrz  r1   r   r   r   r   r    s    r  c                   @   r  )NTLM_HTTP_AuthNegotiater   r   c                 C      t |  d S r/   )rg   r5   r@   r   r   r   r5     rb  z NTLM_HTTP_AuthNegotiate.__init__NrY   rZ   r[   r  rz  r5   r   r   r   r   r        r  c                   @   r  )NTLM_HTTP_AuthChallengeResponser   r!   c                 C   r  r/   )r   r5   r@   r   r   r   r5   
  rb  z(NTLM_HTTP_AuthChallengeResponse.__init__Nr  r   r   r   r   r    r  r  )r   r   )rO  )r   )x
__future__r   r   rw  rK   ri  rk  r1  r  r  r?  sixr   impacket.structurer   impacketr   
USE_NTLMv2re  	unhexlifyr6  r   Cryptodome.Cipherr   r   Cryptodome.Hashr   r   criticalNTLM_AUTH_NONENTLM_AUTH_CONNECTNTLM_AUTH_CALLNTLM_AUTH_PKTNTLM_AUTH_PKT_INTEGRITYNTLM_AUTH_PKT_PRIVACYr  r   r   NTLMSSP_RESERVED_1NTLMSSP_RESERVED_2NTLMSSP_RESERVED_3r   NTLMSSP_RESERVED_4r  rZ  NTLMSSP_RESERVED_5NTLMSSP_NEGOTIATE_IDENTIFYr   NTLMSSP_NEGOTIATE_NTLM2NTLMSSP_TARGET_TYPE_SHARENTLMSSP_TARGET_TYPE_SERVERNTLMSSP_TARGET_TYPE_DOMAINr  NTLMSSP_RESERVED_6r   r   NTLMSSP_NEGOTIATE_ANONYMOUSNTLMSSP_DROP_SSP_STATICNTLMSSP_NEGOTIATE_NT_ONLYr   NTLMSSP_RESERVED_8r0  NTLMSSP_NEGOTIATE_DATAGRAMr   r   NTLMSSP_RESERVED_9r  NTLM_NEGOTIATE_OEMr   NTLMSSP_AUTH_NEGOTIATENTLMSSP_AUTH_CHALLENGENTLMSSP_AUTH_CHALLENGE_RESPONSErJ   NTLMSSP_AV_HOSTNAMENTLMSSP_AV_DOMAINNAMErf  NTLMSSP_AV_DNS_DOMAINNAMENTLMSSP_AV_DNS_TREENAMENTLMSSP_AV_FLAGSrh  NTLMSSP_AV_RESTRICTIONSrg  rm  r.   r]   rg   r   r   r   r   r   r7  r   r   r   r  r(  r-  r   r   r*  r/  r   r   rF  rM  rN  rS  rV  r  r  r>  r`  ra  r   objectrv  r  r  r  r   r   r   r   <module>   s   


		<K& 
$u







0	