o
    Žõ±j—  ã                   @   s®   d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dl mZ G dd„ dƒ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dS )é    )ÚKatzSystemArchitectureÚWindowsBuildÚWindowsMinBuild)ÚPOINTERÚULONGÚKIWI_GENERIC_PRIMARY_CREDENTIALÚPVOIDÚDWORDÚLUIDÚLSA_UNICODE_STRINGÚWORD)ÚPCWSTR)Úhexdumpc                   @   s,   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdS )ÚRDPCredsTemplatec                 C   s"   d | _ d | _d | _d | _d | _d S ©N)Ú
signaturesÚ	signatureÚcred_structÚproperty_structÚproperties_struct)Úself© r   ú˜/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/rdp/packages/creds/templates.pyÚ__init__
   s
   
zRDPCredsTemplate.__init__c                 C   sF   t ƒ }| jtjjkrg d¢|_d|_t|_|S dg|_d|_t	|_|S )N)s       »Gs       óGs       ;r   s   È   È   é   )
r   Úbuildnumberr   ÚWIN_8Úvaluer   ÚoffsetÚWTS_KIWIr   ÚWTS_KIWI_2008R2)ÚsysinfoÚtemplater   r   r   Úget_logonpasswords_template   s   
üz,RDPCredsTemplate.get_logonpasswords_templatec                  C   s   t ƒ } d| _t| _t| _| S )Ns   Í«ÊÛ)r   r   ÚTS_PROPERTY_KIWIr   ÚTS_PROPERTIES_KIWIr   )r"   r   r   r   Úget_mstsc_template"   s
   z#RDPCredsTemplate.get_mstsc_templateN)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr#   r&   r   r   r   r   r   	   s    
r   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚPTS_PROPERTY_KIWIc                    s   t ƒ  |t¡ d S r   )Úsuperr   r$   ©r   Úreader©Ú	__class__r   r   r   .   s   zPTS_PROPERTY_KIWI.__init__)r'   r(   r)   r   Ú__classcell__r   r   r/   r   r+   -   s    r+   c                   @   ó   e Zd Zdd„ ZdS )r$   c                 C   s˜   |  ¡  t|ƒj| _t|ƒj| _|  ¡  t|ƒj| _t|ƒj| _t|ƒj| _	t|ƒj| _
t|ƒj| _t|ƒj| _t|ƒj| _t|ƒj| _t|ƒj| _d S r   )Úalignr   r   Ú
szPropertyr	   ÚdwTyper   ÚpvDataÚunkp0Úunkd0ÚdwFlagsÚunkd1Úunkd2Ú
pValidatorÚunkp2Úunkp3r-   r   r   r   r   2   s   zTS_PROPERTY_KIWI.__init__N©r'   r(   r)   r   r   r   r   r   r$   1   ó    r$   c                   @   r2   )r%   c                 C   sp   t |ƒj| _t |ƒj| _t|ƒj| _t |ƒj| _| ¡  t|ƒj| _| ¡  | 	¡ | _
t|ƒ| _t |ƒj| _d S r   )r	   r   Úunkh0r8   r   r=   r:   r3   r>   ÚtellÚpProperties_addrÚpPropertiesÚcbPropertiesr-   r   r   r   r   B   s   

zTS_PROPERTIES_KIWI.__init__Nr?   r   r   r   r   r%   A   r@   r%   c                   @   r2   )r   c                 C   st   t |ƒ| _t |ƒ| _t|ƒj| _t|ƒj| _t|ƒj| _t |ƒ| _| 	d¡| _
| 	d¡| _| ¡ | _| 	d¡| _d S )Né   ©r	   Úunk0Úunk1r   r   ÚcbDomainÚ
cbUsernameÚ
cbPasswordÚunk2ÚreadÚDomainÚUserNamerB   ÚPassword_addrÚPasswordr-   r   r   r   r   Q   s   



zWTS_KIWI.__init__Nr?   r   r   r   r   r   P   r@   r   c                   @   r2   )r    c                 C   s€   t |ƒ| _t |ƒ| _t|ƒjd | _t|ƒjd | _t|ƒjd | _t |ƒ| _| 	d¡| _
| 	d¡| _| ¡ | _| 	d¡| _d S )Niÿ  rF   rG   r-   r   r   r   r   ^   s   



zWTS_KIWI_2008R2.__init__Nr?   r   r   r   r   r    ]   r@   r    N)Úpypykatz.commons.commonr   r   r   Úpypykatz.commons.win_datatypesr   r   r   r   r	   r
   r   r   Úminidump.win_datatypesr   r   r   r+   r$   r%   r   r    r   r   r   r   Ú<module>   s   ($