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    

