o
    Žõ±jå  ã                   @   s   d dl mZ G dd„ dƒZdS )é    )Úloggerc                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚSYSTEMc                 C   s   || _ d | _d | _d S ©N)ÚhiveÚcurrentcontrolÚbootkey)ÚselfÚsystem_hive© r
   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aesedb/utils/systemhive.pyÚ__init__	   s   
zSYSTEM.__init__c                 Ã   sV   �t  d¡ | jd ur| jS | j d¡I d H }|d }d| | _t  d| j ¡ | jS )Nz([SYSTEM] determining current control setzSelect\Currenté   zControlSet%03dz%[SYSTEM] current control set name: %s)r   Údebugr   r   Ú	get_value)r   Úccsr
   r
   r   Úget_currentcontrol   s   €


zSYSTEM.get_currentcontrolc                 Ã   sÈ   �t  d¡ | jd ur| jS | jd u r|  ¡ I d H  g d¢}d}dD ]}|| j d| j|f ¡I d H 7 }q"t |¡}d| _t	t
|ƒƒD ]}|  j||| || d … 7  _qCt  d| j ¡  ¡ | jS )	Nz[SYSTEM] get_bootkey invoked)é   é   é   é   é   é	   é   é   r   é   r   é   é   é
   é   é   Ú )ÚJDÚSkew1ÚGBGÚDataz%s\Control\Lsa\%só    r   z[SYSTEM] bootkey: %s)r   r   r   r   r   r   Ú	get_classÚbytesÚfromhexÚrangeÚlenÚhex)r   Ú
transformsÚbootkey_obfÚkeyÚir
   r
   r   Úget_bootkey   s    €


"
$zSYSTEM.get_bootkeyc                 Ã   s"   �|   ¡ I d H  |  ¡ I d H  d S r   )r   r0   )r   r
   r
   r   Úget_secrets-   s   €zSYSTEM.get_secretsc                 Ã   sX   �| j d u r|  ¡ I d H  zd| j |f }| j |¡I d H }|d  d¡W S    Y d S )Nz%s\Services\%s\ObjectNamer   z	utf-16-le)r   r   r   r   Údecode)r   Úservice_namer.   Úvalr
   r
   r   Úget_service_user1   s   €
zSYSTEM.get_service_userc                 C   s   i }| j |d< | j|d< |S )NÚCurrentControlSetÚBootKey)r   r   ©r   Útr
   r
   r   Úto_dict<   s   

zSYSTEM.to_dictc                 C   s(   d}|d| j  7 }|d| j ¡  7 }|S )Nz3============== SYSTEM hive secrets ==============
zCurrentControlSet: %s
zBoot Key: %s
)r   r   r+   r8   r
   r
   r   Ú__str__B   s   zSYSTEM.__str__N)
Ú__name__Ú
__module__Ú__qualname__r   r   r0   r1   r5   r:   r;   r
   r
   r
   r   r      s    r   N)Úaesedbr   r   r
   r
   r
   r   Ú<module>   s   