o
    Žõ±j‘  ã                   @   sb   d dl mZmZmZmZmZ eZeZeZeZ	dZ
dZdZdZddd„Zd	d
„ Zdd„ Zdd„ ZdS )é    )ÚWinErrorÚwindllÚc_uint32Úc_void_pÚc_int32Ni   é   i   © c                 C   s   | st ƒ ‚| S )z«
	Error checking for most Win32 API calls.

	The function is assumed to return an integer, which is C{0} on error.
	In that case the C{WindowsError} exception is raised.
	)r   )ÚresultÚfuncÚ	argumentsr   r   úš/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/kerberos/functiondefs/kernel32.pyÚRaiseIfZero   s   r   c                 C   s(   t jj}tg|_t|_t|_|| ƒ d S ©N)	r   Úkernel32ÚCloseHandleÚHANDLEÚargtypesÚboolÚrestyper   Úerrcheck)ÚhHandleÚ_CloseHandler   r   r   r      s
   r   c                  C   s   t jj} g | _t| _| ƒ S r   )r   r   ÚGetCurrentProcessIdr   ÚDWORDr   )Ú_GetCurrentProcessIdr   r   r   r   !   s   r   c                 C   s<   t jj}tttg|_t|_|| t|ƒ|ƒ}|t	krt
ƒ ‚|S r   )r   r   ÚOpenProcessr   ÚBOOLr   r   r   r   ÚNULLr   )ÚdwDesiredAccessÚbInheritHandleÚdwProcessIdÚ_OpenProcessÚhProcessr   r   r   r   ,   s   r   )Nr   )Úctypesr   r   r   r   r   ÚLPVOIDr   r   r   r   ÚPROCESS_QUERY_INFORMATIONÚPROCESS_VM_READÚMAXIMUM_ALLOWEDr   r   r   r   r   r   r   r   Ú<module>   s    
