o
    j                     @   s   d dl mZmZmZ d dlmZmZmZ d dlm	Z	 d dl m
Z
 G dd de	ZG dd deZG d	d
 d
eZG dd dZG dd dZdS )    )KatzSystemArchitectureWindowsBuildWindowsMinBuild)LUIDULONGPOINTER)PackageTemplate)hexdumpc                       s(   e Zd Z fddZedd Z  ZS )WdigestTemplatec                    s(   t  d d | _d | _d | _d | _d S )NWdigest)super__init__	signaturefirst_entry_offset
list_entryprimary_offset)self	__class__ /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/lsadecryptor/packages/wdigest/templates.pyr      s
   
zWdigestTemplate.__init__c                 C   s  t  }| jtjkrtjj| j  krtjjk r(n nd|_	d|_
d|_t|_ntjj| j  kr7tjjk rFn nd|_	d|_
d|_t|_ntjj| j  krUtjjk rdn nd|_	d|_
d|_t|_ntjj| j  krstjjk rn nd|_	d|_
d|_t|_nd|_	d|_
d|_t|_n| jtjkr=tjj| j  krtjjk rn nd|_	d	|_
d|_t|_ntjj| j  krtjjk rn nd|_	d	|_
d
|_t|_nrtjj| j  krtjjk rn nd|_	d	|_
d|_t|_nTtjj| j  krtjjk rn nd|_	d|_
d|_t|_n4tjj| j  kr!tjjk r0n nd|_	d	|_
d|_t|_nd|_	d	|_
d|_t|_ntd| j |d|j |S )Ns   H;t$   0   s   H;ts   H;ts
   H;tK 9Hs   tMi   s   t9N    s   t
9Ns   t9VzUnknown architecture! %sr   )r
   architecturer   X64r   WIN_XPvaluebuildnumberWIN_2K3r   r   r   PWdigestListEntryr   	WIN_VISTAWIN_11X86PWdigestListEntryNT5WIN_BLUEWIN_10r   WIN_10_1809	Exceptionlog_template)sysinfotemplater   r   r   get_template   sv   "
""""""&&zWdigestTemplate.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 )r"   c                       t  |t d S N)r   r   WdigestListEntryr   readerr   r   r   r   j      zPWdigestListEntry.__init__r/   r0   r1   r   r3   r   r   r   r   r"   i       r"   c                       r4   )r&   c                    r5   r6   )r   r   WdigestListEntryNT5r8   r   r   r   r   n   r:   zPWdigestListEntryNT5.__init__r;   r   r   r   r   r&   m   r<   r&   c                   @      e Zd Zdd ZdS )r=   c                 C   s@   t || _t || _t || _t|| _|  t|j| _	d S r6   )
r&   FlinkBlink
this_entryr   usage_countalignr   r   luidr8   r   r   r   r   r   s   



zWdigestListEntryNT5.__init__Nr/   r0   r1   r   r   r   r   r   r=   q       r=   c                   @   r>   )r7   c                 C   s@   t || _t || _t|| _|  t || _t|j| _	d S r6   )
r"   r?   r@   r   rB   rC   rA   r   r   rD   r8   r   r   r   r   |   s   



zWdigestListEntry.__init__NrE   r   r   r   r   r7   {   rF   r7   N)pypykatz.commons.commonr   r   r   pypykatz.commons.win_datatypesr   r   r   %pypykatz.lsadecryptor.package_commonsr   r	   r
   r"   r&   r=   r7   r   r   r   r   <module>   s   Y
