o
    Žõ±jH  ã                   @   sn   d dl mZmZmZ d dlmZmZmZmZm	Z	 d dl
mZ G dd„ deƒZG dd„ deƒZG dd	„ d	ƒZd
S )é    )ÚWindowsMinBuildÚKatzSystemArchitectureÚWindowsBuild)ÚLUIDÚGUIDÚPOINTERÚFILETIMEÚULONG)ÚPackageTemplatec                       ó(   e Zd Z‡ fdd„Zedd„ ƒZ‡  ZS )ÚDpapiTemplatec                    s"   t ƒ  d¡ d | _d | _d | _d S )NÚDpapi)ÚsuperÚ__init__Ú	signatureÚfirst_entry_offsetÚ
list_entry©Úself©Ú	__class__© ú¢/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/alsadecryptor/packages/dpapi/templates.pyr      s   
zDpapiTemplate.__init__c                 C   sø  t ƒ }t|_| d|j¡ | jtjkr¸| jtj	j
k r"d|_d|_|S tj	j
| j  kr1tjj
k r;n nd|_d|_|S tjj
| j  krJtjj
k rTn nd|_d|_|S tjj
| j  krctjj
k rmn nd|_d|_|S tjj
| j  kr|tjj
k r†n nd|_d	|_|S tjj
| j  kr•tjj
k rŸn nd
|_d|_|S | jtjj
kr®d|_d|_|S td| j| jf ƒ‚| jtjkrõ| jtjj
k rÍd|_d|_|S tjj
| j  krÜtjj
k ræn nd|_d|_|S | jtjj
kród|_d|_|S td| j ƒ‚)Nr   s   M;îI‹ý…éüÿÿÿs   I;ïH‹ý„s   3Àë H�é   s   L‰H‰GI9C…s   H9H…iöÿÿÿs   H‰NH9Hiùÿÿÿs   H‰OH‰xé   zECould not identify template! Architecture: %s sysinfo.buildnumber: %ss   3À@£s
   ‹ð�þÌ  „iðÿÿÿzUnknown architecture! %s)r   ÚPKIWI_MASTERKEY_CACHE_ENTRYr   Úlog_templateÚarchitecturer   ÚX64Úbuildnumberr   Ú	WIN_VISTAÚvaluer   r   ÚWIN_7ÚWIN_8ÚWIN_BLUEr   ÚWIN_10_1507ÚWIN_10_1607Ú	ExceptionÚX86)ÚsysinfoÚtemplater   r   r   Úget_template   s^   0"Ò,"Ö("Ú$"Þ "âæì"ô
øýzDpapiTemplate.get_template)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr,   Ú__classcell__r   r   r   r   r      s    r   c                       r   )r   c                    s   t ƒ  ¡  d S ©N)r   r   r   r   r   r   r   P   s   z$PKIWI_MASTERKEY_CACHE_ENTRY.__init__c                 Ã   s,   �t ƒ }|  ¡ |_|  ¡ I d H |_t|_|S r2   )r   ÚtellÚlocationÚ	read_uintr"   ÚKIWI_MASTERKEY_CACHE_ENTRYÚ	finaltype)ÚreaderÚpr   r   r   ÚloadS   s   €
z PKIWI_MASTERKEY_CACHE_ENTRY.load)r-   r.   r/   r   r0   r:   r1   r   r   r   r   r   O   s    r   c                   @   s    e Zd Zdd„ Zedd„ ƒZdS )r6   c                 C   s.   d | _ d | _d | _d | _d | _d | _d | _d S r2   )ÚFlinkÚBlinkÚLogonIdÚKeyUidÚ
insertTimeÚkeySizeÚkeyr   r   r   r   r   ]   s   
z#KIWI_MASTERKEY_CACHE_ENTRY.__init__c                 Ã   s    �t ƒ }t | ¡I d H |_t | ¡I d H |_t | ¡I d H |_t | ¡I d H |_	t
 | ¡I d H |_t | ¡I d H |_|jdk rK|  |j¡I d H |_|S d |_|S )Ni   )r6   r   r:   r;   r<   r   Ú	loadvaluer=   r   r>   r   r?   r	   r@   ÚreadrA   )r8   Úresr   r   r   r:   f   s   €
ÿzKIWI_MASTERKEY_CACHE_ENTRY.loadN)r-   r.   r/   r   r0   r:   r   r   r   r   r6   \   s    	r6   N)Úpypykatz.commons.commonr   r   r   Ú$pypykatz.alsadecryptor.win_datatypesr   r   r   r   r	   Ú&pypykatz.alsadecryptor.package_commonsr
   r   r   r6   r   r   r   r   Ú<module>   s   C