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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                       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   )Nl   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   )ND   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   )Np   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		
