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rd|_d|_t|_ntd	| j |d
|j |S )Ns   H H   z=Could not identify template! Architecture: %s Buildnumber: %ss   UQV   s   S   s   Wz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   )Nl   )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   )ND   )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   )Np   )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