o
    Žõ±j=  ã                   @   s”   d dl Z d dlmZ d dlmZmZ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G dd„ deƒZG dd„ dƒZdS )é    N)ÚKatzSystemArchitecture)ÚPOINTERÚULONGÚKIWI_GENERIC_PRIMARY_CREDENTIALÚPVOIDÚDWORDÚLUIDÚLSA_UNICODE_STRING)ÚPackageTemplatec                       ó(   e Zd Z‡ fdd„Zedd„ ƒZ‡  ZS )ÚLiveSspTemplatec                    s"   t ƒ  d¡ d | _d | _d | _d S )NÚLiveSsp)Ú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/livessp/templates.pyr      s   
zLiveSspTemplate.__init__c                 C   s`   t ƒ }t|_| d|j¡ | jtjkrd|_d|_|S | jtj	kr)d|_d|_|S t
d| j ƒ‚)Nr   s   t%‹iùÿÿÿs   ‹9Q$uiøÿÿÿzUnknown architecture! %s)r   ÚPKIWI_LIVESSP_LIST_ENTRYr   Úlog_templateÚarchitecturer   ÚX64r   r   ÚX86Ú	Exception)ÚsysinfoÚtemplater   r   r   Úget_template   s   øýzLiveSspTemplate.get_template)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr!   Ú__classcell__r   r   r   r   r      s    r   c                       r   )Ú PKIWI_LIVESSP_PRIMARY_CREDENTIALc                    ó   t ƒ  ¡  d S ©N©r   r   r   r   r   r   r   +   ó   z)PKIWI_LIVESSP_PRIMARY_CREDENTIAL.__init__c                 Ã   ó,   �t ƒ }|  ¡ |_|  ¡ I d H |_t|_|S r)   )r'   ÚtellÚlocationÚ	read_uintÚvalueÚKIWI_LIVESSP_PRIMARY_CREDENTIALÚ	finaltype©ÚreaderÚpr   r   r   Úload.   ó   €
z%PKIWI_LIVESSP_PRIMARY_CREDENTIAL.load©r"   r#   r$   r   r%   r6   r&   r   r   r   r   r'   *   ó    r'   c                   @   ó    e Zd Zdd„ Zedd„ ƒZdS )r1   c                 C   s   d | _ d | _d | _d S r)   )ÚisSuppÚunk0Úcredentialsr   r   r   r   r   7   s   
z(KIWI_LIVESSP_PRIMARY_CREDENTIAL.__init__c                 Ã   sB   �t ƒ }t | ¡I d H |_t | ¡I d H |_t | ¡I d H |_|S r)   )r1   r   Ú	loadvaluer;   r<   r   r6   r=   ©r4   Úresr   r   r   r6   <   s   €z$KIWI_LIVESSP_PRIMARY_CREDENTIAL.loadN©r"   r#   r$   r   r%   r6   r   r   r   r   r1   6   s    r1   c                       r   )r   c                    r(   r)   r*   r   r   r   r   r   F   r+   z!PKIWI_LIVESSP_LIST_ENTRY.__init__c                 Ã   r,   r)   )r   r-   r.   r/   r0   ÚKIWI_LIVESSP_LIST_ENTRYr2   r3   r   r   r   r6   I   r7   zPKIWI_LIVESSP_LIST_ENTRY.loadr8   r   r   r   r   r   E   r9   r   c                   @   r:   )rB   c                 C   sR   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d S r)   )ÚFlinkÚBlinkr<   Úunk1Úunk2Úunk3Úunk4Úunk5Úunk6ÚLocallyUniqueIdentifierÚUserNameÚunk7Ú	suppCredsr   r   r   r   r   R   s   
z KIWI_LIVESSP_LIST_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 |_	t
 | ¡I d H |_t
 | ¡I d H |_t | ¡I d H |_t | ¡I d H |_t | ¡I d H |_t | ¡I d H |_t | ¡I d H |_|S r)   )rB   r   r6   rC   rD   r   r<   rE   rF   rG   r   r>   rH   rI   rJ   r   rK   r	   rL   rM   r'   rN   r?   r   r   r   r6   a   s    €zKIWI_LIVESSP_LIST_ENTRY.loadNrA   r   r   r   r   rB   Q   s    rB   )ÚioÚpypykatz.commons.commonr   Ú$pypykatz.alsadecryptor.win_datatypesr   r   r   r   r   r   r	   Ú&pypykatz.alsadecryptor.package_commonsr
   r   r'   r1   r   rB   r   r   r   r   Ú<module>   s   $