o
    Žõ±j™  ã                   @   s¢   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G d
d„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZdS )é    )ÚKatzSystemArchitectureÚWindowsBuildÚWindowsMinBuild)ÚKIWI_GENERIC_PRIMARY_CREDENTIALÚPOINTERÚPVOIDÚLUID)ÚPackageTemplatec                       ó(   e Zd Z‡ fdd„Zedd„ ƒZ‡  ZS )ÚTspkgTemplatec                    s"   t ƒ  d¡ d | _d | _d | _d S )NÚTspkg)ÚsuperÚ__init__Ú	signatureÚ
avl_offsetÚcredential_struct©Úself©Ú	__class__© ú¢/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/alsadecryptor/packages/tspkg/templates.pyr      s   
zTspkgTemplate.__init__c                 C   s:  t ƒ }| jtjkr/d|_d|_| jtjj	k rt
|_nz| jtjj	kr%t|_notd| j| jf ƒ‚| jtjkr�| jtjj	k rFd|_d|_t|_nNtjj	| j  krUtjj	k ran n
d|_d|_t|_n3tjj	| j  krptjj	k r|n n
d|_d|_t|_n| jtjj	krŒd|_d|_t|_ntd	| j ƒ‚| d
|j¡ |S )Ns   Hƒì H�é   z=Could not identify template! Architecture: %s Buildnumber: %ss   ‹ÿU‹ìQV¾é   s   ‹ÿS»é   s   ‹ÿW¿zUnknown architecture! %sr   )r   Úarchitecturer   ÚX64r   r   Úbuildnumberr   ÚWIN_10_1607ÚvalueÚKIWI_TS_CREDENTIAL_x64r   ÚKIWI_TS_CREDENTIAL_1607_x64Ú	ExceptionÚX86r   ÚWIN_8ÚKIWI_TS_CREDENTIALÚWIN_BLUEÚKIWI_TS_CREDENTIAL_1607Úlog_template)ÚsysinfoÚtemplater   r   r   Úget_template   s<   ""€zTspkgTemplate.get_template)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr+   Ú__classcell__r   r   r   r   r      s    r   c                       r
   )ÚPKIWI_TS_PRIMARY_CREDENTIALc                    s   t ƒ  ¡  d S ©N)r   r   r   r   r   r   r   D   s   z$PKIWI_TS_PRIMARY_CREDENTIAL.__init__c                 Ã   s,   �t ƒ }|  ¡ |_|  ¡ I d H |_t|_|S r2   )r1   ÚtellÚlocationÚ	read_uintr   ÚKIWI_TS_PRIMARY_CREDENTIALÚ	finaltype)ÚreaderÚpr   r   r   ÚloadG   s   €
z PKIWI_TS_PRIMARY_CREDENTIAL.load)r,   r-   r.   r   r/   r:   r0   r   r   r   r   r1   C   s    r1   c                   @   ó    e Zd Zdd„ Zedd„ ƒZdS )r6   c                 C   s   d | _ d | _d S r2   )Úunk0Úcredentialsr   r   r   r   r   P   s   
z#KIWI_TS_PRIMARY_CREDENTIAL.__init__c                 Ã   s0   �t ƒ }t | ¡I d H |_t | ¡I d H |_|S r2   )r6   r   r:   r<   r   r=   ©r8   Úresr   r   r   r:   T   s
   €zKIWI_TS_PRIMARY_CREDENTIAL.loadN©r,   r-   r.   r   r/   r:   r   r   r   r   r6   O   s    r6   c                   @   r;   )r%   c                 C   ó"   d | _ d | _d | _d | _d | _d S r2   ©r<   ÚLocallyUniqueIdentifierÚunk1Úunk2Ú
pTsPrimaryr   r   r   r   r   ]   ó
   
zKIWI_TS_CREDENTIAL.__init__c                 Ã   ót   �t ƒ }|  d¡I d H |_t | ¡I d H |_|  ¡ I d H  t | ¡I d H |_	t | ¡I d H |_
t | ¡I d H |_|S )Né@   )r%   Úreadr<   r   Ú	loadvaluerC   Úalignr   r:   rD   rE   r1   rF   r>   r   r   r   r:   d   ó   €zKIWI_TS_CREDENTIAL.loadNr@   r   r   r   r   r%   \   ó    r%   c                   @   r;   )r    c                 C   rA   r2   rB   r   r   r   r   r   p   rG   zKIWI_TS_CREDENTIAL_x64.__init__c                 Ã   rH   )Nél   )r    rJ   r<   r   rK   rC   rL   r   r:   rD   rE   r1   rF   r>   r   r   r   r:   w   rM   zKIWI_TS_CREDENTIAL_x64.loadNr@   r   r   r   r   r    o   rN   r    c                   @   r;   )r'   c                 C   rA   r2   rB   r   r   r   r   r   ƒ   rG   z KIWI_TS_CREDENTIAL_1607.__init__c                 Ã   rH   )NéD   )r'   rJ   r<   r   rK   rC   rL   r   r:   rD   rE   r1   rF   r>   r   r   r   r:   Š   rM   zKIWI_TS_CREDENTIAL_1607.loadNr@   r   r   r   r   r'   ‚   rN   r'   c                   @   r;   )r!   c                 C   rA   r2   rB   r   r   r   r   r   —   rG   z$KIWI_TS_CREDENTIAL_1607_x64.__init__c                 Ã   rH   )Nép   )r!   rJ   r<   r   rK   rC   rL   r   r:   rD   rE   r1   rF   r>   r   r   r   r:   ž   rM   z KIWI_TS_CREDENTIAL_1607_x64.loadNr@   r   r   r   r   r!   –   rN   r!   N)Úpypykatz.commons.commonr   r   r   Ú$pypykatz.alsadecryptor.win_datatypesr   r   r   r   Ú&pypykatz.alsadecryptor.package_commonsr	   r   r1   r6   r%   r    r'   r!   r   r   r   r   Ú<module>   s   6