o
    Žõ±jF%  ã                   @   sT  d dl Z d dlmZ d dlmZmZ d dlmZmZ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e
ƒZG dd„ dƒZG dd„ de
ƒZG dd„ dƒZG dd„ de
ƒZG dd„ dƒZG dd„ de
ƒZG dd„ dƒZG dd„ de
ƒZG dd„ dƒZG d d!„ d!e
ƒZG d"d#„ d#ƒZG d$d%„ d%e
ƒZG d&d'„ d'ƒZdS )(é    N)Úhexdump)ÚKatzSystemArchitectureÚWindowsMinBuild)ÚLSA_UNICODE_STRINGÚULONGÚPVOIDÚPWSTRÚPOINTERÚ
LIST_ENTRY)ÚPackageTemplatec                       s(   e Zd Z‡ fdd„Zedd„ ƒZ‡  ZS )ÚCredmanTemplatec                    s"   t ƒ  d¡ d | _d | _d | _d S )NÚCredman)Ú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/lsadecryptor/packages/credman/templates.pyr      s   
zCredmanTemplate.__init__c                 C   s²   t ƒ }| jtjkr-| jtjjk rt|_	n<tjj| j  kr#tj
jk r)n nt|_	n't|_	n#| jtjjk r8t|_	ntjj| j  krGtj
jk rMn nt|_	nt|_	| d|j	¡ |S )Nr   )r   Úarchitecturer   ÚX64Úbuildnumberr   Ú	WIN_VISTAÚvalueÚKIWI_CREDMAN_LIST_ENTRY_5r   ÚWIN_7ÚKIWI_CREDMAN_LIST_ENTRY_60ÚKIWI_CREDMAN_LIST_ENTRYÚKIWI_CREDMAN_LIST_ENTRY_5_X86ÚKIWI_CREDMAN_LIST_ENTRY_60_X86ÚKIWI_CREDMAN_LIST_ENTRY_X86Úlog_template)ÚsysinfoÚtemplater   r   r   Úget_template   s   ""zCredmanTemplate.get_template)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr'   Ú__classcell__r   r   r   r   r      s    r   c                       ó   e Zd Z‡ fdd„Z‡  ZS )ÚPKIWI_CREDMAN_LIST_ENTRY_5_X86c                    ó   t ƒ  |t¡ d S ©N)r   r   r!   ©r   Úreaderr   r   r   r   ,   ó   z'PKIWI_CREDMAN_LIST_ENTRY_5_X86.__init__©r(   r)   r*   r   r,   r   r   r   r   r.   +   ó    r.   c                   @   ó   e Zd Zdd„ ZdS )r!   c                 C   sà   |  | ¡ d ¡ | ¡  t|ƒj| _| ¡  t|ƒ| _t|ƒj| _t|ƒj| _	t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _t|ƒ| _t|ƒ| _t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _d S ©Né    ©ÚmoveÚtellÚalignr   r   ÚcbEncPasswordr   ÚencPasswordÚunk0Úunk1r   Úunk2Úunk3ÚUserNameÚ
cbUserNameÚPKIWI_CREDMAN_LIST_ENTRY_5ÚFlinkÚBlinkr   Úserver1Úunk6Úunk7ÚuserÚunk8Úserver2r1   r   r   r   r   0   s*   









z&KIWI_CREDMAN_LIST_ENTRY_5_X86.__init__N©r(   r)   r*   r   r   r   r   r   r!   /   ó    r!   c                       r-   )ÚPKIWI_CREDMAN_LIST_ENTRY_60_X86c                    r/   r0   )r   r   r"   r1   r   r   r   r   K   r3   z(PKIWI_CREDMAN_LIST_ENTRY_60_X86.__init__r4   r   r   r   r   rP   J   r5   rP   c                   @   r6   )r"   c                 C   s  |  | ¡ d ¡ | ¡  t|ƒj| _| ¡  t|ƒ| _t|ƒj| _t|ƒj| _	t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _t|ƒ| _t|ƒ| _t
|ƒ| _t|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _d S r7   ©r:   r;   r<   r   r   r=   r   r>   r?   r@   r   rA   rB   rC   rD   ÚPKIWI_CREDMAN_LIST_ENTRY_60rF   rG   r   ÚtypeÚunk5rH   rI   rJ   rL   Úunk9Úunk10rK   Úunk11rM   r1   r   r   r   r   O   s4   














z'KIWI_CREDMAN_LIST_ENTRY_60_X86.__init__NrN   r   r   r   r   r"   N   rO   r"   c                       r-   )ÚPKIWI_CREDMAN_LIST_ENTRY_X86c                    r/   r0   )r   r   r#   r1   r   r   r   r   s   r3   z%PKIWI_CREDMAN_LIST_ENTRY_X86.__init__r4   r   r   r   r   rX   r   r5   rX   c                   @   r6   )r#   c                 C   ó  |  | ¡ d ¡ | ¡  t|ƒj| _| ¡  t|ƒ| _t|ƒj| _t|ƒj| _	t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _t|ƒ| _t|ƒ| _t|ƒ| _t
|ƒ| _t|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _d S r7   © r:   r;   r<   r   r   r=   r   r>   r?   r@   r   rA   rB   rC   rD   ÚPKIWI_CREDMAN_LIST_ENTRYrF   rG   r
   Úunk4r   rS   rT   rH   rI   rJ   rL   rU   rV   rK   rW   rM   r1   r   r   r   r   w   s6   















z$KIWI_CREDMAN_LIST_ENTRY_X86.__init__NrN   r   r   r   r   r#   v   rO   r#   c                       r-   )rE   c                    r/   r0   )r   r   r   r1   r   r   r   r   š   r3   z#PKIWI_CREDMAN_LIST_ENTRY_5.__init__r4   r   r   r   r   rE   ™   r5   rE   c                   @   r6   )r   c                 C   sÌ   |  | ¡ d ¡ | ¡  t|ƒj| _| ¡  t| _t|ƒj| _t|ƒj| _	t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t| _t| _t| _t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t| _d S ©Né8   r9   r1   r   r   r   r   ž   s*   






z"KIWI_CREDMAN_LIST_ENTRY_5.__init__NrN   r   r   r   r   r   �   rO   r   c                       r-   )rR   c                    r/   r0   )r   r   r   r1   r   r   r   r   ¹   r3   z$PKIWI_CREDMAN_LIST_ENTRY_60.__init__r4   r   r   r   r   rR   ¸   r5   rR   c                   @   r6   )r   c                 C   s
  |  | ¡ d ¡ | ¡  t|ƒj| _| ¡  t|ƒ| _t|ƒj| _t|ƒj| _	t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t| _t| _t|ƒ| _t
|ƒ| _t|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t
|ƒ| _t|ƒ| _t|ƒj| _| ¡  t|ƒ| _d S r]   rQ   r1   r   r   r   r   ½   s4   












z#KIWI_CREDMAN_LIST_ENTRY_60.__init__NrN   r   r   r   r   r   ¼   rO   r   c                       r-   )r[   c                    r/   r0   )r   r   r    r1   r   r   r   r   ß   r3   z!PKIWI_CREDMAN_LIST_ENTRY.__init__r4   r   r   r   r   r[   Þ   r5   r[   c                   @   r6   )r    c                 C   rY   r]   rZ   r1   r   r   r   r   ã   s6   















z KIWI_CREDMAN_LIST_ENTRY.__init__NrN   r   r   r   r   r    â   rO   r    c                       r-   )ÚPKIWI_CREDMAN_LIST_STARTERc                    r/   r0   )r   r   ÚKIWI_CREDMAN_LIST_STARTERr1   r   r   r   r     r3   z#PKIWI_CREDMAN_LIST_STARTER.__init__r4   r   r   r   r   r_     r5   r_   c                   @   r6   )r`   c                 C   s    t |ƒ| _| ¡  t|ƒ| _d S r0   )r   r?   r<   r[   Ústartr1   r   r   r   r     s   
z"KIWI_CREDMAN_LIST_STARTER.__init__NrN   r   r   r   r   r`   
  rO   r`   c                       r-   )ÚPKIWI_CREDMAN_SET_LIST_ENTRYc                    r/   r0   )r   r   ÚKIWI_CREDMAN_SET_LIST_ENTRYr1   r   r   r   r     r3   z%PKIWI_CREDMAN_SET_LIST_ENTRY.__init__r4   r   r   r   r   rb     r5   rb   c                   @   r6   )rc   c                 C   s@   t |ƒ| _t |ƒ| _t|ƒj| _| ¡  t|ƒ| _t|ƒ| _	d S r0   )
rb   rF   rG   r   r   r?   r<   r_   Úlist1Úlist2r1   r   r   r   r     s   


z$KIWI_CREDMAN_SET_LIST_ENTRY.__init__NrN   r   r   r   r   rc     rO   rc   )ÚioÚpypykatz.commons.commonr   r   r   Úpypykatz.commons.win_datatypesr   r   r   r   r	   r
   Ú%pypykatz.lsadecryptor.package_commonsr   r   r.   r!   rP   r"   rX   r#   rE   r   rR   r   r[   r    r_   r`   rb   rc   r   r   r   r   Ú<module>   s,    $#"$