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$CrdAHGx   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   /