o
    j                     @   s   G d d dZ dS )c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
CryptoCMDHelperc                 C   s   g | _ dg| _d S )Ncrypto)live_keywordskeywords)self r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/utils/crypto/cmdhelper.py__init__   s   zCryptoCMDHelper.__init__c                 C   s  |j ddd}| }d|_d|_|j ddd}|jdd	d |j d
dd}|jdd	d |j ddd}|jddd |jdd	d |j ddd}|jddd |jdd	d |jddtddd |j ddd}|jddd |j ddd}|jddd |j ddd}|jddd d S )Nr   z2Utils for generating hashes/decrypting secrets etc)helpTcrypto_modulentz!Generates NT hash of the passwordpasswordzPassword to be hashedlmz!Generates LM hash of the passworddcczKGenerates DCC v1 (domain cached credentials version 1) hash of the passwordusernamedcc2zKGenerates DCC v2 (domain cached credentials version 2) hash of the passwordz-iz--iteration-counti (  ziteration-count)typedefaultr	   gppasszDecrypt GP passwordsenczEncrypted password stringofscanz)Decrypt TrendMicro OfficeScan config filez5Encrypted password string or path to ofcscan.ini filevnczDecrypt VNC password)
add_parseradd_subparsersrequireddestadd_argumentint)r   parserlive_parsercrypto_groupcrypto_subparsersgroupr   r   r   add_args   s*   zCryptoCMDHelper.add_argsc                 C   sN   |j | jv r| | t| jdkr!|j dkr#|j| jv r%tdd S d S d S )N    livez&There are no live commands for crypto.)commandr   runlenr   module	Exception)r   argsr   r   r   execute+   s
   
$zCryptoCMDHelper.executec                 C   s6  ddl m}m}m}m} ddlm} ddlm} ddl	m
} |jdkr.t||j  d S |jdkr>t||j  d S |jdkrPt||j|j  d S |jd	krdt||j|j|j  d S |jd
krrt||j d S |jdkr||jD ]\}	}
td|	|
f  q|d S |jdkrt||j d S d S )Nr#   )NTLMMSDCCMSDCCv2)
gppassword)ofscan_decrypt_data)
vncdecryptr   r   r   r   r   r   z%s: %sr   )pypykatz.utils.crypto.winhashr,   r-   r.   r/    pypykatz.utils.crypto.gppasswordr0    pypykatz.utils.crypto.ofcdecryptr1   pypykatz.utils.crypto.othersr2   r
   printr   hexr   iteration_countr   )r   r*   r,   r-   r.   r/   r0   r1   r2   paramresr   r   r   r&   2   s*   






zCryptoCMDHelper.runN)__name__
__module____qualname__r   r"   r+   r&   r   r   r   r   r      s
    r   N)r   r   r   r   r   <module>   s   