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   