o
    Žõ±j>  ã                   @   sj   d dl mZmZmZ d dl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 )é    )ÚKatzSystemArchitectureÚWindowsMinBuildÚWindowsBuild)ÚULONGÚLUIDÚKIWI_GENERIC_PRIMARY_CREDENTIALÚPOINTER)ÚPackageTemplatec                       ó(   e Zd Z‡ fdd„Zedd„ ƒZ‡  ZS )ÚSspTemplatec                    s"   t ƒ  d¡ d | _d | _d | _d S )NÚSsp)Ú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/ssp/templates.pyr      s   
zSspTemplate.__init__c                 C   s  t ƒ }t|_| d|j¡ | jtjkrm| 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 | jtjj
krcd|_d|_|S td	| j| jf ƒ‚| jtjkr{d
|_d|_|S td| j ƒ‚)Nr   s	   ÇC$CrdAÿé   s   ÇG$CrdAH‰Gxÿé   s   $CrdAÿé   s   $CrdAHÿzECould not identify template! Architecture: %s sysinfo.buildnumber: %ss   CrdAÿé   zUnknown architecture! %s)r   ÚPKIWI_SSP_CREDENTIAL_LIST_ENTRYr   Úlog_templateÚarchitecturer   ÚX64Úbuildnumberr   Ú	WIN_VISTAÚvaluer   r   r   ÚWIN_10_1507ÚWIN_11_2022Ú	ExceptionÚX86)ÚsysinfoÚtemplater   r   r   Úget_template   s4   "æ"êîôýzSspTemplate.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   <   s   z(PKIWI_SSP_CREDENTIAL_LIST_ENTRY.__init__c                 Ã   s,   �t ƒ }|  ¡ |_|  ¡ I d H |_t|_|S r/   )r   ÚtellÚlocationÚ	read_uintr"   ÚKIWI_SSP_CREDENTIAL_LIST_ENTRYÚ	finaltype)ÚreaderÚpr   r   r   Úload?   s   €
z$PKIWI_SSP_CREDENTIAL_LIST_ENTRY.load)r*   r+   r,   r   r-   r7   r.   r   r   r   r   r   ;   s    r   c                   @   s    e Zd Zdd„ Zedd„ ƒZdS )r3   c                 C   s:   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d S r/   )	ÚFlinkÚBlinkÚ
ReferencesÚCredentialReferencesÚLogonIdÚunk0Úunk1Úunk2Úcredentialsr   r   r   r   r   H   s   
z'KIWI_SSP_CREDENTIAL_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 |_|  ¡ I d H  t | ¡I d H |_|S r/   )r3   r   r7   r8   r9   r   Ú	loadvaluer:   r;   r   r<   r=   r>   r?   Úalignr   r@   )r5   Úresr   r   r   r7   S   s   €z#KIWI_SSP_CREDENTIAL_LIST_ENTRY.loadN)r*   r+   r,   r   r-   r7   r   r   r   r   r3   G   s    r3   N)Úpypykatz.commons.commonr   r   r   Ú$pypykatz.alsadecryptor.win_datatypesr   r   r   r   Ú&pypykatz.alsadecryptor.package_commonsr	   r   r   r3   r   r   r   r   Ú<module>   s   /