a
    kÄ#dŸ`  ã                L   @   sF  d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z# d	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTœKZ$G dUdV„ dVeƒZ%G dWdX„ dXeƒZ&G dYdZ„ dZeƒZ'ee%e'd[d\� d]d^„ Z(d_d`„ Z)G dadb„ dbeƒZ*g dc¢Z+G ddde„ dee*ƒZ,ee%e,d[dfdg� G dhdi„ die*ƒZ-ee%e-d[dfdjdk� G dldm„ dme*ƒZ.ee%e.d[dfdg� G dndo„ doeƒZ/ee%e/dpd\� G dqdr„ dreƒZ0ee%e0dsd\� ee/e0dsdt� G dudv„ dveƒZ1ee%e1dpdjdw� G dxdy„ dyeƒZ2ee%e2dpdfdg� G dzd{„ d{e2ƒZ3ee%e3dpdfdjdk� G d|d}„ d}eƒZ4ee%e4dpd\� G d~d„ deƒZ5ee%e5d€d\� G d�d‚„ d‚eƒZ6G dƒd„„ d„eƒZ7G d…d†„ d†eƒZ8G d‡dˆ„ dˆeƒZ9eee9ƒ dS )‰zt
SMB (Server Message Block), also known as CIFS.

Specs:
- [MS-CIFS] (base)
- [MS-SMB] (extension of CIFS - SMB v1)
é    N)Úconf)ÚPacketÚbind_layersÚbind_top_down)ÚByteEnumFieldÚ	ByteFieldÚFieldLenFieldÚ
FlagsFieldÚLEFieldLenFieldÚLEIntEnumFieldÚ
LEIntFieldÚLEShortFieldÚMultipleTypeFieldÚPacketLenFieldÚPacketListFieldÚReversePadFieldÚScalingFieldÚ
ShortFieldÚStrFixedLenFieldÚStrNullFieldÚStrNullFieldUtf16ÚUTCTimeFieldÚ	UUIDFieldÚXStrLenField)Ú
NBTSession)ÚGSSAPI_BLOB)ÚSTATUS_ERREFÚSMB2_HeaderZSMB_COM_CREATE_DIRECTORYZSMB_COM_DELETE_DIRECTORYZSMB_COM_OPENZSMB_COM_CREATEZSMB_COM_CLOSEZSMB_COM_FLUSHZSMB_COM_DELETEZSMB_COM_RENAMEZSMB_COM_QUERY_INFORMATIONZSMB_COM_SET_INFORMATIONZSMB_COM_READZSMB_COM_WRITEZSMB_COM_LOCK_BYTE_RANGEZSMB_COM_UNLOCK_BYTE_RANGEZSMB_COM_CREATE_TEMPORARYZSMB_COM_CREATE_NEWZSMB_COM_CHECK_DIRECTORYZSMB_COM_PROCESS_EXITZSMB_COM_SEEKZSMB_COM_LOCK_AND_READZSMB_COM_WRITE_AND_UNLOCKZSMB_COM_READ_RAWZSMB_COM_READ_MPXZSMB_COM_READ_MPX_SECONDARYZSMB_COM_WRITE_RAWZSMB_COM_WRITE_MPXZSMB_COM_WRITE_MPX_SECONDARYZSMB_COM_WRITE_COMPLETEZSMB_COM_QUERY_SERVERZSMB_COM_SET_INFORMATION2ZSMB_COM_QUERY_INFORMATION2ZSMB_COM_LOCKING_ANDXZSMB_COM_TRANSACTIONZSMB_COM_TRANSACTION_SECONDARYZSMB_COM_IOCTLZSMB_COM_IOCTL_SECONDARYZSMB_COM_COPYZSMB_COM_MOVEZSMB_COM_ECHOZSMB_COM_WRITE_AND_CLOSEZSMB_COM_OPEN_ANDXZSMB_COM_READ_ANDXZSMB_COM_WRITE_ANDXZSMB_COM_NEW_FILE_SIZEZSMB_COM_CLOSE_AND_TREE_DISCZSMB_COM_TRANSACTION2ZSMB_COM_TRANSACTION2_SECONDARYZSMB_COM_FIND_CLOSE2ZSMB_COM_FIND_NOTIFY_CLOSEZSMB_COM_TREE_CONNECTZSMB_COM_TREE_DISCONNECTZSMB_COM_NEGOTIATEZSMB_COM_SESSION_SETUP_ANDXZSMB_COM_LOGOFF_ANDXZSMB_COM_TREE_CONNECT_ANDXZSMB_COM_SECURITY_PACKAGE_ANDXZSMB_COM_QUERY_INFORMATION_DISKZSMB_COM_SEARCHZSMB_COM_FINDZSMB_COM_FIND_UNIQUEZSMB_COM_FIND_CLOSEZSMB_COM_NT_TRANSACTZSMB_COM_NT_TRANSACT_SECONDARYZSMB_COM_NT_CREATE_ANDXZSMB_COM_NT_CANCELZSMB_COM_NT_RENAMEZSMB_COM_OPEN_PRINT_FILEZSMB_COM_WRITE_PRINT_FILEZSMB_COM_CLOSE_PRINT_FILEZSMB_COM_GET_PRINT_QUEUEZSMB_COM_READ_BULKZSMB_COM_WRITE_BULKZSMB_COM_WRITE_BULK_DATAZSMB_COM_INVALIDZSMB_COM_NO_ANDX_COMMAND)Kr   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   é2   é3   é4   é5   ép   éq   ér   és   ét   éu   é~   é€   é�   é‚   éƒ   é„   é    é¡   é¢   é¤   é¥   éÀ   éÁ   éÂ   éÃ   éØ   éÙ   éÚ   éþ   éÿ   c                       s¦   e Zd ZdZedddƒeddeƒeddeƒe	d	d
dg d¢ƒe	dddg d¢ƒe
ddƒedddd�e
ddƒe
ddƒe
ddƒe
ddƒe
ddƒgZ‡ fdd„Zdd„ Z‡  ZS )Ú
SMB_HeaderzSMB 1 Protocol Request HeaderÚStartó   ÿSMBr!   ÚCommandrP   ÚStatusr   ÚFlagsé   r%   )ZLOCK_AND_READ_OKZ	BUF_AVAILÚresZCASE_INSENSITIVEZCANONICALIZED_PATHSZOPLOCKZOPBATCHÚREPLYÚFlags2éðÿÿÿ)Z
LONG_NAMESZEASZSMB_SECURITY_SIGNATUREZ
COMPRESSEDZSMB_SECURITY_SIGNATURE_REQUIREDro   ZIS_LONG_NAMEro   ro   ro   ZREPARSE_PATHÚEXTENDED_SECURITYÚDFSZ	PAGING_IOZ	NT_STATUSÚUNICODEZPIDHighZSecuritySignatureó    )ÚlengthÚReservedZTIDZPIDLowr   ÚUIDZMIDc                    sÞ   |st t| ƒ |¡S t|d d… ƒ}| jdkrN| jjrH| jjrBt	S t
S qÎtS n€| jdkrÀ|dkrdtS | jjr–|dkrxtS |dkr„tS | jjr�tS tS qÎ|dkr¢tS |dkr®tS | jjrºtS tS n| jd	krÎtS t t| ƒ |¡S )
Nr   rP   rQ   r   r!   r    r)   r*   r=   )Úsuperrh   Úguess_payload_classÚordrk   rm   rp   rq   rs   Ú'SMBNegotiate_Response_Extended_SecurityÚSMBNegotiate_Response_SecurityÚSMBNegotiate_RequestÚSMBSession_NullÚ0SMBSession_Setup_AndX_Response_Extended_SecurityÚSMBSession_Setup_AndX_ResponseÚ/SMBSession_Setup_AndX_Request_Extended_SecurityÚSMBSession_Setup_AndX_RequestÚ$SMBNetlogon_Protocol_Response_Header)ÚselfÚpayloadÚ	WordCount©Ú	__class__© úG/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/layers/smb.pyr{   ©   s<    


zSMB_Header.guess_payload_classc                 C   s   t |v S ©N)rh   )r†   Úpktr‹   r‹   rŒ   ÚanswersÏ   s    zSMB_Header.answers)Ú__name__Ú
__module__Ú__qualname__Únamer   r   ÚSMB_COMr   r   r	   r   Úfields_descr{   r�   Ú__classcell__r‹   r‹   r‰   rŒ   rh   ‚   s(   


ÿ	ÿÝ%&rh   c                   @   s,   e Zd ZdZeddƒeddƒgZdd„ ZdS )	ÚSMB_DialectzSMB DialectZBufferFormatr   ZDialectStringz
NT LM 0.12c                 C   s   t jS r�   )r   Zpadding_layer)r†   r‡   r‹   r‹   rŒ   Údefault_payload_classÛ   s    z!SMB_Dialect.default_payload_classN)r�   r‘   r’   r“   r   r   r•   r˜   r‹   r‹   r‹   rŒ   r—   Ö   s
   ÿr—   c                   @   s>   e Zd ZdZeddƒedddd�edeƒ gedd	„ d
�gZdS )r   zSMB Negotiate Requestrˆ   r   Ú	ByteCountNZDialects©Ú	length_ofc                 C   s   | j S r�   ©r™   ©rŽ   r‹   r‹   rŒ   Ú<lambda>å   rv   zSMBNegotiate_Request.<lambda>©Zlength_from)	r�   r‘   r’   r“   r   r
   r   r—   r•   r‹   r‹   r‹   rŒ   r   ß   s   
þþr   rP   )rk   c                 C   s$   dd„ }t t| |ƒ|fgt| |ƒƒS )zb
    Returns a StrNullField that is either normal or UTF-16 depending
    on the SMB headers.
    c                 S   s*   t | dƒs| jr| j} q t | dƒo(| jjS )Nrq   )ÚhasattrZ
underlayerrq   ru   r�   r‹   r‹   rŒ   Ú_isUTF16ó   s    z"_SMBStrNullField.<locals>._isUTF16)r   r   r   )r“   Údefaultr¡   r‹   r‹   rŒ   Ú_SMBStrNullFieldî   s    ÿÿûr£   c                 C   s    |   |¡\}}t| | |d¡ƒS )zD
    Returns the length of a field, works with Unicode strings.
    rv   )Zgetfield_and_valÚlenZaddfield)rŽ   r“   ZfldÚvr‹   r‹   rŒ   Ú_len   s    r¦   c                   @   s   e Zd Zeddd„ƒZdS )Ú_SMBNegotiate_ResponseNc                 O   sJ   |rFt |ƒdkrFt d|d d… ¡}|dkr0tS |dkr:n|dkrF| S | S )Nr   ú<Hr   r*   r.   )r¤   ÚstructÚunpackÚ SMBNegotiate_Response_NoSecurity)ÚclsÚ_pktÚargsÚkargsÚwcr‹   r‹   rŒ   Údispatch_hook	  s    z$_SMBNegotiate_Response.dispatch_hook)N)r�   r‘   r’   Úclassmethodr±   r‹   r‹   r‹   rŒ   r§     s   r§   ) ZRAW_MODEZMPX_MODEru   ZLARGE_FILESZNT_SMBSZRPC_REMOTE_APISZSTATUS32ZLEVEL_II_OPLOCKSZLOCK_AND_READZNT_FINDro   ro   rt   ZINFOLEVEL_PASSTHRUZLARGE_READXZLARGE_WRITEXZLWIOro   ro   ro   ro   ro   ro   ZUNIXro   ZCOMPRESSED_DATAro   ro   ro   ZDYNAMIC_REAUTHZPERSISTENT_HANDLESrs   c                   @   sÂ   e Zd ZdZeddƒeddƒedddg d	¢ƒed
dƒeddƒeddƒeddƒeddƒedddeƒe	dddg d¢dd�e
ddddd �ed!dd"d#d$�ed%dd&d'd(„ d)�ed"d*d+d(„ d,�ed&d-ƒgZdS ).r«   z)SMB Negotiate No-Security Response (CIFS)rˆ   r   ZDialectIndexr$   ZSecurityModer    r%   )ZUSER_SECURITYZENCRYPT_PASSWORDSZSECURITY_SIGNATURES_ENABLEDZSECURITY_SIGNATURES_REQUIREDZMaxMpxCountrJ   ZMaxNumberVCÚMaxBufferSizeé?  Z
MaxRawSizei   Ú
SessionKeyr   ÚServerCapabilitiesiùó  éàÿÿÿZ
ServerTimeNz<Q)iA  r   r   r   r   r   g    ÐcA)ÚfmtÚepochZcustom_scalingZServerTimeZoneé<   z<hzmin-UTC)r¸   ÚunitÚChallengeLengthÚ	Challengez<B©r›   r¸   r™   Ú
DomainNamec                 C   s   |t | jƒ S r�   )r¤   r½   ©rŽ   Úxr‹   r‹   rŒ   rž   T  s   ÿz)SMBNegotiate_Response_NoSecurity.<lambda>©r›   Úadjustrv   c                 C   s   | j S r�   ©r¼   r�   r‹   r‹   rŒ   rž   W  rv   rŸ   Ú	WORKGROUP)r�   r‘   r’   r“   r   r   r	   r   Ú_SMB_ServerCapabilitiesr   r   r   r
   r   r   r•   r‹   r‹   r‹   rŒ   r«   ;  s@   ÿÿþÿþÿÿår«   rU   )rk   rm   c                
   @   s`   e Zd ZdZdZejdd… eddddd„ d	�ejd
 eddej	d�e
ddedd„ d�g ZdS )r}   z.SMB Negotiate Extended Security Response (SMB)r.   Nr)   r™   ÚSecurityBlobc                 C   s   |d S ©Nr-   r‹   )Ú_rÁ   r‹   r‹   rŒ   rž   f  rv   z0SMBNegotiate_Response_Extended_Security.<lambda>rÂ   r*   ZGUID)Zuuid_fmtc                 C   s
   | j d S rÈ   rœ   ©rÁ   r‹   r‹   rŒ   rž   j  rv   rŸ   )r�   r‘   r’   r“   rˆ   r«   r•   r
   r   Z	FORMAT_LEr   r   r‹   r‹   r‹   rŒ   r}   a  s   ÿÿûr}   i   )rk   rm   rq   c                   @   sX   e Zd ZdZdZejdd… eddddd„ d	�ed
ddd„ d�e	ddƒe	ddƒg ZdS )r~   z2SMB Negotiate Non-Extended Security Response (SMB)r.   Nr)   r™   r¿   c                 C   s   |d t | dƒ t | dƒ S )Nr   r½   Ú
ServerName)r¦   rÀ   r‹   r‹   rŒ   rž   y  s   ÿz'SMBNegotiate_Response_Security.<lambda>rÂ   r½   rv   c                 C   s   | j S r�   rÄ   r�   r‹   r‹   rŒ   rž   |  rv   rŸ   rÅ   rË   ZRMFF1)
r�   r‘   r’   r“   rˆ   r«   r•   r
   r   r£   r‹   r‹   r‹   rŒ   r~   t  s   ÿÿùr~   c                   @   sÚ   e Zd ZdZeddƒeddeƒeddƒedd	ƒed
dƒeddƒeddƒeddƒe	dd	dd�e	dd	dd�eddƒe
dddeƒedd	ƒedddd„ d�edddd„ d�eedd ƒd!d"ƒed#d$ƒed%d&ƒed'd&ƒgZd(d)„ Zd	S )*r„   z!Session Setup AndX Request (CIFS)rˆ   r*   ÚAndXCommandrg   ÚAndXReservedr   Ú
AndXOffsetNr³   r´   ZMaxMPXCountrJ   ZVCNumberrµ   ÚOEMPasswordLengthZOEMPasswordrš   ÚUnicodePasswordLengthZUnicodePasswordrx   r¶   r"   r·   r™   ÚPassc                 C   s   | j S r�   )rÏ   rÊ   r‹   r‹   rŒ   rž   Ÿ  rv   z&SMBSession_Setup_AndX_Request.<lambda>rŸ   c                 C   s   | j S r�   )rÐ   rÊ   r‹   r‹   rŒ   rž   ¡  rv   ZAccountNameZGUESTr   ó    ÚPrimaryDomainÚ ÚNativeOSúWindows 4.0ÚNativeLanManc                 C   sÈ   | j d u r@| jdkr@|d d… t dt|ƒd ¡ |dd …  }| jd u rv|d d… t dt|ƒd ¡ |dd …  }| jrÀt| jdƒrÀ|rÀ|d d… t dt|ƒt|ƒ d ¡ |dd …  }|| S )	Nrg   r    r¨   r8   r"   r3   r5   rÎ   )rÎ   rÌ   r©   Úpackr¤   r™   r‡   r    ©r†   rŽ   Zpayr‹   r‹   rŒ   Ú
post_build©  s    ,
,
ÿ
ÿz(SMBSession_Setup_AndX_Request.post_build)r�   r‘   r’   r“   r   r   r”   r   r   r
   r	   rÆ   r   r   r£   r•   rÚ   r‹   r‹   r‹   rŒ   r„   Š  sH   ÿÿÿÿÿÿÿår„   rQ   c                	   @   sz   e Zd ZdZdZejdd… edddg d¢ƒeddd	d
d�e	ddƒe
d	ddd„ d�eeddƒdƒeddƒg Zdd„ ZdS )ÚSMBTree_Connect_AndXzSession Tree Connect AndXr!   Nrm   rÔ   rr   )ZDISCONNECT_TIDÚr2ZEXTENDED_SIGNATURESZEXTENDED_RESPONSEÚPasswordLengthZPasswordr¨   r¾   r™   rv   c                 C   s   | j S r�   )rÝ   r�   r‹   r‹   rŒ   rž   Æ  rv   zSMBTree_Connect_AndX.<lambda>rŸ   ÚPathz\\WIN2K\IPC$r   ÚServicez?????c                 C   sB   ||7 }| j d u r>|d d… t dt|ƒd ¡ |dd …  }|S ©Nr&   r¨   r(   ©r™   r©   rØ   r¤   rÙ   r‹   r‹   rŒ   rÚ   Î  s    
,zSMBTree_Connect_AndX.post_build)r�   r‘   r’   r“   rˆ   r„   r•   r	   r   r   r   r   r£   r   rÚ   r‹   r‹   r‹   rŒ   rÛ   º  s$   ÿÿþòrÛ   rS   )rÌ   c                   @   s~   e Zd ZdZdZejdd… edddd�g ejdd…  ed	dƒe	dde
d
d„ d�eeddƒddƒeddƒg Zdd„ ZdS )rƒ   z2Session Setup AndX Extended Security Request (SMB)r)   Nr%   ÚSecurityBlobLengthrÇ   rš   r'   r™   c                 C   s   | j S r�   )râ   rÊ   r‹   r‹   rŒ   rž   æ  rv   z8SMBSession_Setup_AndX_Request_Extended_Security.<lambda>rŸ   rÕ   rÖ   r   rÒ   r×   c                 C   s>   | j d u r6|d d… t dt|ƒd ¡ |dd …  }|| S )Né   r¨   r3   rá   rÙ   r‹   r‹   rŒ   rÚ   î  s    
,z:SMBSession_Setup_AndX_Request_Extended_Security.post_build)r�   r‘   r’   r“   rˆ   r„   r•   r
   r   r   r   r   r£   rÚ   r‹   r‹   r‹   rŒ   rƒ   Ý  s*   ÿÿýÿþøýrƒ   )rk   rq   c                   @   s²   e Zd ZdZeddƒeddeƒeddƒedd	ƒed
dddddœƒeddƒe	ddƒe	ddƒe	ddƒeddƒeddeƒeddƒeddƒeddƒeddƒe
dd ƒe
d!dƒgZd"d#„ Zd	S )$r‚   z"Session Setup AndX Response (CIFS)rˆ   r    rÌ   rg   rÍ   r   rÎ   NÚActionrr   ZSMB_SETUP_GUESTZSMB_SETUP_USE_LANMAN_KEY)r   r   r™   rã   rÕ   rÖ   r×   rÓ   rÔ   Z
WordCount2ZAndXCommand2Z	Reserved3ZAndXOffset2éP   ZOptionalSupportr   Z
ByteCount2r"   rß   ZIPCZNativeFileSystemc                 C   s>   | j d u r6|d d… t dt|ƒd ¡ |dd …  }|| S )Nr    r¨   r8   r"   )rÎ   r©   rØ   r¤   rÙ   r‹   r‹   rŒ   rÚ     s    
,z)SMBSession_Setup_AndX_Response.post_build)r�   r‘   r’   r“   r   r   r”   r   r	   r£   r   r•   rÚ   r‹   r‹   r‹   rŒ   r‚   ü  s2   ÿþ
êr‚   c                       sL   e Zd ZdZdZejdd… ejd g ejdd…  Z‡ fdd„Z‡  Z	S )	r�   z3Session Setup AndX Extended Security Response (SMB)r!   Nr"   r%   r(   c                    sH   | j d u r6|d d… t dt|ƒd ¡ |dd …  }tt| ƒ ||¡S rà   )r™   r©   rØ   r¤   rz   r�   rÚ   rÙ   r‰   r‹   rŒ   rÚ   ,  s    
,þýz;SMBSession_Setup_AndX_Response_Extended_Security.post_build)
r�   r‘   r’   r“   rˆ   r‚   r•   rƒ   rÚ   r–   r‹   r‹   r‰   rŒ   r�   #  s   
ÿþÿr�   c                   @   s    e Zd ZeddƒeddƒgZdS )r€   rˆ   r   r™   N)r�   r‘   r’   r   r   r•   r‹   r‹   r‹   rŒ   r€   ;  s   ÿr€   c                   @   s¤   e Zd ZdZeddƒeddƒeddƒeddƒed	dƒed
dƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒgZdS )r…   z$SMBNetlogon Protocol Response Headerrˆ   r.   ZTotalParamCountr   ZTotalDataCountrN   ZMaxParamCountZMaxDataCountZMaxSetupCountZunused2ZFlags3ZTimeOut1éè   ZTimeOut2r    Zunused3Zunused4ZParamCount2ZParamOffsetZ	DataCountZ
DataOffseté\   Z
SetupCountZunused5N)r�   r‘   r’   r“   r   r   r•   r‹   r‹   r‹   rŒ   r…   F  s(   ïr…   r=   c                   @   s<   e Zd ZdZeddƒeddƒeddƒeddƒed	d
ƒgZdS )ÚSMBMailSlotzSMB Mail Slot ProtocolÚopcoder   ÚpriorityÚclass_r   Úsizeé‡   r“   z\MAILSLOT\NET\GETDC660N)r�   r‘   r’   r“   r   r   r•   r‹   r‹   r‹   rŒ   rè   b  s   ürè   c                *   @   sd  e Zd ZdZedddddœƒeddƒed	dƒed
dƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒedd dƒed!dƒed"d#ƒed$d%ƒed&d'd%ƒed(d)ƒed*d+ƒed,d-ƒed.d/d%ƒed0dƒed1dƒed2d3dƒed4d)ƒed5d6ƒed7d)ƒed8d9ƒed:dƒed;d<ƒed=d>ƒed?dƒed@dƒedAdƒedBdƒedCdDƒedEdƒedFdGƒg(ZdHS )IÚ&SMBNetlogon_Protocol_Response_Tail_SAMz'SMB Netlogon Protocol Response Tail SAMrk   é   zSAM logon requestzSAM Active directory Response)r/   rï   Úunusedr   ZData1ZData2iý  ZData3ZData4iÞ¬  ZData5iå  ZData6i
Ñ  ZData7iL7  ZData8iâƒ  ZData9iÙ}  ZData10i:  ZData11iÿs  ZData12r!   ZData13ZrmffZData14ZData16iÀ  ZData18r'   ZData20z
rmff-win2kZData21r_   ZData22iÀ  ZData23i
  ZData24z
RMFF-WIN2KZData25ZData26ZData27zDefault-First-Site-NameZData28ZData29i<  ZData30ZData31i   ZData32ZData33i¬  ZData34éd   ZData35ZData36ZData37ZData38ZData39i   ZData40ZData41éÿÿ  N)	r�   r‘   r’   r“   r   r   r   r   r•   r‹   r‹   r‹   rŒ   rî   m  s\   ÿÿ



×rî   c                   @   sD   e Zd ZdZeddddiƒeddƒeddd	ƒed
dƒeddƒgZ	dS )Ú'SMBNetlogon_Protocol_Response_Tail_LM20z(SMB Netlogon Protocol Response Tail LM20rk   r#   z LM 2.0 Response to logon requestrð   r   ZDblSlashz\\r   rË   ZWINZ	LM20Tokenrò   N)
r�   r‘   r’   r“   r   r   r   r   r   r•   r‹   r‹   r‹   rŒ   ró   ž  s   
üró   c                   @   s,   e Zd ZdZedddƒgZeddd„ƒZdS )	Ú,SMBNegociate_Protocol_Request_Header_Genericz,SMBNegociate Protocol Request Header Genericri   rj   r!   Nc                 O   s<   |r8t |ƒdkr8|dd… dkr$tS |dd… dkr8tS | S )zš
            Depending on the first 4 bytes of the packet,
            dispatch to the correct version of Header
            (either SMB or SMB2)
        r!   Nrj   s   þSMB)r¤   rh   r   )r¬   r­   r®   r¯   r‹   r‹   rŒ   r±   ­  s    z:SMBNegociate_Protocol_Request_Header_Generic.dispatch_hook)N)r�   r‘   r’   r“   r   r•   r²   r±   r‹   r‹   r‹   rŒ   rô   ©  s   rô   ):Ú__doc__r©   Zscapy.configr   Zscapy.packetr   r   r   Zscapy.fieldsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zscapy.layers.netbiosr   Zscapy.layers.gssapir   Zscapy.layers.smb2r   r   r”   rh   r—   r   r£   r¦   r§   rÆ   r«   r}   r~   r„   rÛ   rƒ   r‚   r�   r€   r…   rè   rî   ró   rô   r‹   r‹   r‹   rŒ   Ú<module>   s  XµOT	
 ÿÿÿ*ÿÿÿÿ ÿÿÿÿ1