mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Add defintions/structs/functions for token/registry
This commit is contained in:
+33
-1
@@ -437,4 +437,36 @@ FILE_SUPPORTS_TRANSACTIONS = Flag("FILE_SUPPORTS_TRANSACTIONS", 0x00200000)
|
||||
FILE_SUPPORTS_HARD_LINKS = Flag("FILE_SUPPORTS_HARD_LINKS", 0x00400000)
|
||||
FILE_SUPPORTS_EXTENDED_ATTRIBUTES = Flag("FILE_SUPPORTS_EXTENDED_ATTRIBUTES", 0x00800000)
|
||||
FILE_SUPPORTS_OPEN_BY_FILE_ID = Flag("FILE_SUPPORTS_OPEN_BY_FILE_ID", 0x01000000)
|
||||
FILE_SUPPORTS_USN_JOURNAL = Flag("FILE_SUPPORTS_USN_JOURNAL", 0x02000000)
|
||||
FILE_SUPPORTS_USN_JOURNAL = Flag("FILE_SUPPORTS_USN_JOURNAL", 0x02000000)
|
||||
HKEY_CLASSES_ROOT = Flag("HKEY_CLASSES_ROOT", ( 0x80000000 ))
|
||||
HKEY_CURRENT_USER = Flag("HKEY_CURRENT_USER", ( 0x80000001 ))
|
||||
HKEY_LOCAL_MACHINE = Flag("HKEY_LOCAL_MACHINE", ( 0x80000002 ))
|
||||
HKEY_USERS = Flag("HKEY_USERS", ( 0x80000003 ))
|
||||
HKEY_PERFORMANCE_DATA = Flag("HKEY_PERFORMANCE_DATA", ( 0x80000004 ))
|
||||
HKEY_PERFORMANCE_TEXT = Flag("HKEY_PERFORMANCE_TEXT", ( 0x80000050 ))
|
||||
HKEY_PERFORMANCE_NLSTEXT = Flag("HKEY_PERFORMANCE_NLSTEXT", ( 0x80000060 ))
|
||||
RRF_RT_REG_NONE = Flag("RRF_RT_REG_NONE", 0x00000001)
|
||||
RRF_RT_REG_SZ = Flag("RRF_RT_REG_SZ", 0x00000002)
|
||||
RRF_RT_REG_EXPAND_SZ = Flag("RRF_RT_REG_EXPAND_SZ", 0x00000004)
|
||||
RRF_RT_REG_BINARY = Flag("RRF_RT_REG_BINARY", 0x00000008)
|
||||
RRF_RT_REG_DWORD = Flag("RRF_RT_REG_DWORD", 0x00000010)
|
||||
RRF_RT_REG_MULTI_SZ = Flag("RRF_RT_REG_MULTI_SZ", 0x00000020)
|
||||
RRF_RT_REG_QWORD = Flag("RRF_RT_REG_QWORD", 0x00000040)
|
||||
RRF_RT_DWORD = Flag("RRF_RT_DWORD", ( RRF_RT_REG_BINARY | RRF_RT_REG_DWORD ))
|
||||
RRF_RT_QWORD = Flag("RRF_RT_QWORD", ( RRF_RT_REG_BINARY | RRF_RT_REG_QWORD ))
|
||||
RRF_RT_ANY = Flag("RRF_RT_ANY", 0x0000ffff)
|
||||
RRF_NOEXPAND = Flag("RRF_NOEXPAND", 0x10000000)
|
||||
RRF_ZEROONFAILURE = Flag("RRF_ZEROONFAILURE", 0x20000000)
|
||||
KEY_QUERY_VALUE = Flag("KEY_QUERY_VALUE", ( 0x0001 ))
|
||||
KEY_SET_VALUE = Flag("KEY_SET_VALUE", ( 0x0002 ))
|
||||
KEY_CREATE_SUB_KEY = Flag("KEY_CREATE_SUB_KEY", ( 0x0004 ))
|
||||
KEY_ENUMERATE_SUB_KEYS = Flag("KEY_ENUMERATE_SUB_KEYS", ( 0x0008 ))
|
||||
KEY_NOTIFY = Flag("KEY_NOTIFY", ( 0x0010 ))
|
||||
KEY_CREATE_LINK = Flag("KEY_CREATE_LINK", ( 0x0020 ))
|
||||
KEY_WOW64_32KEY = Flag("KEY_WOW64_32KEY", ( 0x0200 ))
|
||||
KEY_WOW64_64KEY = Flag("KEY_WOW64_64KEY", ( 0x0100 ))
|
||||
KEY_WOW64_RES = Flag("KEY_WOW64_RES", ( 0x0300 ))
|
||||
KEY_READ = Flag("KEY_READ", ( ( STANDARD_RIGHTS_READ|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY ) & ( ~SYNCHRONIZE ) ))
|
||||
KEY_WRITE = Flag("KEY_WRITE", ( ( STANDARD_RIGHTS_WRITE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY ) & ( ~SYNCHRONIZE ) ))
|
||||
KEY_EXECUTE = Flag("KEY_EXECUTE", ( ( KEY_READ ) & ( ~SYNCHRONIZE ) ))
|
||||
KEY_ALL_ACCESS = Flag("KEY_ALL_ACCESS", ( ( STANDARD_RIGHTS_ALL|KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|KEY_CREATE_LINK ) & ( ~SYNCHRONIZE ) ))
|
||||
@@ -3,7 +3,7 @@ from ctypes import *
|
||||
from ctypes.wintypes import *
|
||||
from .winstructs import *
|
||||
|
||||
functions = ['ExitProcess', 'GetLastError', 'GetCurrentProcess', 'CreateFileA', 'CreateFileW', 'NtQuerySystemInformation', 'VirtualAlloc', 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualProtect', 'VirtualQuery', 'GetModuleFileNameA', 'GetModuleFileNameW', 'CreateThread', 'CreateRemoteThread', 'VirtualProtect', 'CreateProcessA', 'CreateProcessW', 'GetThreadContext', 'SetThreadContext', 'OpenThread', 'OpenProcess', 'CloseHandle', 'ReadProcessMemory', 'NtWow64ReadVirtualMemory64', 'WriteProcessMemory', 'CreateToolhelp32Snapshot', 'Thread32First', 'Thread32Next', 'Process32First', 'Process32Next', 'Process32FirstW', 'Process32NextW', 'GetProcAddress', 'LoadLibraryA', 'LoadLibraryW', 'OpenProcessToken', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW', 'AdjustTokenPrivileges', 'FindResourceA', 'FindResourceW', 'SizeofResource', 'LoadResource', 'LockResource', 'GetVersionExA', 'GetVersionExW', 'GetVersion', 'GetCurrentThread', 'GetCurrentThreadId', 'GetCurrentProcessorNumber', 'AllocConsole', 'GetStdHandle', 'SetStdHandle', 'SetThreadAffinityMask', 'WriteFile', 'GetExtendedTcpTable', 'GetExtendedUdpTable', 'SetTcpEntry', 'AddVectoredContinueHandler', 'AddVectoredExceptionHandler', 'TerminateThread', 'ExitThread', 'RemoveVectoredExceptionHandler', 'ResumeThread', 'SuspendThread', 'WaitForSingleObject', 'GetThreadId', 'LoadLibraryExA', 'LoadLibraryExW', 'SymInitialize', 'SymFromName', 'SymLoadModuleEx', 'SymSetOptions', 'SymGetTypeInfo', 'DeviceIoControl']
|
||||
functions = ['ExitProcess', 'GetLastError', 'GetCurrentProcess', 'CreateFileA', 'CreateFileW', 'NtQuerySystemInformation', 'VirtualAlloc', 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualProtect', 'VirtualQuery', 'GetModuleFileNameA', 'GetModuleFileNameW', 'CreateThread', 'CreateRemoteThread', 'VirtualProtect', 'CreateProcessA', 'CreateProcessW', 'GetThreadContext', 'SetThreadContext', 'OpenThread', 'OpenProcess', 'CloseHandle', 'ReadProcessMemory', 'NtWow64ReadVirtualMemory64', 'WriteProcessMemory', 'CreateToolhelp32Snapshot', 'Thread32First', 'Thread32Next', 'Process32First', 'Process32Next', 'Process32FirstW', 'Process32NextW', 'GetProcAddress', 'LoadLibraryA', 'LoadLibraryW', 'OpenProcessToken', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW', 'AdjustTokenPrivileges', 'FindResourceA', 'FindResourceW', 'SizeofResource', 'LoadResource', 'LockResource', 'GetVersionExA', 'GetVersionExW', 'GetVersion', 'GetCurrentThread', 'GetCurrentThreadId', 'GetCurrentProcessorNumber', 'AllocConsole', 'GetStdHandle', 'SetStdHandle', 'SetThreadAffinityMask', 'WriteFile', 'GetExtendedTcpTable', 'GetExtendedUdpTable', 'SetTcpEntry', 'AddVectoredContinueHandler', 'AddVectoredExceptionHandler', 'TerminateThread', 'ExitThread', 'RemoveVectoredExceptionHandler', 'ResumeThread', 'SuspendThread', 'WaitForSingleObject', 'GetThreadId', 'LoadLibraryExA', 'LoadLibraryExW', 'SymInitialize', 'SymFromName', 'SymLoadModuleEx', 'SymSetOptions', 'SymGetTypeInfo', 'DeviceIoControl', 'GetTokenInformation', 'RegOpenKeyExA', 'RegOpenKeyExW', 'RegGetValueA', 'RegGetValueW', 'RegCloseKey']
|
||||
|
||||
# ExitProcess(uExitCode):
|
||||
ExitProcessPrototype = WINFUNCTYPE(VOID, UINT)
|
||||
@@ -313,3 +313,27 @@ SymGetTypeInfoParams = ((1, 'hProcess'), (1, 'ModBase'), (1, 'TypeId'), (1, 'Get
|
||||
DeviceIoControlPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPOVERLAPPED)
|
||||
DeviceIoControlParams = ((1, 'hDevice'), (1, 'dwIoControlCode'), (1, 'lpInBuffer'), (1, 'nInBufferSize'), (1, 'lpOutBuffer'), (1, 'nOutBufferSize'), (1, 'lpBytesReturned'), (1, 'lpOverlapped'))
|
||||
|
||||
# GetTokenInformation(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength):
|
||||
GetTokenInformationPrototype = WINFUNCTYPE(BOOL, HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD, PDWORD)
|
||||
GetTokenInformationParams = ((1, 'TokenHandle'), (1, 'TokenInformationClass'), (1, 'TokenInformation'), (1, 'TokenInformationLength'), (1, 'ReturnLength'))
|
||||
|
||||
# RegOpenKeyExA(hKey, lpSubKey, ulOptions, samDesired, phkResult):
|
||||
RegOpenKeyExAPrototype = WINFUNCTYPE(LONG, HKEY, LPCSTR, DWORD, REGSAM, PHKEY)
|
||||
RegOpenKeyExAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'ulOptions'), (1, 'samDesired'), (1, 'phkResult'))
|
||||
|
||||
# RegOpenKeyExW(hKey, lpSubKey, ulOptions, samDesired, phkResult):
|
||||
RegOpenKeyExWPrototype = WINFUNCTYPE(LONG, HKEY, LPWSTR, DWORD, REGSAM, PHKEY)
|
||||
RegOpenKeyExWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'ulOptions'), (1, 'samDesired'), (1, 'phkResult'))
|
||||
|
||||
# RegGetValueA(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData):
|
||||
RegGetValueAPrototype = WINFUNCTYPE(LONG, HKEY, LPCSTR, LPCSTR, DWORD, LPDWORD, PVOID, LPDWORD)
|
||||
RegGetValueAParams = ((1, 'hkey'), (1, 'lpSubKey'), (1, 'lpValue'), (1, 'dwFlags'), (1, 'pdwType'), (1, 'pvData'), (1, 'pcbData'))
|
||||
|
||||
# RegGetValueW(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData):
|
||||
RegGetValueWPrototype = WINFUNCTYPE(LONG, HKEY, LPWSTR, LPWSTR, DWORD, LPDWORD, PVOID, LPDWORD)
|
||||
RegGetValueWParams = ((1, 'hkey'), (1, 'lpSubKey'), (1, 'lpValue'), (1, 'dwFlags'), (1, 'pdwType'), (1, 'pvData'), (1, 'pcbData'))
|
||||
|
||||
# RegCloseKey(hKey):
|
||||
RegCloseKeyPrototype = WINFUNCTYPE(LONG, HKEY)
|
||||
RegCloseKeyParams = ((1, 'hKey'),)
|
||||
|
||||
|
||||
@@ -25,12 +25,16 @@ ULONG64 = c_ulonglong
|
||||
DWORD64 = ULONG64
|
||||
PULONG64 = POINTER(ULONG64)
|
||||
PHANDLE = POINTER(HANDLE)
|
||||
HKEY = HANDLE
|
||||
PHKEY = POINTER(HKEY)
|
||||
ACCESS_MASK = DWORD
|
||||
REGSAM = ACCESS_MASK
|
||||
LPCONTEXT = PVOID
|
||||
VOID = DWORD
|
||||
|
||||
structs = ['_LIST_ENTRY', '_PEB_LDR_DATA', '_LSA_UNICODE_STRING', '_RTL_USER_PROCESS_PARAMETERS', '_PEB', '_SECURITY_ATTRIBUTES', '_SYSTEM_VERIFIER_INFORMATION', '_LDR_DATA_TABLE_ENTRY', '_IMAGE_FILE_HEADER', '_IMAGE_DATA_DIRECTORY', '_IMAGE_SECTION_HEADER', '_IMAGE_OPTIONAL_HEADER64', '_IMAGE_OPTIONAL_HEADER', '_IMAGE_NT_HEADERS64', '_IMAGE_NT_HEADERS', '_IMAGE_IMPORT_DESCRIPTOR', '_IMAGE_IMPORT_BY_NAME', '_IMAGE_EXPORT_DIRECTORY', '_MEMORY_BASIC_INFORMATION', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_OSVERSIONINFOA', '_OSVERSIONINFOW', '_OSVERSIONINFOEXA', '_OSVERSIONINFOEXW', '_OVERLAPPED', '_MIB_TCPROW_OWNER_PID', '_MIB_TCPTABLE_OWNER_PID', '_MIB_UDPROW_OWNER_PID', '_MIB_UDPTABLE_OWNER_PID', '_MIB_UDP6ROW_OWNER_PID', '_MIB_UDP6TABLE_OWNER_PID', '_MIB_TCP6ROW_OWNER_PID', '_MIB_TCP6TABLE_OWNER_PID', '_MIB_TCPROW', '_EXCEPTION_RECORD', '_EXCEPTION_POINTERS64', '_EXCEPTION_POINTERS32', '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', '_DEBUG_PROCESSOR_IDENTIFICATION_X86', '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', '_SYMBOL_INFO', '_MODLOAD_DATA']
|
||||
structs = ['_LIST_ENTRY', '_PEB_LDR_DATA', '_LSA_UNICODE_STRING', '_RTL_USER_PROCESS_PARAMETERS', '_PEB', '_SECURITY_ATTRIBUTES', '_SYSTEM_VERIFIER_INFORMATION', '_LDR_DATA_TABLE_ENTRY', '_IMAGE_FILE_HEADER', '_IMAGE_DATA_DIRECTORY', '_IMAGE_SECTION_HEADER', '_IMAGE_OPTIONAL_HEADER64', '_IMAGE_OPTIONAL_HEADER', '_IMAGE_NT_HEADERS64', '_IMAGE_NT_HEADERS', '_IMAGE_IMPORT_DESCRIPTOR', '_IMAGE_IMPORT_BY_NAME', '_IMAGE_EXPORT_DIRECTORY', '_MEMORY_BASIC_INFORMATION', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_OSVERSIONINFOA', '_OSVERSIONINFOW', '_OSVERSIONINFOEXA', '_OSVERSIONINFOEXW', '_OVERLAPPED', '_MIB_TCPROW_OWNER_PID', '_MIB_TCPTABLE_OWNER_PID', '_MIB_UDPROW_OWNER_PID', '_MIB_UDPTABLE_OWNER_PID', '_MIB_UDP6ROW_OWNER_PID', '_MIB_UDP6TABLE_OWNER_PID', '_MIB_TCP6ROW_OWNER_PID', '_MIB_TCP6TABLE_OWNER_PID', '_MIB_TCPROW', '_EXCEPTION_RECORD', '_EXCEPTION_POINTERS64', '_EXCEPTION_POINTERS32', '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', '_DEBUG_PROCESSOR_IDENTIFICATION_X86', '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', '_SYMBOL_INFO', '_MODLOAD_DATA']
|
||||
|
||||
enums = ['_SYSTEM_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_IMAGEHLP_SYMBOL_TYPE_INFO']
|
||||
enums = ['_SYSTEM_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_IMAGEHLP_SYMBOL_TYPE_INFO']
|
||||
|
||||
# Enum _SYSTEM_INFORMATION_CLASS definitions
|
||||
_SYSTEM_INFORMATION_CLASS = DWORD
|
||||
@@ -119,6 +123,7 @@ SystemSuperfetchInformation = 0x4f
|
||||
SystemMemoryListInformation = 0x50
|
||||
SystemFileCacheInformationEx = 0x51
|
||||
MaxSystemInfoClass = 0x52
|
||||
|
||||
# Enum _TCP_TABLE_CLASS definitions
|
||||
_TCP_TABLE_CLASS = DWORD
|
||||
TCP_TABLE_CLASS = _TCP_TABLE_CLASS
|
||||
@@ -132,6 +137,7 @@ TCP_TABLE_OWNER_PID_ALL = 0x5
|
||||
TCP_TABLE_OWNER_MODULE_LISTENER = 0x6
|
||||
TCP_TABLE_OWNER_MODULE_CONNECTIONS = 0x7
|
||||
TCP_TABLE_OWNER_MODULE_ALL = 0x8
|
||||
|
||||
# Enum _UDP_TABLE_CLASS definitions
|
||||
_UDP_TABLE_CLASS = DWORD
|
||||
UDP_TABLE_CLASS = _UDP_TABLE_CLASS
|
||||
@@ -139,6 +145,7 @@ UDP_TABLE_CLASS = _UDP_TABLE_CLASS
|
||||
UDP_TABLE_BASIC = 0x0
|
||||
UDP_TABLE_OWNER_PID = 0x1
|
||||
UDP_TABLE_OWNER_MODULE = 0x2
|
||||
|
||||
# Enum _MIB_TCP_STATE definitions
|
||||
_MIB_TCP_STATE = DWORD
|
||||
MIB_TCP_STATE = _MIB_TCP_STATE
|
||||
@@ -155,6 +162,55 @@ MIB_TCP_STATE_CLOSING = 0x9
|
||||
MIB_TCP_STATE_LAST_ACK = 0xa
|
||||
MIB_TCP_STATE_TIME_WAIT = 0xb
|
||||
MIB_TCP_STATE_DELETE_TCB = 0xc
|
||||
|
||||
# Enum _TOKEN_INFORMATION_CLASS definitions
|
||||
_TOKEN_INFORMATION_CLASS = DWORD
|
||||
TOKEN_INFORMATION_CLASS = _TOKEN_INFORMATION_CLASS
|
||||
PTOKEN_INFORMATION_CLASS = POINTER(_TOKEN_INFORMATION_CLASS)
|
||||
|
||||
TokenInvalid = 0x0
|
||||
TokenUser = 0x1
|
||||
TokenGroups = 0x2
|
||||
TokenPrivileges = 0x3
|
||||
TokenOwner = 0x4
|
||||
TokenPrimaryGroup = 0x5
|
||||
TokenDefaultDacl = 0x6
|
||||
TokenSource = 0x7
|
||||
TokenType = 0x8
|
||||
TokenImpersonationLevel = 0x9
|
||||
TokenStatistics = 0xa
|
||||
TokenRestrictedSids = 0xb
|
||||
TokenSessionId = 0xc
|
||||
TokenGroupsAndPrivileges = 0xd
|
||||
TokenSessionReference = 0xe
|
||||
TokenSandBoxInert = 0xf
|
||||
TokenAuditPolicy = 0x10
|
||||
TokenOrigin = 0x11
|
||||
TokenElevationType = 0x12
|
||||
TokenLinkedToken = 0x13
|
||||
TokenElevation = 0x14
|
||||
TokenHasRestrictions = 0x15
|
||||
TokenAccessInformation = 0x16
|
||||
TokenVirtualizationAllowed = 0x17
|
||||
TokenVirtualizationEnabled = 0x18
|
||||
TokenIntegrityLevel = 0x19
|
||||
TokenUIAccess = 0x1a
|
||||
TokenMandatoryPolicy = 0x1b
|
||||
TokenLogonSid = 0x1c
|
||||
TokenIsAppContainer = 0x1d
|
||||
TokenCapabilities = 0x1e
|
||||
TokenAppContainerSid = 0x1f
|
||||
TokenAppContainerNumber = 0x20
|
||||
TokenUserClaimAttributes = 0x21
|
||||
TokenDeviceClaimAttributes = 0x22
|
||||
TokenRestrictedUserClaimAttributes = 0x23
|
||||
TokenRestrictedDeviceClaimAttributes = 0x24
|
||||
TokenDeviceGroups = 0x25
|
||||
TokenRestrictedDeviceGroups = 0x26
|
||||
TokenSecurityAttributes = 0x27
|
||||
TokenIsRestricted = 0x28
|
||||
MaxTokenInfoClass = 0x29
|
||||
|
||||
# Enum _IMAGEHLP_SYMBOL_TYPE_INFO definitions
|
||||
_IMAGEHLP_SYMBOL_TYPE_INFO = DWORD
|
||||
IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO
|
||||
@@ -193,6 +249,7 @@ TI_GET_VIRTUALBASEDISPINDEX = 0x1e
|
||||
TI_GET_IS_REFERENCE = 0x1f
|
||||
TI_GET_INDIRECTVIRTUALBASECLASS = 0x20
|
||||
IMAGEHLP_SYMBOL_TYPE_INFO_MAX = 0x21
|
||||
|
||||
# Struct _LIST_ENTRY definitions
|
||||
# Self referencing struct tricks
|
||||
class _LIST_ENTRY(Structure): pass
|
||||
@@ -773,6 +830,14 @@ class _TOKEN_PRIVILEGES(Structure):
|
||||
TOKEN_PRIVILEGES = _TOKEN_PRIVILEGES
|
||||
PTOKEN_PRIVILEGES = POINTER(_TOKEN_PRIVILEGES)
|
||||
|
||||
# Struct _TOKEN_ELEVATION definitions
|
||||
class _TOKEN_ELEVATION(Structure):
|
||||
_fields_ = [
|
||||
("TokenIsElevated", DWORD),
|
||||
]
|
||||
TOKEN_ELEVATION = _TOKEN_ELEVATION
|
||||
PTOKEN_ELEVATION = POINTER(_TOKEN_ELEVATION)
|
||||
|
||||
# Struct _OSVERSIONINFOA definitions
|
||||
class _OSVERSIONINFOA(Structure):
|
||||
_fields_ = [
|
||||
|
||||
@@ -398,6 +398,36 @@ def AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges=False, NewState=Need
|
||||
BufferLength = ctypes.sizeof(NewState)
|
||||
return AdjustTokenPrivileges.ctypes_function(TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength)
|
||||
|
||||
# Registry stuff
|
||||
|
||||
@Advapi32Proxy('GetTokenInformation')
|
||||
def GetTokenInformation(TokenHandle=NeededParameter, TokenInformationClass=NeededParameter, TokenInformation=None, TokenInformationLength=0, ReturnLength=None):
|
||||
if ReturnLength is None:
|
||||
ReturnLength = ctypes.byref(DWORD())
|
||||
return GetTokenInformation.ctypes_function(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength)
|
||||
|
||||
@Advapi32Proxy('RegOpenKeyExA')
|
||||
def RegOpenKeyExA(hKey, lpSubKey, ulOptions, samDesired, phkResult):
|
||||
return RegOpenKeyExA.ctypes_function(hKey, lpSubKey, ulOptions, samDesired, phkResult)
|
||||
|
||||
# TODO: default values? which ones ?
|
||||
|
||||
@Advapi32Proxy('RegOpenKeyExW')
|
||||
def RegOpenKeyExW(hKey, lpSubKey, ulOptions, samDesired, phkResult):
|
||||
return RegOpenKeyExW.ctypes_function(hKey, lpSubKey, ulOptions, samDesired, phkResult)
|
||||
|
||||
@Advapi32Proxy('RegGetValueA')
|
||||
def RegGetValueA(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData):
|
||||
return RegGetValueA.ctypes_function(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData)
|
||||
|
||||
@Advapi32Proxy('RegGetValueW')
|
||||
def RegGetValueW(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData):
|
||||
return RegGetValueW.ctypes_function(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData)
|
||||
|
||||
@Advapi32Proxy('RegCloseKey')
|
||||
def RegCloseKey(hKey):
|
||||
return RegCloseKey.ctypes_function(hKey)
|
||||
|
||||
|
||||
###### Iphlpapi (network list and stuff) #######
|
||||
|
||||
|
||||
Reference in New Issue
Block a user