o
    j                     @   s   d dl T d dlZdd ZG dd dejZdd Zd	d
 Z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 G dd de!Z"G dd de!Z#e$e#Z%dd Z&dd Z'd d! Z(dS )"    )*Nc                  C   s   t jj} g | _t| _|  S N)windllkernel32GetLastErrorargtypesDWORDrestype)_GetLastError r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/utils/winapi/kernel32.pyr      s   r   c                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	WindowsMinBuildi	  i  i  iX  i@  i$  iH&  N)
__name__
__module____qualname__WIN_XPWIN_2K3	WIN_VISTAWIN_7WIN_8WIN_BLUEWIN_10r   r   r   r   r      s    r   c                  C   sF   G dd dt j} tt jjd}|  }t | |_|t | |jS )Nc                   @   sD   e Zd Zdejfdejfdejfdejfdejfdejd fgZdS )	z&getWindowsBuild.<locals>.OSVersionInfodwOSVersionInfoSizedwMajorVersiondwMinorVersiondwBuildNumberdwPlatformIdszCSDVersion   N)r   r   r   ctypesc_intc_char_fields_r   r   r   r   OSVersionInfo   s    r#   GetVersionExA)	r   	Structuregetattrr   r   sizeofr   byrefr   )r#   GetVersionExversionr   r   r   getWindowsBuild   s   r+   c                  C   sR   d} d}d}d}d}| |B |B |B }||B }t  tjjkr#||B dB S ||B dB S )Ni   i   i   i   i   i  i  )r+   r   r   value)DELETEREAD_CONTROL	WRITE_DACWRITE_OWNERSYNCHRONIZESTANDARD_RIGHTS_REQUIREDSTANDARD_RIGHTS_ALLr   r   r   get_all_access_flags%   s   r4                      @   r      i   i   i   i   c                
   @   sF   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g	Zd
S )MEMORY_BASIC_INFORMATION64BaseAddressAllocationBaseAllocationProtect__alignment1
RegionSizeStateProtectType__alignment2N)r   r   r   	ULONGLONGr   r"   r   r   r   r   r=   _   s    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gZdS )	MEMORY_BASIC_INFORMATIONr>   r?   r@   rB   rC   rD   rE   N)r   r   r   SIZE_Tr   r"   r   r   r   r   rH   u   s    rH   c                 C   s>   t jj}tttg|_t|_|| t||}|t	krt
 |S r   )r   r   OpenProcessr   BOOLr   HANDLEr	   boolNULLr   WinError)dwDesiredAccessbInheritHandledwProcessId_OpenProcesshProcessr   r   r   rJ      s   rJ   c                 C   sP   t jj}ttttg|_t|_t	 }t
t	}|| |t||}|dkr&t |S )Nr   )r   r   VirtualQueryExrL   LPVOIDPMEMORY_BASIC_INFORMATIONrI   r   r	   rH   r'   r(   r   rO   )rT   	lpAddress_VirtualQueryExlpBufferdwLengthsuccessr   r   r   rU      s   rU   c                 C   st   t jj}ttttttg|_t|_	t
d|}td}|| |||t|}|s0t tkr0t
 t|jd |j S )N    r   )r   r   ReadProcessMemoryrL   rV   rI   POINTERr   rM   r	   r   create_string_bufferr(   r   ERROR_PARTIAL_COPYrO   strrawr,   )rT   lpBaseAddressnSize_ReadProcessMemoryrZ   lpNumberOfBytesReadr\   r   r   r   r^      s   r^   ))minidump.utils.winapi.definesenumr   Enumr   r+   r4   PROCESS_ALL_ACCESSPROCESS_TERMINATEPROCESS_CREATE_THREADPROCESS_SET_SESSIONIDPROCESS_VM_OPERATIONPROCESS_VM_READPROCESS_VM_WRITEPROCESS_DUP_HANDLEPROCESS_CREATE_PROCESSPROCESS_SET_QUOTAPROCESS_SET_INFORMATIONPROCESS_QUERY_INFORMATIONPROCESS_SUSPEND_RESUME!PROCESS_QUERY_LIMITED_INFORMATIONTHREAD_TERMINATETHREAD_SUSPEND_RESUMETHREAD_ALERTTHREAD_GET_CONTEXTTHREAD_SET_CONTEXTTHREAD_SET_INFORMATIONTHREAD_QUERY_INFORMATIONTHREAD_SET_THREAD_TOKENTHREAD_IMPERSONATETHREAD_DIRECT_IMPERSONATIONTHREAD_SET_LIMITED_INFORMATION THREAD_QUERY_LIMITED_INFORMATIONr%   r=   rH   r_   rW   rJ   rU   r^   r   r   r   r   <module>   sL    

