
    5i:                     D    d dl mZ d dlmZmZ d dlZ G d d          ZdS )    )MINIDUMP_TYPE)MinidumpHeaderFlagsException(MinidumpHeaderSignatureMismatchExceptionNc                   L    e Zd Zd Zd Zed             Zed             Zd ZdS )MinidumpHeaderc                     d| _         d | _        d | _        d | _        d | _        d| _        d| _        d| _        d | _        d S )NPMDMr   		SignatureVersionImplementationVersionNumberOfStreamsStreamDirectoryRvaCheckSumReservedTimeDateStampFlags)selfs    E/home/kali/Ninja/venv/lib/python3.11/site-packages/minidump/header.py__init__zMinidumpHeader.__init__   sI    $.$,#'$!$ $$$-$-$!$***    c                 D   | j                             d          }|| j                            ddd          z  }|| j                            ddd          z  }|| j                            ddd          z  }|| j                            ddd          z  }|| j                            ddd          z  }|| j                            ddd          z  }|| j	                            ddd          z  }|| j
        j                            ddd          z  }|S )Nascii   littleF	byteordersigned   )r   encoder   to_bytesr   r   r   r   r   r   r   valuer   ts     r   r!   zMinidumpHeader.to_bytes   s+   
nG$$!t|QHuEEE!t!**1(U*SSS!t$$QHu$MMM!t''x%'PPP!t}aXFFF!t}aXFFF!t""1(U"KKK!tz  5 III!	
(r   c                 z   t                      }|                     d                                          d d d         |_        |j        dk    rt	          |j                  t
                              |                     d          dd          |_        t
                              |                     d          dd          |_        t
                              |                     d          dd          |_	        t
                              |                     d          dd          |_
        t
                              |                     d          dd          |_        t
                              |                     d          dd          |_        t
                              |                     d          dd          |_        	 t          t
                              |                     d          dd                    |_        n!# t           $ r}t#          d          d }~ww xY w|S )	Nr   r	   r   r   Fr   zCould not parse header flags!)r   readdecoder   r   int
from_bytesr   r   r   r   r   r   r   r   r   	Exceptionr   )buffmhes      r   parsezMinidumpHeader.parse   s   "1$$&&ttt,",\V	1",	?	??~~diill5~QQ"* ^^DIIaLLhY^^__"~~diillSX~YY"..18V[.\\"tyy||ERR"+tyy||ERR"+^^DIIaLLhQV^WW"GCNN499Q<<XX]N^^__288	 G G G	%&E	F	FFG 
)s   AH 
H8$H33H8c                    K   |                      d           d {V }t          j        |          }t                              |          S )N    )r'   ioBytesIOr   r/   )abuffadatar,   s      r   aparsezMinidumpHeader.aparse3   sJ      

2





%	E		$			d	#	##r   c                     d}|d| j         z  z  }|d| j        z  z  }|d| j        z  z  }|d| j        z  z  }|d| j        z  z  }|d| j        z  z  }|d| j        z  z  }|d	| j        z  z  }|d
| j        z  z  }|S )Nz== MinidumpHeader ==
zSignature: %s
zVersion: %s
zImplementationVersion: %s
zNumberOfStreams: %s
zStreamDirectoryRva: %s
zCheckSum: %s
zReserved: %s
zTimeDateStamp: %s
z
Flags: %s
r
   r#   s     r   __str__zMinidumpHeader.__str__9   s    !$.((!o$$!#d&@@@! 444! 4#:::!&&!&&!d000!mdj  !	
(r   N)	__name__
__module____qualname__r   r!   staticmethodr/   r6   r8    r   r   r   r      sw        	" 	" 	"     ,& $ $ ,$
    r   r   )minidump.constantsr   minidump.exceptionsr   r   r2   r   r=   r   r   <module>r@      sj    , , , , , , f f f f f f f f 				> > > > > > > > > >r   