o
    Žõ±jt  ã                   @   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                       s(   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/lsadecryptor/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                       s   e Zd Z‡ fdd„Z‡  ZS )ÚPKIWI_TS_PRIMARY_CREDENTIALc                    s   t ƒ  |t¡ d S ©N)r   r   ÚKIWI_TS_PRIMARY_CREDENTIAL©r   Úreaderr   r   r   r   D   s   z$PKIWI_TS_PRIMARY_CREDENTIAL.__init__)r*   r+   r,   r   r.   r   r   r   r   r/   C   s    r/   c                   @   ó   e Zd Zdd„ ZdS )r1   c                 C   s   t |ƒ| _t|ƒ| _d S r0   )r   Úunk0r   Úcredentialsr2   r   r   r   r   H   s   
z#KIWI_TS_PRIMARY_CREDENTIAL.__init__N©r*   r+   r,   r   r   r   r   r   r1   G   ó    r1   c                   @   r4   )r#   c                 C   óB   |  d¡| _t|ƒj| _| ¡  t|ƒ| _t|ƒ| _t	|ƒ| _
d S )Né@   ©Úreadr5   r   r   ÚLocallyUniqueIdentifierÚalignr   Úunk1Úunk2r/   Ú
pTsPrimaryr2   r   r   r   r   N   ó   

zKIWI_TS_CREDENTIAL.__init__Nr7   r   r   r   r   r#   M   r8   r#   c                   @   r4   )r   c                 C   r9   )Nél   r;   r2   r   r   r   r   W   rB   zKIWI_TS_CREDENTIAL_x64.__init__Nr7   r   r   r   r   r   V   r8   r   c                   @   r4   )r%   c                 C   r9   )NéD   r;   r2   r   r   r   r   `   rB   z KIWI_TS_CREDENTIAL_1607.__init__Nr7   r   r   r   r   r%   _   r8   r%   c                   @   r4   )r   c                 C   r9   )Nép   r;   r2   r   r   r   r   j   rB   z$KIWI_TS_CREDENTIAL_1607_x64.__init__Nr7   r   r   r   r   r   i   r8   r   N)Úpypykatz.commons.commonr   r   r   Úpypykatz.commons.win_datatypesr   r   r   r   Ú%pypykatz.lsadecryptor.package_commonsr	   r
   r/   r1   r#   r   r%   r   r   r   r   r   Ú<module>   s   6		
