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.constantsÚ4pypykatz.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