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	 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WindowsMinBuildWindowsBuild)LUIDULONGPOINTER)PackageTemplatec                       (   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/alsadecryptor/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                       r	   )r#   c                       t    d S Nr   r   r   r   r   r   r   f      zPWdigestListEntry.__init__c                    ,   t  }|  |_|  I d H |_t|_|S r6   )r#   telllocation	read_uintr    WdigestListEntry	finaltypereaderpr   r   r   loadi      
zPWdigestListEntry.loadr0   r1   r2   r   r3   rB   r4   r   r   r   r   r#   e       r#   c                       r	   )r'   c                    r5   r6   r7   r   r   r   r   r   r   r8   zPWdigestListEntryNT5.__init__c                    r9   r6   )r'   r:   r;   r<   r    WdigestListEntryNT5r>   r?   r   r   r   rB   u   rC   zPWdigestListEntryNT5.loadrD   r   r   r   r   r'   q   rE   r'   c                   @       e Zd Zdd Zedd ZdS )rF   c                 C   "   d | _ d | _d | _d | _d | _d S r6   )FlinkBlink
this_entryusage_countluidr   r   r   r   r   ~   
   
zWdigestListEntryNT5.__init__c                    st   t  }t| I d H |_t| I d H |_t| I d H |_t| I d H |_|  I d H  t	
| I d H |_|S r6   )rF   r'   rB   rI   rJ   rK   r   rL   alignr   	loadvaluerM   r@   resr   r   r   rB      s   zWdigestListEntryNT5.loadNr0   r1   r2   r   r3   rB   r   r   r   r   rF   }       rF   c                   @   rG   )r=   c                 C   rH   r6   )rI   rJ   rL   rK   rM   r   r   r   r   r      rN   zWdigestListEntry.__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 r6   )r=   r#   rB   rI   rJ   r   rL   rO   rK   r   rP   rM   rQ   r   r   r   rB      s   zWdigestListEntry.loadNrS   r   r   r   r   r=      rT   r=   N)pypykatz.commons.commonr   r   r   $pypykatz.alsadecryptor.win_datatypesr   r   r   &pypykatz.alsadecryptor.package_commonsr   r
   r#   r'   rF   r=   r   r   r   r   <module>   s   X