o
    àý°j§9  ã                   @   sn  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 d dlmZ d dlmZ edƒZG dd„ deƒZd	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 dd„ deƒZ$e$Z%e$Z&G dd„ deƒZ'e$Z(G dd„ deƒZ)G dd„ deƒZ*e$Z+G dd„ deƒZ,G dd„ deƒZ-G dd „ d eƒZ.G d!d"„ d"eƒZ/G d#d$„ d$eƒ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/d0„ d0eƒZ6G d1d2„ d2eƒZ7G d3d4„ d4eƒZ8G d5d6„ d6eƒZ9G d7d8„ d8eƒZ:G d9d:„ d:e:ƒ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ƒZAG dGdH„ dHeƒZBG dIdJ„ dJeƒZCG dKdL„ dLeƒZDG dMdN„ dNeƒZEG dOdP„ dPeƒZFG dQdR„ dReƒZGG dSdT„ dTeƒZHG dUdV„ dVeƒZIG dWdX„ dXeƒZJG dYdZ„ dZeƒZKG d[d\„ d\eƒZLG d]d^„ d^eƒZMG d_d`„ d`eƒZNG dadb„ dbeƒZOG dcdd„ ddeƒZPG dedf„ dfeƒZQG dgdh„ dheƒZRG didj„ djeƒZSG dkdl„ dleƒZTG dmdn„ dneƒZUG dodp„ dpeƒZVG dqdr„ dreƒZWeBeCfeDeEfeFeGfeHeIfeJeKfeLeMfeNeOfePeQfeReSfeTeTfeVeWfdsœZXdtdu„ ZYd‹dwdx„ZZdydz„ Z[dŒd|d}„Z\efd~d„Z]d€d�„ Z^d�d‚dƒ„Z_d„d…„ Z`d†d‡„ Zadˆd‰„ ZbdŠS )Žé    )Úsystem_errors)ÚWSTRÚDWORDÚLPWSTRÚULONGÚLARGE_INTEGERÚWORDÚBYTEÚUUID)ÚNDRCALLÚ
NDRPOINTERÚNDRUniConformantArrayÚNDRUniVaryingArrayÚ	NDRSTRUCTÚNULL)ÚDCERPCException)Úuuidtup_to_bin)z$F6BEAFF7-1E19-4FBB-9F8F-B89E2018337Cz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/even6.pyr   %   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(EVEN6 SessionError: code: 0x%x - %s - %sz,EVEN6 SessionError: unknown error code: 0x%x)r   r   ÚERROR_MESSAGES)r   ÚkeyÚerror_msg_shortÚerror_msg_verboser   r   r   Ú__str__(   s   

zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r   r!   r   r   r   r   r   $   s    
r   c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r   )Ústringr   r   r   ÚcheckNullString1   s
   r(   r   é   é   i   i   i   é   i   c                   @   s.   e Zd ZdefdeffZd	dd„Zdd„ ZdS )
Úhandle_tÚcontext_handle_attributesÚcontext_handle_uuidNFc                 C   s   t  | ||¡ d| d< d S )Nó                   r.   )r   r   )r   ÚdataÚisNDR64r   r   r   r   ]   s   zhandle_t.__init__c                 C   s   | d dkS )Nr.   r/   r   )r   r   r   r   ÚisNulla   s   zhandle_t.isNull)NF)r"   r#   r$   r   r
   Ú	structurer   r2   r   r   r   r   r,   W   s    þ
r,   c                   @   ó   e Zd ZdeffZdS )ÚPCONTEXT_HANDLE_LOG_HANDLEÚDataN)r"   r#   r$   ÚCONTEXT_HANDLE_LOG_HANDLEÚreferentr   r   r   r   r5   h   ó    ÿr5   c                   @   r4   )ÚPCONTEXT_HANDLE_LOG_QUERYr6   N)r"   r#   r$   ÚCONTEXT_HANDLE_LOG_QUERYr8   r   r   r   r   r:   o   r9   r:   c                   @   r4   )ÚLPPCONTEXT_HANDLE_LOG_QUERYr6   N)r"   r#   r$   r:   r8   r   r   r   r   r<   t   r9   r<   c                   @   r4   )Ú!PCONTEXT_HANDLE_OPERATION_CONTROLr6   N)r"   r#   r$   Ú CONTEXT_HANDLE_OPERATION_CONTROLr8   r   r   r   r   r=   {   r9   r=   c                   @   ó   e Zd ZdefdeffZdS )ÚEvtRpcQueryChannelInfoÚNameÚStatusN)r"   r#   r$   r   r   r3   r   r   r   r   r@   �   ó    þr@   c                   @   ó   e Zd ZeZdS )ÚEvtRpcQueryChannelInfoArrayN)r"   r#   r$   r@   Úitemr   r   r   r   rE   ‡   ó    rE   c                   @   ó   e Zd ZdefZdS )ÚLPEvtRpcQueryChannelInfoArrayr6   N)r"   r#   r$   rE   r8   r   r   r   r   rI   Š   ó    ÿrI   c                   @   s"   e Zd ZdefdefdeffZdS )ÚRPC_INFOÚErrorÚSubErrorÚSubErrorParamN)r"   r#   r$   r   r3   r   r   r   r   rK   �   ó
    ýrK   c                   @   rH   )Ú	PRPC_INFOr6   N)r"   r#   r$   rK   r8   r   r   r   r   rP   –   rJ   rP   c                   @   rD   )Ú
WSTR_ARRAYN)r"   r#   r$   r   rF   r   r   r   r   rQ   ›   rG   rQ   c                   @   rD   )ÚDWORD_ARRAYN©r"   r#   r$   r   rF   r   r   r   r   rR   ž   rG   rR   c                   @   rH   )ÚLPDWORD_ARRAYr6   N)r"   r#   r$   rR   r8   r   r   r   r   rT   ¡   rJ   rT   c                   @   ó   e Zd ZdZdS )Ú
BYTE_ARRAYÚcN©r"   r#   r$   rF   r   r   r   r   rV   ¦   rG   rV   c                   @   rD   )ÚCBYTE_ARRAYN)r"   r#   r$   r	   rF   r   r   r   r   rY   ©   rG   rY   c                   @   rD   )ÚCDWORD_ARRAYNrS   r   r   r   r   rZ   ¬   rG   rZ   c                   @   rH   )ÚLPBYTE_ARRAYr6   N)r"   r#   r$   rY   r8   r   r   r   r   r[   ¯   rJ   r[   c                   @   rD   )ÚULONG_ARRAYN)r"   r#   r$   r   rF   r   r   r   r   r\   ´   rG   r\   c                   @   r4   )ÚPCDWORD_ARRAYr6   N)r"   r#   r$   rZ   r8   r   r   r   r   r]   ¸   r9   r]   c                   @   ó   e Zd ZdS )ÚPDWORD_ARRAYN©r"   r#   r$   r   r   r   r   r_   ½   ó    r_   c                   @   rU   )ÚBYTE_ARRAY_CONFORMANTrW   NrX   r   r   r   r   rb   Á   rG   rb   c                   @   r4   )ÚPBYTE_ARRAY_CONFORMANTr6   N)r"   r#   r$   rb   r8   r   r   r   r   rc   Ä   r9   rc   c                   @   r^   )ÚPBYTE_ARRAYNr`   r   r   r   r   rd   É   ra   rd   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 )	ÚEVENT_DESCRIPTORÚIdÚVersionÚChannelÚLevelSeverityÚOpcodeÚTaskÚKeywordN)r"   r#   r$   r   r	   r   r3   r   r   r   r   re   Í   s    ùre   c                   @   s6   e Zd ZdefddefdefdefdefdeffZdS )	ÚBOOKMARKÚBookmarkSize)Ú
HeaderSizez<L=0x18ÚChannelSizeÚCurrentChannelÚReadDirectionÚRecordIdsOffsetÚLogRecordNumbersN)r"   r#   r$   r   r\   r3   r   r   r   r   rm   Ø   s    ùrm   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 )Ú
RESULT_SETÚ	TotalSizero   ÚEventOffsetÚBookmarkOffsetÚ
BinXmlSizeÚ	EventDataN)r"   r#   r$   r   rV   r3   r   r   r   r   ru   å   ó    úru   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )Ú EvtRpcRegisterRemoteSubscriptionr   ÚchannelPathÚqueryÚbookmarkXmlÚFlagsN©r"   r#   r$   Úopnumr   r   r   r3   r   r   r   r   r|   ö   ó    ü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 )Ú(EvtRpcRegisterRemoteSubscriptionResponseÚHandleÚ	OpControlÚQueryChannelInfoSizeÚQueryChannelInforL   N)	r"   r#   r$   Ú"CONTEXT_HANDLE_REMOTE_SUBSCRIPTIONr>   r   rE   rK   r3   r   r   r   r   r…   ÿ   ó    ûr…   c                   @   ó,   e Zd ZdZdefdefdefdeffZdS )ÚEvtRpcRemoteSubscriptionNextr)   r†   ÚNumRequestedRecordsÚTimeOutr€   N)r"   r#   r$   r‚   rŠ   r   r3   r   r   r   r   r�     rƒ   r�   c                   @   ó4   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 )Ú$EvtRpcRemoteSubscriptionNextResponseÚNumActualRecordsÚEventDataIndicesÚEventDataSizesÚResultBufferSizeÚResultBufferÚ	ErrorCodeN)r"   r#   r$   r   r_   rd   r   r3   r   r   r   r   r‘     r{   r‘   c                   @   s   e Zd ZdZdZdS )Ú#EvtRpcRegisterControllableOperationr*   r   N)r"   r#   r$   r‚   r3   r   r   r   r   r˜     s    r˜   c                   @   r?   )Ú+EvtRpcRegisterControllableOperationResponser†   rL   N)r"   r#   r$   r>   r   r3   r   r   r   r   r™     rC   r™   c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚEvtRpcRegisterLogQueryé   ÚPathÚQueryr€   Nr�   r   r   r   r   rš   %  s    ýrš   c                   @   r„   )ÚEvtRpcRegisterLogQueryResponser†   r‡   rˆ   r‰   rL   N)	r"   r#   r$   r;   r>   r   rE   rK   r3   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 )ÚEvtRpcClearLogé   r†   ÚChannelPathÚ
BackupPathr€   N©r"   r#   r$   r‚   r>   r   r   r3   r   r   r   r   rŸ   6  rƒ   rŸ   c                   @   r4   )ÚEvtRpcClearLogResponserL   N©r"   r#   r$   rK   r3   r   r   r   r   r¤   ?  r9   r¤   c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )ÚEvtRpcExportLogé   r†   r¡   r�   r¢   r€   Nr£   r   r   r   r   r¦   D  s    ûr¦   c                   @   r4   )ÚEvtRpcExportLogResponserL   Nr¥   r   r   r   r   r¨   N  r9   r¨   c                   @   rŒ   )ÚEvtRpcQueryNexté   ÚLogQueryrŽ   Ú
TimeOutEndr€   N)r"   r#   r$   r‚   r;   r   r3   r   r   r   r   r©   S  rƒ   r©   c                   @   r�   )ÚEvtRpcQueryNextResponser’   r“   r”   r•   r–   r—   N)r"   r#   r$   r   rR   rV   r   r3   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 )ÚEvtRpcQuerySeeké   r«   ÚPosÚBookmarkXMLr€   N)	r"   r#   r$   r‚   r;   r   r   r   r3   r   r   r   r   r®   f  rƒ   r®   c                   @   r4   )ÚEvtRpcQuerySeekResponserL   Nr¥   r   r   r   r   r²   o  r9   r²   c                   @   ó   e Zd ZdZdeffZdS )ÚEvtRpcCloseé   r†   N)r"   r#   r$   r‚   r7   r3   r   r   r   r   r´   t  ó    ÿr´   c                   @   r?   )ÚEvtRpcCloseResponser†   r—   N)r"   r#   r$   r5   r   r3   r   r   r   r   r·   z  rC   r·   c                   @   s    e Zd ZdZdefdeffZdS )ÚEvtRpcOpenLogHandleé   rh   r€   N)r"   r#   r$   r‚   r   r   r3   r   r   r   r   r¸   €  s
    þr¸   c                   @   r?   )ÚEvtRpcOpenLogHandleResponser†   rL   N)r"   r#   r$   r5   rK   r3   r   r   r   r   rº   ‡  rC   rº   c                   @   r³   )ÚEvtRpcGetChannelListé   r€   N)r"   r#   r$   r‚   r   r3   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 )ÚEvtRpcGetChannelListResponseÚNumChannelPathsÚChannelPathsr—   N)r"   r#   r$   r   rQ   r   r3   r   r   r   r   r½   “  rO   r½   )r   r)   r*   r›   r    r§   rª   r¯   rµ   r¹   r¼   c                 C   s@   t ƒ }t|ƒ|d< t|ƒ|d< t|ƒ|d< ||d< |  |¡}|S )Nr}   r~   r   r€   )r|   r(   Úrequest)Údcer}   r~   r   ÚflagsrÀ   Úrespr   r   r   Ú!hEvtRpcRegisterRemoteSubscription°  s   
rÄ   éè  c                 C   s4   t ƒ }||d< ||d< ||d< ||d< |  |¡}|S )Nr†   rŽ   r�   r€   )r�   rÀ   )rÁ   ÚhandleÚnumRequestedRecordsÚtimeOutrÂ   rÀ   rÃ   r   r   r   ÚhEvtRpcRemoteSubscriptionNext¹  s   
rÉ   c                 C   s   t ƒ }|  |¡}|S r   )r˜   rÀ   ©rÁ   rÀ   rÃ   r   r   r   Ú$hEvtRpcRegisterControllableOperationÂ  s   
rË   ú* c                 C   s4   t ƒ }t|ƒ|d< t|ƒ|d< ||d< |  |¡}|S )Nrœ   r�   r€   )rš   r(   rÀ   )rÁ   ÚpathrÂ   r~   rÀ   rÃ   r   r   r   ÚhEvtRpcRegisterLogQueryÇ  s   
rÎ   c                 C   s<   t ƒ }||d< t|ƒ|d< t|ƒ|d< d|d< |  |¡}|S )Nr†   r¡   r¢   r   r€   )rŸ   r(   rÀ   )rÁ   rÆ   rÍ   Ú
backupPathrÀ   rÃ   r   r   r   ÚhEvtRpcClearLogÏ  s   
rÐ   c                 C   sH   t ƒ }||d< t|ƒ|d< t|ƒ|d< t|ƒ|d< d|d< |  |¡}|S )Nr†   r¡   r�   r¢   r   r€   )r¦   r(   rÀ   )rÁ   rÆ   r}   r~   rÏ   rÀ   rÃ   r   r   r   ÚhEvtRpcExportLogØ  s   
rÑ   c              
   C   s¬   t ƒ }||d< ||d< ||d< d|d< tj}|  |¡}|tjkrTz|  |¡}W |S  tyS } zt|ƒ d¡dk r:‚ t|ƒ d¡dk rD‚ | ¡ }W Y d }~|S d }~ww d S )Nr«   rŽ   r¬   r   r€   ÚERROR_NO_MORE_ITEMSÚERROR_TIMEOUT)r©   r   ÚERROR_MORE_DATArÀ   r   ÚstrÚfindÚ
get_packet)rÁ   rÆ   rÇ   Ú
timeOutEndrÀ   ÚstatusrÃ   Úer   r   r   ÚhEvtRpcQueryNextâ  s*   

ú€úýrÛ   c                 C   s   t ƒ }||d< |  |¡}|S )Nr†   )r´   rÀ   )rÁ   rÆ   rÀ   rÃ   r   r   r   ÚhEvtRpcCloseö  s   
rÜ   c                 C   s$   t ƒ }t|ƒ|d< ||d< |  |¡S )Nrh   r€   )r¸   r(   rÀ   )rÁ   ÚchannelrÂ   rÀ   r   r   r   ÚhEvtRpcOpenLogHandleü  s   
rÞ   c                 C   s   t ƒ }d|d< |  |¡}|S )Nr   r€   )r»   rÀ   rÊ   r   r   r   ÚhEvtRpcGetChannelList  s   
rß   N)rÅ   r   )rÌ   )rÅ   )cÚimpacketr   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r	   r
   Úimpacket.dcerpc.v5.ndrr   r   r   r   r   r   Úimpacket.dcerpc.v5.rpcrtr   Úimpacket.uuidr   ÚMSRPC_UUID_EVEN6r   r(   ÚEvtSubscribeToFutureEventsÚEvtSubscribeStartAtOldestRecordÚEvtSubscribeStartAfterBookmarkÚEvtSubscribeTolerateQueryErrorsÚEvtSubscribeStrictÚEvtSubscribePullÚEvtQueryChannelNameÚEvtQueryFilePathÚEvtQueryTolerateQueryErrorsÚEvtReadOldestToNewestÚEvtReadNewestToOldestr,   rŠ   r7   r5   r;   r:   r<   r>   r=   r@   rE   rI   rK   rP   rQ   rR   rT   rV   rY   rZ   r[   r\   r]   r_   rb   rc   rd   re   rm   ru   r|   r…   r�   r‘   r˜   r™   rš   rž   rŸ   r¤   r¦   r¨   r©   r­   r®   r²   r´   r·   r¸   rº   r»   r½   ÚOPNUMSrÄ   rÉ   rË   rÎ   rÐ   rÑ   rÛ   rÜ   rÞ   rß   r   r   r   r   Ú<module>   sº   ( 			
		
	
	õ
		
	

