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 rn nd|_d	|_|S tjj
| j  krtjj
k rn nd
|_d|_|S | jtjj
krd|_d|_|S td| j| jf | jtjkr| jtjj
k rd|_d|_|S tjj
| j  krtjj
k rn nd|_d|_|S | jtjj
krd|_d|_|S td| j )Nr   s   M;Is   I;Hs   3 H   s   LHGI9Cs   H9His   HNH9His   HOHx   zECould not identify template! Architecture: %s sysinfo.buildnumber: %ss   3@s
     iz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