o
    õ±j«:  ć                   @   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                       ó(   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/alsadecryptor/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                       r   )ŚPKIWI_CREDMAN_LIST_ENTRY_5_X86c                    ó   t   ”  d S ©N©r   r   r   r   r   r   r   +   ó   z'PKIWI_CREDMAN_LIST_ENTRY_5_X86.__init__c                 Ć   ó,   t  }|  ” |_|  ” I d H |_t|_|S r1   )r/   ŚtellŚlocationŚ	read_uintr   r#   Ś	finaltype©ŚreaderŚpr   r   r   Śload.   ó   
z#PKIWI_CREDMAN_LIST_ENTRY_5_X86.load©r*   r+   r,   r   r-   r<   r.   r   r   r   r   r/   *   ó    r/   c                   @   ó    e Zd Zdd Zedd ZdS )r#   c                 C   ód   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d | _d | _d | _d S r1   ©ŚcbEncPasswordŚencPasswordŚunk0Śunk1Śunk2Śunk3ŚUserNameŚ
cbUserNameŚFlinkŚBlinkŚserver1Śunk6Śunk7ŚuserŚunk8Śserver2r   r   r   r   r   7   ó    
z&KIWI_CREDMAN_LIST_ENTRY_5_X86.__init__c                 Ć   s|  t  }|  |  ” d ”I d H  |  ” I d H  t | ”I d H |_|  ” I d H  t | ”I d H |_	t | ”I d H |_
t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t | ”I d H |_|S ©Né    )r#   Śmover5   Śalignr   Ś	loadvaluerC   r   r<   rD   rE   rF   r   rG   rH   rI   rJ   ŚPKIWI_CREDMAN_LIST_ENTRY_5rK   rL   r   rM   rN   rO   rP   rQ   rR   ©r:   Śresr   r   r   r<   I   s0   z"KIWI_CREDMAN_LIST_ENTRY_5_X86.loadN©r*   r+   r,   r   r-   r<   r   r   r   r   r#   6   ó    r#   c                       r   )ŚPKIWI_CREDMAN_LIST_ENTRY_60_X86c                    r0   r1   r2   r   r   r   r   r   f   r3   z(PKIWI_CREDMAN_LIST_ENTRY_60_X86.__init__c                 Ć   r4   r1   )r^   r5   r6   r7   r   r$   r8   r9   r   r   r   r<   i   r=   z$PKIWI_CREDMAN_LIST_ENTRY_60_X86.loadr>   r   r   r   r   r^   e   r?   r^   c                   @   r@   )r$   c                 C   ó   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d S r1   ©rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   ŚtypeŚunk5rM   rN   rO   rQ   Śunk9Śunk10rP   Śunk11rR   r   r   r   r   r   r   ó*   
z'KIWI_CREDMAN_LIST_ENTRY_60_X86.__init__c                 Ć   óÖ  t  }|  |  ” d ”I d H  |  ” I d H  t | ”I d H |_|  ” I d H  t | ”I d H |_	t | ”I d H |_
t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t | ”I d H |_|S rT   ) r$   rV   r5   rW   r   rX   rC   r   r<   rD   rE   rF   r   rG   rH   rI   rJ   ŚPKIWI_CREDMAN_LIST_ENTRY_60rK   rL   r   ra   rb   rM   rN   rO   rQ   rc   rd   rP   re   rR   rZ   r   r   r   r<      s:   z#KIWI_CREDMAN_LIST_ENTRY_60_X86.loadNr\   r   r   r   r   r$   q   ó    r$   c                       r   )ŚPKIWI_CREDMAN_LIST_ENTRY_X86c                    r0   r1   r2   r   r   r   r   r   «   r3   z%PKIWI_CREDMAN_LIST_ENTRY_X86.__init__c                 Ć   r4   r1   )rj   r5   r6   r7   r   r%   r8   r9   r   r   r   r<   ®   r=   z!PKIWI_CREDMAN_LIST_ENTRY_X86.loadr>   r   r   r   r   rj   Ŗ   r?   rj   c                   @   r@   )r%   c                 C   ó   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d S r1   ©rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   Śunk4ra   rb   rM   rN   rO   rQ   rc   rd   rP   re   rR   r   r   r   r   r   ·   ó,   
z$KIWI_CREDMAN_LIST_ENTRY_X86.__init__c                 Ć   óč  t  }|  |  ” d ”I d H  |  ” I d H  t | ”I d H |_|  ” I d H  t | ”I d H |_	t | ”I d H |_
t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_ |  ” I d H  t | ”I d H |_!|S rT   )"r%   rV   r5   rW   r   rX   rC   r   r<   rD   rE   rF   r   rG   rH   rI   rJ   ŚPKIWI_CREDMAN_LIST_ENTRYrK   rL   r
   rm   r   ra   rb   rM   rN   rO   rQ   rc   rd   rP   re   rR   rZ   r   r   r   r<   Ļ   s<   z KIWI_CREDMAN_LIST_ENTRY_X86.loadNr\   r   r   r   r   r%   ¶   ó    r%   c                       r   )rY   c                    r0   r1   r2   r   r   r   r   r   õ   r3   z#PKIWI_CREDMAN_LIST_ENTRY_5.__init__c                 Ć   r4   r1   )rY   r5   r6   r7   r   r   r8   r9   r   r   r   r<   ų   r=   zPKIWI_CREDMAN_LIST_ENTRY_5.loadr>   r   r   r   r   rY   ō   r?   rY   c                   @   r@   )r   c                 C   rA   r1   rB   r   r   r   r   r     rS   z"KIWI_CREDMAN_LIST_ENTRY_5.__init__c                 Ć   sp  t  }|  |  ” d ”I d H  |  ” I d H  t | ”I d H |_|  ” I d H  t | ”I d H |_	t | ”I d H |_
t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t|_|S ©Né8   )r   rV   r5   rW   r   rX   rC   r   r<   rD   rE   rF   r   rG   rH   rI   rJ   rY   rK   rL   r   rM   rN   rO   rP   rQ   rR   rZ   r   r   r   r<     s0   zKIWI_CREDMAN_LIST_ENTRY_5.loadNr\   r   r   r   r   r      r]   r   c                       r   )rh   c                    r0   r1   r2   r   r   r   r   r   0  r3   z$PKIWI_CREDMAN_LIST_ENTRY_60.__init__c                 Ć   r4   r1   )rh   r5   r6   r7   r   r!   r8   r9   r   r   r   r<   3  r=   z PKIWI_CREDMAN_LIST_ENTRY_60.loadr>   r   r   r   r   rh   /  r?   rh   c                   @   r@   )r!   c                 C   r_   r1   r`   r   r   r   r   r   <  rf   z#KIWI_CREDMAN_LIST_ENTRY_60.__init__c                 Ć   rg   rr   ) r!   rV   r5   rW   r   rX   rC   r   r<   rD   rE   rF   r   rG   rH   rI   rJ   rh   rK   rL   r   ra   rb   rM   rN   rO   rQ   rc   rd   rP   re   rR   rZ   r   r   r   r<   S  s:   zKIWI_CREDMAN_LIST_ENTRY_60.loadNr\   r   r   r   r   r!   ;  ri   r!   c                       r   )rp   c                    r0   r1   r2   r   r   r   r   r   x  r3   z!PKIWI_CREDMAN_LIST_ENTRY.__init__c                 Ć   r4   r1   )rp   r5   r6   r7   r   r"   r8   r9   r   r   r   r<   {  r=   zPKIWI_CREDMAN_LIST_ENTRY.loadr>   r   r   r   r   rp   w  r?   rp   c                   @   r@   )r"   c                 C   rk   r1   rl   r   r   r   r   r     rn   z KIWI_CREDMAN_LIST_ENTRY.__init__c                 Ć   ro   rr   )"r"   rV   r5   rW   r   rX   rC   r   r<   rD   rE   rF   r   rG   rH   rI   rJ   rp   rK   rL   r
   rm   r   ra   rb   rM   rN   rO   rQ   rc   rd   rP   re   rR   rZ   r   r   r   r<     s<   zKIWI_CREDMAN_LIST_ENTRY.loadNr\   r   r   r   r   r"     rq   r"   c                       r   )ŚPKIWI_CREDMAN_LIST_STARTERc                    r0   r1   r2   r   r   r   r   r   ¾  r3   z#PKIWI_CREDMAN_LIST_STARTER.__init__c                 Ć   r4   r1   )rt   r5   r6   r7   r   ŚKIWI_CREDMAN_LIST_STARTERr8   r9   r   r   r   r<   Į  r=   zPKIWI_CREDMAN_LIST_STARTER.loadr>   r   r   r   r   rt   ½  r?   rt   c                   @   r@   )ru   c                 C   s   d | _ d | _d S r1   )rE   Śstartr   r   r   r   r   Ź  s   
z"KIWI_CREDMAN_LIST_STARTER.__init__c                 Ć   s>   t  }t | ”I d H |_|  ” I d H  t | ”I d H |_|S r1   )ru   r   r<   rE   rW   rp   rv   rZ   r   r   r   r<   Ī  s   zKIWI_CREDMAN_LIST_STARTER.loadNr\   r   r   r   r   ru   É  s    ru   c                       r   )ŚPKIWI_CREDMAN_SET_LIST_ENTRYc                    r0   r1   r2   r   r   r   r   r   ×  r3   z%PKIWI_CREDMAN_SET_LIST_ENTRY.__init__c                 Ć   r4   r1   )rw   r5   r6   r7   r   ŚKIWI_CREDMAN_SET_LIST_ENTRYr8   r9   r   r   r   r<   Ś  r=   z!PKIWI_CREDMAN_SET_LIST_ENTRY.loadr>   r   r   r   r   rw   Ö  r?   rw   c                   @   r@   )rx   c                 C   s"   d | _ d | _d | _d | _d | _d S r1   )rK   rL   rE   Ślist1Ślist2r   r   r   r   r   ć  s
   
z$KIWI_CREDMAN_SET_LIST_ENTRY.__init__c                 Ć   st   t  }t | ”I d H |_t | ”I d H |_t | ”I d H |_|  ” I d H  t	 | ”I d H |_
t	 | ”I d H |_|S r1   )rx   rw   r<   rK   rL   r   rX   rE   rW   rt   ry   rz   rZ   r   r   r   r<   ź  s   z KIWI_CREDMAN_SET_LIST_ENTRY.loadNr\   r   r   r   r   rx   ā  s    rx   )ŚioŚpypykatz.commons.commonr   r   r   Ś$pypykatz.alsadecryptor.win_datatypesr   r   r   r   r	   r
   Ś&pypykatz.alsadecryptor.package_commonsr   r   r/   r#   r^   r$   rj   r%   rY   r   rh   r!   rp   r"   rt   ru   rw   rx   r   r   r   r   Ś<module>   s,    /9>/<: