o
    �õ±ja>  ã                   @   s|  d dl Z d dlZd dlZd dlT i 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$“i d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“¥dGdHdIdJdKœ¥ZG dLdM„ dMejƒZG dNdO„ dOejƒZG dPdQ„ dQejƒZG dRdS„ dSejƒZ	G dTdU„ dUej
ƒZG dVdW„ dWƒZG dXdY„ dYƒZdS )Zé    N)Ú*ég   zWindows 3.1éf   zWindows 3.1 - Spartai  zWindiws NT 3.1i,  zWindows NT 3.11 - Snowballé™   zWindows 3.2i'  zWindows NT 3.5i!  zWindows NT 3.51ie  zWindows NT 4.0i¶  z
Windows 95iÎ  z
Windows 98i®  zWindows 98 SEi“  úWindows 2000i¸  z
Windows MEi(
  ú
Windows XPiŒ
  z&Windows XP - Media Center Edition 2005i–
  z6Windows XP - Media Center Edition 2005 Update Rollup 2iÎ  z-Windows XP x64 / Server 2003 / Server 2003 R2ir  zWindows Vista / Server 2008i±  zWindows 7 / Server 2008 R2ið#  zWindows 8 / Server 2012i€%  zWindows 8.1 / Server 2012 R2i (  zWindows 10 - 1507iZ)  zWindows 10 - 1511i98  zWindows 10 - 1607 / Server 2016i×:  zWindows 10 - 1703i«?  zWindows 10 - 1709 / Server 2016iîB  zWindows 10 - 1803 / Server 2016icE  zWindows 10 - 1809 / Server 2019iºG  zWindows 10 - 1903 / Server 2019i»G  zWindows 10 - 1909 / Server 2019iaJ  zWindows 10 - 2004 / Server 2019ibJ  zWindows 10 - 20H2 / Server 2019icJ  zWindows 10 - 21H1idJ  zWindows 10 - 21H2zWindows 10 - 22H2zWindows 11 - 21H2zWindows Server 2022zWindows 11 - 22H2)ieJ  iðU  i|O  i]X  c                   @   s$   e Zd ZdZdZdZdZdZdZdS )ÚPROCESSOR_ARCHITECTUREé	   é   é   r   i€  iÿÿ  N)	Ú__name__Ú
__module__Ú__qualname__ÚAMD64ÚARMÚIA64ÚINTELÚAARCH64ÚUNKNOWN© r   r   ú”/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/streams/SystemInfoStream.pyr   7   s    r   c                   @   ó   e Zd ZdZdZdZdZdS )ÚPROCESSOR_LEVELé   é   r
   r   N)r   r   r   ÚINTEL_80386ÚINTEL_80486ÚINTEL_PENTIUMÚINTEL_PENTIUM_PROr   r   r   r   r   ?   ó
    r   c                   @   r   )ÚPRODUCT_TYPEr   é   é   r   N)r   r   r   ÚVER_UNIDENTIFIED_PRODUCTÚVER_NT_WORKSTATIONÚVER_NT_DOMAIN_CONTROLLERÚVER_NT_SERVERr   r   r   r   r    E   r   r    c                   @   ó<   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S )ÚPLATFORM_IDr   r!   r"   i�  i�  i‚  i‚  i‚  i‚  i‚  i‚  l   ÿÿ N)r   r   r   ÚVER_PLATFORM_WIN32sÚVER_PLATFORM_WIN32_WINDOWSÚVER_PLATFORM_WIN32_NTÚVER_PLATFORM_CRASHPAD_MACÚVER_PLATFORM_CRASHPAD_IOSÚVER_PLATFORM_CRASHPAD_LINUXÚVER_PLATFORM_CRASHPAD_SOLARISÚVER_PLATFORM_CRASHPAD_ANDROIDÚVER_PLATFORM_CRASHPAD_PS3ÚVER_PLATFORM_CRASHPAD_NACLÚVER_PLATFORM_CRASHPAD_FUSCHIAÚVER_PLATFORM_CRASHPAD_UNKNOWNr   r   r   r   r(   L   s    r(   c                   @   r'   )Ú
SUITE_MASKr   i   i @  é€   r"   é@   i   é   r!   é    i    é   N)r   r   r   ÚVER_SUITE_BACKOFFICEÚVER_SUITE_BLADEÚVER_SUITE_COMPUTE_SERVERÚVER_SUITE_DATACENTERÚVER_SUITE_ENTERPRISEÚVER_SUITE_EMBEDDEDNTÚVER_SUITE_PERSONALÚVER_SUITE_SINGLEUSERTSÚVER_SUITE_SMALLBUSINESSÚ"VER_SUITE_SMALLBUSINESS_RESTRICTEDÚVER_SUITE_STORAGE_SERVERÚVER_SUITE_TERMINALr   r   r   r   r5   ]   s    r5   c                   @   s:   e Zd Zdd„ Zdd„ Zddd„Zedd	„ ƒZd
d„ ZdS )ÚMINIDUMP_SYSTEM_INFOc                 C   s|   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d| _d | _d| _g | _d | _d | _d | _g | _d | _d S )Nr   )ÚProcessorArchitectureÚProcessorLevelÚProcessorRevisionÚ	Reserved0ÚNumberOfProcessorsÚProductTypeÚMajorVersionÚMinorVersionÚBuildNumberÚ
PlatformIdÚCSDVersionRvaÚ	Reserved1Ú	SuiteMaskÚ	Reserved2ÚVendorIdÚVersionInformationÚFeatureInformationÚAMDExtendedCpuFeaturesÚProcessorFeaturesÚ
CSDVersion©Úselfr   r   r   Ú__init__n   s(   
zMINIDUMP_SYSTEM_INFO.__init__c                 C   s   t |  ¡ ƒS ©N)ÚlenÚto_bytesr\   r   r   r   Úget_size†   s   zMINIDUMP_SYSTEM_INFO.get_sizeNc                 C   s   | j jjdddd�}|| jjdddd�7 }|| jjdddd�7 }|| jjdddd�7 }|| jjjdddd�7 }|| jjdddd�7 }|| jjdddd�7 }|| j	jdddd�7 }|| j
jdddd�7 }|d u rs|| jjdddd�7 }n.| ¡ }| d¡ | ¡ | _| | j d¡d	 ¡ | ¡ }| |d
¡ || jjdddd�7 }|| jjdddd�7 }|| jjdddd�7 }| j tjkrò| jD ]}||jdddd�7 }qÀ|| jjjdddd�7 }|| jjjdddd�7 }|| jjjdddd�7 }n| jD ]}||jdddd�7 }qõ|d u �r	|S | |¡ d S )Nr"   ÚlittleF©Ú	byteorderÚsignedr!   r   sd                                                                                                       Úasciió    r   é   )rH   Úvaluera   rI   rJ   rL   rM   rN   rO   rP   rQ   rR   ÚtellÚwriter[   ÚencodeÚseekrT   rU   r   r   rV   rW   rX   rY   rZ   )r]   Údata_bufferÚtÚposÚpos_endÚvidÚpfr   r   r   ra   Š   s>   




zMINIDUMP_SYSTEM_INFO.to_bytesc                 C   sê  t ƒ }ttj|  d¡ddd�ƒ|_tj|  d¡ddd�|_tj|  d¡ddd�|_tj|  d¡ddd�|_t	tj|  d¡ddd�ƒ|_
tj|  d¡ddd�|_tj|  d¡ddd�|_tj|  d¡ddd�|_ttj|  d¡ddd�ƒ|_tj|  d¡ddd�|_ttj|  d¡ddd�ƒ|_tj|  d¡ddd�|_|jtjkrÝtdƒD ]}|j tj|  d¡ddd�¡ q¥tj|  d¡ddd�|_tj|  d¡ddd�|_tj|  d¡ddd�|_|S tdƒD ]}|j tj|  d¡ddd�¡ qá|S )	Nr"   rc   Frd   r!   r   r   ri   )rG   r   ÚintÚ
from_bytesÚreadrH   rI   rJ   rL   r    rM   rN   rO   rP   r(   rQ   rR   r5   rT   rU   r   ÚrangerV   ÚappendrW   rX   rY   rZ   )ÚbuffÚmsiÚ_r   r   r   Úparse±   s.    ý zMINIDUMP_SYSTEM_INFO.parsec                 C   s.   d}| j D ]}|d|t| j | ƒf 7 }q|S )NÚ z	%s : %s
)Ú__dict__Ústr)r]   rp   Úkr   r   r   Ú__str__Ï   s   
zMINIDUMP_SYSTEM_INFO.__str__r_   )	r   r   r   r^   rb   ra   Ústaticmethodr}   r‚   r   r   r   r   rG   m   s    
'
rG   c                   @   s<   e Zd Zdd„ Zdd„ Zedd„ ƒZedd„ ƒZd	d
„ ZdS )ÚMinidumpSystemInfoc                 C   sj   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d | _d | _d | _d | _d S r_   )rH   rI   rJ   rL   rM   rN   rO   rP   rQ   r[   rT   rV   rW   rX   rY   rZ   ÚOperatingSystemr\   r   r   r   r^   Ö   s"   
zMinidumpSystemInfo.__init__c                 C   s  | j tv rt| j  | _d S | jdkr"| jdkr"| jtjkr"d| _d S | jdkr8| jdkr8| j| jjkr8d| _d S | jdkrN| jdkrN| j| jjkrNd| _d S | jdkrd| jdkrd| j| jjkrdd| _d S | jdkrz| jd	krz| j| jjkrzd
| _d S | jdkr�| jd	kr�| j| jjkr�d| _d S | jdkr¦| jdkr¦| j| jjkr¦d| _d S | jdkr¼| jdkr¼| j| jjkr¼d| _d S | jdkrÒ| jdkrÒ| j| jjkrÒd| _d S | jdkrè| jdkrè| j| jjkrèd| _d S | jdkr÷| jdkr÷d| _d S | jdk�r| jdk�r
d| _d S d S d S )Né
   r   z
Windows 10z%Windows Server 2016 Technical Previewr   r   zWindows 8.1zWindows Server 2012 R2r"   z	Windows 8zWindows Server 2012r!   z	Windows 7zWindows Server 2008 R2zWindows VistazWindows Server 2008r
   r   r   )rP   ÚMINIDUMP_WIN_BUILDNO_TO_VERSIONr…   rN   rO   rM   r    r$   r\   r   r   r   Úguess_osë   s6   
 
"
"
"
"
"
"
"
"
"


ÿzMinidumpSystemInfo.guess_osc                 C   s  t ƒ }| | jj¡ t | | jj¡¡}t 	|¡}|j
|_
|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_t |j|¡|_|j|_|j|_|j|_|j|_|j|_|j|_z| ¡  W |S  tyŠ } zt  dd|j|j|j|jf ¡ d |_!W Y d }~|S d }~ww ©Nr!   zSFailed to guess OS! MajorVersion: %s MinorVersion %s BuildNumber %s ProductType: %s)"r„   rn   ÚLocationÚRvaÚioÚBytesIOrw   ÚDataSizerG   r}   rH   rI   rJ   rL   rM   rN   rO   rP   rQ   ÚMINIDUMP_STRINGÚget_from_rvarR   r[   rT   rV   rW   rX   rY   rZ   rˆ   Ú	ExceptionÚloggingÚlogr…   )Údirrz   rp   ÚchunkÚsiÚer   r   r   r}     s:   

ý €ýzMinidumpSystemInfo.parsec                 Ã   s.  �t ƒ }| | jj¡I d H  | | jj¡I d H }t |¡}t 	|¡}|j
|_
|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_t |j|¡I d H |_|j|_|j|_|j|_|j|_|j|_|j|_z| ¡  W |S  ty– } zt  dd|j|j|j|jf ¡ d |_!W Y d }~|S d }~ww r‰   )"r„   rn   rŠ   r‹   rw   rŽ   rŒ   r�   rG   r}   rH   rI   rJ   rL   rM   rN   rO   rP   rQ   r�   Úaget_from_rvarR   r[   rT   rV   rW   rX   rY   rZ   rˆ   r‘   r’   r“   r…   )r”   rz   rp   Ú
chunk_datar•   r–   r—   r   r   r   Úaparse)  s>   €


ý €ýzMinidumpSystemInfo.aparsec                 C   s  d}|d| j  7 }|d| j 7 }|d| j 7 }|dt| jƒ 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j	 7 }|d| j
 7 }|d| j 7 }|d| j 7 }|dd dd„ | jD ƒ¡ 7 }|d| j 7 }|d| j 7 }|d| j 7 }|dd dd„ | jD ƒ¡ 7 }|S )Nz== System Info ==
zProcessorArchitecture %s
zOperatingSystem -guess- %s
zProcessorLevel %s
zProcessorRevision %s
zNumberOfProcessors %s
zProductType %s
zMajorVersion %s
zMinorVersion %s
zBuildNumber %s
zPlatformId %s
zCSDVersion: %s
zSuiteMask %s
zVendorId %s
ú c                 S   ó   g | ]}t |ƒ‘qS r   ©Úhex©Ú.0Úxr   r   r   Ú
<listcomp>V  ó    z.MinidumpSystemInfo.__str__.<locals>.<listcomp>zVersionInformation %s
zFeatureInformation %s
zAMDExtendedCpuFeatures %s
zProcessorFeatures %s
c                 S   rœ   r   r�   rŸ   r   r   r   r¢   Z  r£   )rH   r…   rI   rž   rJ   rL   rM   rN   rO   rP   rQ   r[   rT   ÚjoinrV   rW   rX   rY   rZ   )r]   rp   r   r   r   r‚   H  s&   zMinidumpSystemInfo.__str__N)	r   r   r   r^   rˆ   rƒ   r}   rš   r‚   r   r   r   r   r„   Õ   s    !

r„   )rŒ   Úenumr’   Úminidump.common_structsr‡   ÚEnumr   r   r    r(   ÚIntFlagr5   rG   r„   r   r   r   r   Ú<module>   sª   ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ú+h