o
    j                     @   s   d dl Z d dlT d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZ d dlmZ G dd dZdS )    N)*)RevertToSelfLookupPrivilegeValueWOpenProcessTokenGetTokenInformation_sidLookupAccountSidWConvertSidToStringSidADuplicateTokenExCreateProcessWithTokenWSetThreadTokenConvertStringSidToSidALOGON_NETCREDENTIALS_ONLYOpenSCManagerWSC_MANAGER_ALL_ACCESSSERVICE_DRIVERSERVICE_WIN32SERVICE_STATE_ALLEnumServicesStatusWEnumServicesStatusExWSC_ENUM_PROCESS_INFO)STARTUPINFOWc                   @   s   e Zd Zdd Zedd ZeefddZedd Zed	d
 Z	edd Z
edd ZeedeefddZedd ZedddZedd ZeefddZeeeB efddZeeeeB edfddZdS )ADVAPI32c                 C   s   d S N )selfr   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/commons/winapi/local/advapi32.py__init__   s   zADVAPI32.__init__c                 C   
   t | |S r   )r   )system_nameprivilege_namer   r   r   LookupPrivilegeValue      
zADVAPI32.LookupPrivilegeValuec                 C      t | |dS )N)DesiredAccess)r   )process_handler#   r   r   r   r         zADVAPI32.OpenProcessTokenc                 C      t | S r   )r   )token_handler   r   r   r         z ADVAPI32.GetTokenInformation_sidc                 C   r   r   )r   )lpSystemNamelpSidr   r   r   LookupAccountSid   r!   zADVAPI32.LookupAccountSidc                 C   r&   r   )r   )r*   r   r   r   ConvertSidToStringSid"   r(   zADVAPI32.ConvertSidToStringSidc                 C   r&   r   )r   )	StringSidr   r   r   ConvertStringSidToSid&   r(   zADVAPI32.ConvertStringSidToSidNc                 C      t | ||||dS )N)dwDesiredAccesslpTokenAttributesImpersonationLevel	TokenType)r	   )hExistingTokenr0   r1   r2   r3   r   r   r   r	   *      zADVAPI32.DuplicateTokenExc              
   C   sd   d}d}t  }tt |_d|_d|_d|_||_d|_d|_	||_
d}t| td ||d d |d d S )N      r      )hTokendwLogonFlagslpApplicationNamelpCommandLinedwCreationFlagslpEnvironmentlpCurrentDirectorylpStartupInfo)r   ctypessizeofcb
lpReserved	lpDesktoplpTitledwFlagscbReserved2lpReserved2wShowWindowr
   r   )tokencmdlineSW_SHOWSTARTF_USESHOWWINDOWr@   CREATE_NEW_CONSOLEr   r   r   CreateProcessWithToken_manip/   s,   
z%ADVAPI32.CreateProcessWithToken_manipc                 C   r"   )N)thread_handle)r   )r'   rQ   r   r   r   r   L   r%   zADVAPI32.SetThreadTokenc                   C   s   t  S r   )r   r   r   r   r   r   P   s   zADVAPI32.RevertToSelfc                 C   s
   t | dS )Nr0   )r   rR   r   r   r   OpenSCManagerT   r!   zADVAPI32.OpenSCManagerc                 C   s   t | ||dS )N)dwServiceTypedwServiceState)r   )
hSCManagerrT   rU   r   r   r   EnumServicesStatusX   s   zADVAPI32.EnumServicesStatusc                 C   r/   )N)	InfoLevelrT   rU   pszGroupName)r   )rV   rX   rT   rU   rY   r   r   r   EnumServicesStatusEx\   r5   zADVAPI32.EnumServicesStatusExr   )__name__
__module____qualname__r   staticmethodr    TOKEN_ALL_ACCESSr   r   r+   r,   r.   SecurityImpersonationTokenPrimaryr	   rP   r   r   r   rS   r   r   r   rW   r   rZ   r   r   r   r   r      s8    






r   )rA   !pypykatz.commons.winapi.constants4pypykatz.commons.winapi.local.function_defs.advapi32r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   4pypykatz.commons.winapi.local.function_defs.kernel32r   r   r   r   r   r   <module>   s
   T