From 1422db08aed6b8b988af0aaa80bcec538c369c3d Mon Sep 17 00:00:00 2001 From: Clement Rouault Date: Tue, 22 Mar 2016 13:30:44 +0100 Subject: [PATCH] More winproxy functions --- ctypes_generation/generate.py | 1 + ctypes_generation/windef.txt | 103 ++++++++++++++++++++++++++++ ctypes_generation/winfunc.txt | 72 +++++++++++++++++++ ctypes_generation/winstruct.txt | 17 +++++ windows/generated_def/windef.py | 103 +++++++++++++++++++++++++++- windows/generated_def/winfuncs.py | 46 ++++++++++++- windows/generated_def/winstructs.py | 29 +++++++- windows/winproxy.py | 60 +++++++++++++++- 8 files changed, 424 insertions(+), 7 deletions(-) diff --git a/ctypes_generation/generate.py b/ctypes_generation/generate.py index 55df1af..79aae1f 100644 --- a/ctypes_generation/generate.py +++ b/ctypes_generation/generate.py @@ -43,6 +43,7 @@ TYPE_EQUIVALENCE = [ ('PLARGE_INTEGER', 'POINTER(LARGE_INTEGER)'), ('DWORD64', 'ULONG64'), ('PULONG64', 'POINTER(ULONG64)'), + ('PUINT', 'POINTER(UINT)'), ('PHANDLE', 'POINTER(HANDLE)'), ('HKEY', 'HANDLE'), ('HCATADMIN', 'HANDLE'), diff --git a/ctypes_generation/windef.txt b/ctypes_generation/windef.txt index 517cf09..d3068f4 100644 --- a/ctypes_generation/windef.txt +++ b/ctypes_generation/windef.txt @@ -765,3 +765,106 @@ #define DUPLICATE_CLOSE_SOURCE 0x00000001 #define DUPLICATE_SAME_ACCESS 0x00000002 + +#define VER_NT_WORKSTATION 0x0000001 +#define VER_NT_DOMAIN_CONTROLLER 0x0000002 +#define VER_NT_SERVER 0x0000003 + +#define SM_CXSCREEN 0 +#define SM_CYSCREEN 1 +#define SM_CXVSCROLL 2 +#define SM_CYHSCROLL 3 +#define SM_CYCAPTION 4 +#define SM_CXBORDER 5 +#define SM_CYBORDER 6 +#define SM_CXDLGFRAME 7 +#define SM_CYDLGFRAME 8 +#define SM_CYVTHUMB 9 +#define SM_CXHTHUMB 10 +#define SM_CXICON 11 +#define SM_CYICON 12 +#define SM_CXCURSOR 13 +#define SM_CYCURSOR 14 +#define SM_CYMENU 15 +#define SM_CXFULLSCREEN 16 +#define SM_CYFULLSCREEN 17 +#define SM_CYKANJIWINDOW 18 +#define SM_MOUSEPRESENT 19 +#define SM_CYVSCROLL 20 +#define SM_CXHSCROLL 21 +#define SM_DEBUG 22 +#define SM_SWAPBUTTON 23 +#define SM_RESERVED1 24 +#define SM_RESERVED2 25 +#define SM_RESERVED3 26 +#define SM_RESERVED4 27 +#define SM_CXMIN 28 +#define SM_CYMIN 29 +#define SM_CXSIZE 30 +#define SM_CYSIZE 31 +#define SM_CXFRAME 32 +#define SM_CYFRAME 33 +#define SM_CXMINTRACK 34 +#define SM_CYMINTRACK 35 +#define SM_CXDOUBLECLK 36 +#define SM_CYDOUBLECLK 37 +#define SM_CXICONSPACING 38 +#define SM_CYICONSPACING 39 +#define SM_MENUDROPALIGNMENT 40 +#define SM_PENWINDOWS 41 +#define SM_DBCSENABLED 42 +#define SM_CMOUSEBUTTONS 43 +#define SM_CXFIXEDFRAME SM_CXDLGFRAME +#define SM_CYFIXEDFRAME SM_CYDLGFRAME +#define SM_CXSIZEFRAME SM_CXFRAME +#define SM_CYSIZEFRAME SM_CYFRAME +#define SM_SECURE 44 +#define SM_CXEDGE 45 +#define SM_CYEDGE 46 +#define SM_CXMINSPACING 47 +#define SM_CYMINSPACING 48 +#define SM_CXSMICON 49 +#define SM_CYSMICON 50 +#define SM_CYSMCAPTION 51 +#define SM_CXSMSIZE 52 +#define SM_CYSMSIZE 53 +#define SM_CXMENUSIZE 54 +#define SM_CYMENUSIZE 55 +#define SM_ARRANGE 56 +#define SM_CXMINIMIZED 57 +#define SM_CYMINIMIZED 58 +#define SM_CXMAXTRACK 59 +#define SM_CYMAXTRACK 60 +#define SM_CXMAXIMIZED 61 +#define SM_CYMAXIMIZED 62 +#define SM_NETWORK 63 +#define SM_CLEANBOOT 67 +#define SM_CXDRAG 68 +#define SM_CYDRAG 69 +#define SM_SHOWSOUNDS 70 +#define SM_CXMENUCHECK 71 +#define SM_CYMENUCHECK 72 +#define SM_SLOWMACHINE 73 +#define SM_MIDEASTENABLED 74 +#define SM_MOUSEWHEELPRESENT 75 +#define SM_XVIRTUALSCREEN 76 +#define SM_YVIRTUALSCREEN 77 +#define SM_CXVIRTUALSCREEN 78 +#define SM_CYVIRTUALSCREEN 79 +#define SM_CMONITORS 80 +#define SM_SAMEDISPLAYFORMAT 81 +#define SM_IMMENABLED 82 +#define SM_CXFOCUSBORDER 83 +#define SM_CYFOCUSBORDER 84 +#define SM_TABLETPC 86 +#define SM_MEDIACENTER 87 +#define SM_STARTER 88 +#define SM_SERVERR2 89 +#define SM_MOUSEHORIZONTALWHEELPRESENT 91 +#define SM_CXPADDEDBORDER 92 +#define SM_DIGITIZER 94 +#define SM_MAXIMUMTOUCHES 95 +#define SM_REMOTESESSION 0x1000 +#define SM_SHUTTINGDOWN 0x2000 +#define SM_REMOTECONTROL 0x2001 +#define SM_CARETBLINKINGENABLED 0x2002 \ No newline at end of file diff --git a/ctypes_generation/winfunc.txt b/ctypes_generation/winfunc.txt index 8ea8625..ef147a5 100644 --- a/ctypes_generation/winfunc.txt +++ b/ctypes_generation/winfunc.txt @@ -1083,4 +1083,76 @@ DWORD WINAPI GetProcessImageFileNameW( _In_ HANDLE hProcess, _Out_ LPWSTR lpImageFileName, _In_ DWORD nSize +); + +BOOL WINAPI GetFileVersionInfoA( + _In_ LPCSTR lptstrFilename, + _Reserved_ DWORD dwHandle, + _In_ DWORD dwLen, + _Out_ LPVOID lpData +); + +BOOL WINAPI GetFileVersionInfoW( + _In_ LPWSTR lptstrFilename, + _Reserved_ DWORD dwHandle, + _In_ DWORD dwLen, + _Out_ LPVOID lpData +); + +DWORD WINAPI GetFileVersionInfoSizeA( + _In_ LPCSTR lptstrFilename, + _Out_opt_ LPDWORD lpdwHandle +); + +DWORD WINAPI GetFileVersionInfoSizeW( + _In_ LPWSTR lptstrFilename, + _Out_opt_ LPDWORD lpdwHandle +); + +BOOL WINAPI VerQueryValueA( + _In_ LPCVOID pBlock, + _In_ LPCSTR lpSubBlock, + _Out_ LPVOID *lplpBuffer, + _Out_ PUINT puLen +); + +BOOL WINAPI VerQueryValueW( + _In_ LPCVOID pBlock, + _In_ LPWSTR lpSubBlock, + _Out_ LPVOID *lplpBuffer, + _Out_ PUINT puLen +); + +INT WINAPI GetSystemMetrics( + _In_ INT nIndex +); + +BOOL WINAPI GetComputerNameA( + _Out_ LPCSTR lpBuffer, + _Inout_ LPDWORD lpnSize +); + +BOOL WINAPI GetComputerNameW( + _Out_ LPWSTR lpBuffer, + _Inout_ LPDWORD lpnSize +); + +BOOL WINAPI LookupAccountSidA( + _In_opt_ LPCSTR lpSystemName, + _In_ PSID lpSid, + _Out_opt_ LPCSTR lpName, + _Inout_ LPDWORD cchName, + _Out_opt_ LPCSTR lpReferencedDomainName, + _Inout_ LPDWORD cchReferencedDomainName, + _Out_ PSID_NAME_USE peUse +); + +BOOL WINAPI LookupAccountSidW( + _In_opt_ LPWSTR lpSystemName, + _In_ PSID lpSid, + _Out_opt_ LPWSTR lpName, + _Inout_ LPDWORD cchName, + _Out_opt_ LPWSTR lpReferencedDomainName, + _Inout_ LPDWORD cchReferencedDomainName, + _Out_ PSID_NAME_USE peUse ); \ No newline at end of file diff --git a/ctypes_generation/winstruct.txt b/ctypes_generation/winstruct.txt index 1ca2205..0646d0b 100644 --- a/ctypes_generation/winstruct.txt +++ b/ctypes_generation/winstruct.txt @@ -350,6 +350,18 @@ typedef enum _OBJECT_INFORMATION_CLASS { ObjectTypeInformation = 2 } OBJECT_INFORMATION_CLASS; +typedef enum _SID_NAME_USE { + SidTypeUser = 1, + SidTypeGroup = 2, + SidTypeDomain = 3, + SidTypeAlias = 4, + SidTypeWellKnownGroup = 5, + SidTypeDeletedAccount = 6, + SidTypeInvalid = 7, + SidTypeUnknown = 8, + SidTypeComputer = 9, + SidTypeLabel = 10 +} SID_NAME_USE, *PSID_NAME_USE; typedef struct _LDR_DATA_TABLE_ENTRY { PVOID Reserved1[2]; @@ -831,6 +843,11 @@ typedef struct _TOKEN_MANDATORY_LABEL { } TOKEN_MANDATORY_LABEL, *PTOKEN_MANDATORY_LABEL; +typedef struct _TOKEN_USER { + SID_AND_ATTRIBUTES User; +} TOKEN_USER, *PTOKEN_USER; + + typedef struct _OSVERSIONINFOA { DWORD dwOSVersionInfoSize; diff --git a/windows/generated_def/windef.py b/windows/generated_def/windef.py index ff8ec02..0a48eb9 100644 --- a/windows/generated_def/windef.py +++ b/windows/generated_def/windef.py @@ -2475,4 +2475,105 @@ DRIVE_REMOTE = Flag("DRIVE_REMOTE", 4) DRIVE_CDROM = Flag("DRIVE_CDROM", 5) DRIVE_RAMDISK = Flag("DRIVE_RAMDISK", 6) DUPLICATE_CLOSE_SOURCE = Flag("DUPLICATE_CLOSE_SOURCE", 0x00000001) -DUPLICATE_SAME_ACCESS = Flag("DUPLICATE_SAME_ACCESS", 0x00000002) \ No newline at end of file +DUPLICATE_SAME_ACCESS = Flag("DUPLICATE_SAME_ACCESS", 0x00000002) +VER_NT_WORKSTATION = Flag("VER_NT_WORKSTATION", 0x0000001) +VER_NT_DOMAIN_CONTROLLER = Flag("VER_NT_DOMAIN_CONTROLLER", 0x0000002) +VER_NT_SERVER = Flag("VER_NT_SERVER", 0x0000003) +SM_CXSCREEN = Flag("SM_CXSCREEN", 0) +SM_CYSCREEN = Flag("SM_CYSCREEN", 1) +SM_CXVSCROLL = Flag("SM_CXVSCROLL", 2) +SM_CYHSCROLL = Flag("SM_CYHSCROLL", 3) +SM_CYCAPTION = Flag("SM_CYCAPTION", 4) +SM_CXBORDER = Flag("SM_CXBORDER", 5) +SM_CYBORDER = Flag("SM_CYBORDER", 6) +SM_CXDLGFRAME = Flag("SM_CXDLGFRAME", 7) +SM_CYDLGFRAME = Flag("SM_CYDLGFRAME", 8) +SM_CYVTHUMB = Flag("SM_CYVTHUMB", 9) +SM_CXHTHUMB = Flag("SM_CXHTHUMB", 10) +SM_CXICON = Flag("SM_CXICON", 11) +SM_CYICON = Flag("SM_CYICON", 12) +SM_CXCURSOR = Flag("SM_CXCURSOR", 13) +SM_CYCURSOR = Flag("SM_CYCURSOR", 14) +SM_CYMENU = Flag("SM_CYMENU", 15) +SM_CXFULLSCREEN = Flag("SM_CXFULLSCREEN", 16) +SM_CYFULLSCREEN = Flag("SM_CYFULLSCREEN", 17) +SM_CYKANJIWINDOW = Flag("SM_CYKANJIWINDOW", 18) +SM_MOUSEPRESENT = Flag("SM_MOUSEPRESENT", 19) +SM_CYVSCROLL = Flag("SM_CYVSCROLL", 20) +SM_CXHSCROLL = Flag("SM_CXHSCROLL", 21) +SM_DEBUG = Flag("SM_DEBUG", 22) +SM_SWAPBUTTON = Flag("SM_SWAPBUTTON", 23) +SM_RESERVED1 = Flag("SM_RESERVED1", 24) +SM_RESERVED2 = Flag("SM_RESERVED2", 25) +SM_RESERVED3 = Flag("SM_RESERVED3", 26) +SM_RESERVED4 = Flag("SM_RESERVED4", 27) +SM_CXMIN = Flag("SM_CXMIN", 28) +SM_CYMIN = Flag("SM_CYMIN", 29) +SM_CXSIZE = Flag("SM_CXSIZE", 30) +SM_CYSIZE = Flag("SM_CYSIZE", 31) +SM_CXFRAME = Flag("SM_CXFRAME", 32) +SM_CYFRAME = Flag("SM_CYFRAME", 33) +SM_CXMINTRACK = Flag("SM_CXMINTRACK", 34) +SM_CYMINTRACK = Flag("SM_CYMINTRACK", 35) +SM_CXDOUBLECLK = Flag("SM_CXDOUBLECLK", 36) +SM_CYDOUBLECLK = Flag("SM_CYDOUBLECLK", 37) +SM_CXICONSPACING = Flag("SM_CXICONSPACING", 38) +SM_CYICONSPACING = Flag("SM_CYICONSPACING", 39) +SM_MENUDROPALIGNMENT = Flag("SM_MENUDROPALIGNMENT", 40) +SM_PENWINDOWS = Flag("SM_PENWINDOWS", 41) +SM_DBCSENABLED = Flag("SM_DBCSENABLED", 42) +SM_CMOUSEBUTTONS = Flag("SM_CMOUSEBUTTONS", 43) +SM_CXFIXEDFRAME = Flag("SM_CXFIXEDFRAME", SM_CXDLGFRAME) +SM_CYFIXEDFRAME = Flag("SM_CYFIXEDFRAME", SM_CYDLGFRAME) +SM_CXSIZEFRAME = Flag("SM_CXSIZEFRAME", SM_CXFRAME) +SM_CYSIZEFRAME = Flag("SM_CYSIZEFRAME", SM_CYFRAME) +SM_SECURE = Flag("SM_SECURE", 44) +SM_CXEDGE = Flag("SM_CXEDGE", 45) +SM_CYEDGE = Flag("SM_CYEDGE", 46) +SM_CXMINSPACING = Flag("SM_CXMINSPACING", 47) +SM_CYMINSPACING = Flag("SM_CYMINSPACING", 48) +SM_CXSMICON = Flag("SM_CXSMICON", 49) +SM_CYSMICON = Flag("SM_CYSMICON", 50) +SM_CYSMCAPTION = Flag("SM_CYSMCAPTION", 51) +SM_CXSMSIZE = Flag("SM_CXSMSIZE", 52) +SM_CYSMSIZE = Flag("SM_CYSMSIZE", 53) +SM_CXMENUSIZE = Flag("SM_CXMENUSIZE", 54) +SM_CYMENUSIZE = Flag("SM_CYMENUSIZE", 55) +SM_ARRANGE = Flag("SM_ARRANGE", 56) +SM_CXMINIMIZED = Flag("SM_CXMINIMIZED", 57) +SM_CYMINIMIZED = Flag("SM_CYMINIMIZED", 58) +SM_CXMAXTRACK = Flag("SM_CXMAXTRACK", 59) +SM_CYMAXTRACK = Flag("SM_CYMAXTRACK", 60) +SM_CXMAXIMIZED = Flag("SM_CXMAXIMIZED", 61) +SM_CYMAXIMIZED = Flag("SM_CYMAXIMIZED", 62) +SM_NETWORK = Flag("SM_NETWORK", 63) +SM_CLEANBOOT = Flag("SM_CLEANBOOT", 67) +SM_CXDRAG = Flag("SM_CXDRAG", 68) +SM_CYDRAG = Flag("SM_CYDRAG", 69) +SM_SHOWSOUNDS = Flag("SM_SHOWSOUNDS", 70) +SM_CXMENUCHECK = Flag("SM_CXMENUCHECK", 71) +SM_CYMENUCHECK = Flag("SM_CYMENUCHECK", 72) +SM_SLOWMACHINE = Flag("SM_SLOWMACHINE", 73) +SM_MIDEASTENABLED = Flag("SM_MIDEASTENABLED", 74) +SM_MOUSEWHEELPRESENT = Flag("SM_MOUSEWHEELPRESENT", 75) +SM_XVIRTUALSCREEN = Flag("SM_XVIRTUALSCREEN", 76) +SM_YVIRTUALSCREEN = Flag("SM_YVIRTUALSCREEN", 77) +SM_CXVIRTUALSCREEN = Flag("SM_CXVIRTUALSCREEN", 78) +SM_CYVIRTUALSCREEN = Flag("SM_CYVIRTUALSCREEN", 79) +SM_CMONITORS = Flag("SM_CMONITORS", 80) +SM_SAMEDISPLAYFORMAT = Flag("SM_SAMEDISPLAYFORMAT", 81) +SM_IMMENABLED = Flag("SM_IMMENABLED", 82) +SM_CXFOCUSBORDER = Flag("SM_CXFOCUSBORDER", 83) +SM_CYFOCUSBORDER = Flag("SM_CYFOCUSBORDER", 84) +SM_TABLETPC = Flag("SM_TABLETPC", 86) +SM_MEDIACENTER = Flag("SM_MEDIACENTER", 87) +SM_STARTER = Flag("SM_STARTER", 88) +SM_SERVERR2 = Flag("SM_SERVERR2", 89) +SM_MOUSEHORIZONTALWHEELPRESENT = Flag("SM_MOUSEHORIZONTALWHEELPRESENT", 91) +SM_CXPADDEDBORDER = Flag("SM_CXPADDEDBORDER", 92) +SM_DIGITIZER = Flag("SM_DIGITIZER", 94) +SM_MAXIMUMTOUCHES = Flag("SM_MAXIMUMTOUCHES", 95) +SM_REMOTESESSION = Flag("SM_REMOTESESSION", 0x1000) +SM_SHUTTINGDOWN = Flag("SM_SHUTTINGDOWN", 0x2000) +SM_REMOTECONTROL = Flag("SM_REMOTECONTROL", 0x2001) +SM_CARETBLINKINGENABLED = Flag("SM_CARETBLINKINGENABLED", 0x2002) \ No newline at end of file diff --git a/windows/generated_def/winfuncs.py b/windows/generated_def/winfuncs.py index ceadc5c..a407332 100644 --- a/windows/generated_def/winfuncs.py +++ b/windows/generated_def/winfuncs.py @@ -3,7 +3,7 @@ from ctypes import * from ctypes.wintypes import * from .winstructs import * -functions = ['ExitProcess', 'TerminateProcess', 'GetLastError', 'GetCurrentProcess', 'CreateFileA', 'CreateFileW', 'LdrLoadDll', 'NtQuerySystemInformation', 'NtQueryInformationProcess', 'NtQueryVirtualMemory', 'NtCreateThreadEx', 'NtQueryInformationThread', 'GetExitCodeThread', 'GetExitCodeProcess', 'VirtualAlloc', 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualProtect', 'VirtualQuery', 'VirtualQueryEx', 'GetModuleFileNameA', 'GetModuleFileNameW', 'CreateThread', 'CreateRemoteThread', 'VirtualProtect', 'CreateProcessA', 'CreateProcessW', 'GetThreadContext', 'NtGetContextThread', 'SetThreadContext', 'NtSetContextThread', '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', 'FreeConsole', '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', 'Wow64DisableWow64FsRedirection', 'Wow64RevertWow64FsRedirection', 'Wow64EnableWow64FsRedirection', 'Wow64GetThreadContext', 'SetConsoleCtrlHandler', 'WinVerifyTrust', 'GlobalAlloc', 'GlobalFree', 'GlobalUnlock', 'GlobalLock', 'OpenClipboard', 'EmptyClipboard', 'CloseClipboard', 'SetClipboardData', 'GetClipboardData', 'EnumClipboardFormats', 'GetClipboardFormatNameA', 'GetClipboardFormatNameW', 'WinVerifyTrust', 'OpenProcessToken', 'OpenThreadToken', 'GetTokenInformation', 'SetTokenInformation', 'GetSidIdentifierAuthority', 'GetSidSubAuthority', 'GetSidSubAuthorityCount', 'DebugBreak', 'WaitForDebugEvent', 'ContinueDebugEvent', 'DebugActiveProcess', 'DebugActiveProcessStop', 'DebugSetProcessKillOnExit', 'DebugBreakProcess', 'GetProcessId', 'Wow64SetThreadContext', 'GetMappedFileNameW', 'GetMappedFileNameA', 'RtlInitString', 'RtlInitUnicodeString', 'RtlAnsiStringToUnicodeString', 'OpenEventA', 'OpenEventW', 'NtOpenEvent', 'NtAlpcConnectPort', 'NtAlpcSendWaitReceivePort', 'lstrcmpA', 'lstrcmpW', 'CreateFileMappingA', 'CreateFileMappingW', 'MapViewOfFile', 'OpenSCManagerA', 'OpenSCManagerW', 'EnumServicesStatusExA', 'EnumServicesStatusExW', 'EnumWindows', 'GetWindowTextA', 'GetWindowTextW', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW', 'CryptCATAdminCalcHashFromFileHandle', 'CryptCATAdminEnumCatalogFromHash', 'CryptCATAdminAcquireContext', 'CryptCATCatalogInfoFromContext', 'CryptCATAdminReleaseCatalogContext', 'CryptCATAdminReleaseContext', 'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetVolumeInformationA', 'GetVolumeInformationW', 'GetVolumeNameForVolumeMountPointA', 'GetVolumeNameForVolumeMountPointW', 'GetDriveTypeA', 'GetDriveTypeW', 'QueryDosDeviceA', 'QueryDosDeviceW', 'NtQueryObject', 'DuplicateHandle', 'GetModuleBaseNameA', 'GetModuleBaseNameW', 'GetProcessImageFileNameA', 'GetProcessImageFileNameW'] +functions = ['ExitProcess', 'TerminateProcess', 'GetLastError', 'GetCurrentProcess', 'CreateFileA', 'CreateFileW', 'LdrLoadDll', 'NtQuerySystemInformation', 'NtQueryInformationProcess', 'NtQueryVirtualMemory', 'NtCreateThreadEx', 'NtQueryInformationThread', 'GetExitCodeThread', 'GetExitCodeProcess', 'VirtualAlloc', 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualProtect', 'VirtualQuery', 'VirtualQueryEx', 'GetModuleFileNameA', 'GetModuleFileNameW', 'CreateThread', 'CreateRemoteThread', 'VirtualProtect', 'CreateProcessA', 'CreateProcessW', 'GetThreadContext', 'NtGetContextThread', 'SetThreadContext', 'NtSetContextThread', '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', 'FreeConsole', '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', 'Wow64DisableWow64FsRedirection', 'Wow64RevertWow64FsRedirection', 'Wow64EnableWow64FsRedirection', 'Wow64GetThreadContext', 'SetConsoleCtrlHandler', 'WinVerifyTrust', 'GlobalAlloc', 'GlobalFree', 'GlobalUnlock', 'GlobalLock', 'OpenClipboard', 'EmptyClipboard', 'CloseClipboard', 'SetClipboardData', 'GetClipboardData', 'EnumClipboardFormats', 'GetClipboardFormatNameA', 'GetClipboardFormatNameW', 'WinVerifyTrust', 'OpenProcessToken', 'OpenThreadToken', 'GetTokenInformation', 'SetTokenInformation', 'GetSidIdentifierAuthority', 'GetSidSubAuthority', 'GetSidSubAuthorityCount', 'DebugBreak', 'WaitForDebugEvent', 'ContinueDebugEvent', 'DebugActiveProcess', 'DebugActiveProcessStop', 'DebugSetProcessKillOnExit', 'DebugBreakProcess', 'GetProcessId', 'Wow64SetThreadContext', 'GetMappedFileNameW', 'GetMappedFileNameA', 'RtlInitString', 'RtlInitUnicodeString', 'RtlAnsiStringToUnicodeString', 'OpenEventA', 'OpenEventW', 'NtOpenEvent', 'NtAlpcConnectPort', 'NtAlpcSendWaitReceivePort', 'lstrcmpA', 'lstrcmpW', 'CreateFileMappingA', 'CreateFileMappingW', 'MapViewOfFile', 'OpenSCManagerA', 'OpenSCManagerW', 'EnumServicesStatusExA', 'EnumServicesStatusExW', 'EnumWindows', 'GetWindowTextA', 'GetWindowTextW', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW', 'CryptCATAdminCalcHashFromFileHandle', 'CryptCATAdminEnumCatalogFromHash', 'CryptCATAdminAcquireContext', 'CryptCATCatalogInfoFromContext', 'CryptCATAdminReleaseCatalogContext', 'CryptCATAdminReleaseContext', 'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetVolumeInformationA', 'GetVolumeInformationW', 'GetVolumeNameForVolumeMountPointA', 'GetVolumeNameForVolumeMountPointW', 'GetDriveTypeA', 'GetDriveTypeW', 'QueryDosDeviceA', 'QueryDosDeviceW', 'NtQueryObject', 'DuplicateHandle', 'GetModuleBaseNameA', 'GetModuleBaseNameW', 'GetProcessImageFileNameA', 'GetProcessImageFileNameW', 'GetFileVersionInfoA', 'GetFileVersionInfoW', 'GetFileVersionInfoSizeA', 'GetFileVersionInfoSizeW', 'VerQueryValueA', 'VerQueryValueW', 'GetSystemMetrics', 'GetComputerNameA', 'GetComputerNameW', 'LookupAccountSidA', 'LookupAccountSidW'] # ExitProcess(uExitCode): ExitProcessPrototype = WINFUNCTYPE(VOID, UINT) @@ -709,3 +709,47 @@ GetProcessImageFileNameAParams = ((1, 'hProcess'), (1, 'lpImageFileName'), (1, ' GetProcessImageFileNameWPrototype = WINFUNCTYPE(DWORD, HANDLE, LPWSTR, DWORD) GetProcessImageFileNameWParams = ((1, 'hProcess'), (1, 'lpImageFileName'), (1, 'nSize')) +# GetFileVersionInfoA(lptstrFilename, dwHandle, dwLen, lpData): +GetFileVersionInfoAPrototype = WINFUNCTYPE(BOOL, LPCSTR, DWORD, DWORD, LPVOID) +GetFileVersionInfoAParams = ((1, 'lptstrFilename'), (1, 'dwHandle'), (1, 'dwLen'), (1, 'lpData')) + +# GetFileVersionInfoW(lptstrFilename, dwHandle, dwLen, lpData): +GetFileVersionInfoWPrototype = WINFUNCTYPE(BOOL, LPWSTR, DWORD, DWORD, LPVOID) +GetFileVersionInfoWParams = ((1, 'lptstrFilename'), (1, 'dwHandle'), (1, 'dwLen'), (1, 'lpData')) + +# GetFileVersionInfoSizeA(lptstrFilename, lpdwHandle): +GetFileVersionInfoSizeAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPDWORD) +GetFileVersionInfoSizeAParams = ((1, 'lptstrFilename'), (1, 'lpdwHandle')) + +# GetFileVersionInfoSizeW(lptstrFilename, lpdwHandle): +GetFileVersionInfoSizeWPrototype = WINFUNCTYPE(DWORD, LPWSTR, LPDWORD) +GetFileVersionInfoSizeWParams = ((1, 'lptstrFilename'), (1, 'lpdwHandle')) + +# VerQueryValueA(pBlock, lpSubBlock, lplpBuffer, puLen): +VerQueryValueAPrototype = WINFUNCTYPE(BOOL, LPCVOID, LPCSTR, POINTER(LPVOID), PUINT) +VerQueryValueAParams = ((1, 'pBlock'), (1, 'lpSubBlock'), (1, 'lplpBuffer'), (1, 'puLen')) + +# VerQueryValueW(pBlock, lpSubBlock, lplpBuffer, puLen): +VerQueryValueWPrototype = WINFUNCTYPE(BOOL, LPCVOID, LPWSTR, POINTER(LPVOID), PUINT) +VerQueryValueWParams = ((1, 'pBlock'), (1, 'lpSubBlock'), (1, 'lplpBuffer'), (1, 'puLen')) + +# GetSystemMetrics(nIndex): +GetSystemMetricsPrototype = WINFUNCTYPE(INT, INT) +GetSystemMetricsParams = ((1, 'nIndex'),) + +# GetComputerNameA(lpBuffer, lpnSize): +GetComputerNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPDWORD) +GetComputerNameAParams = ((1, 'lpBuffer'), (1, 'lpnSize')) + +# GetComputerNameW(lpBuffer, lpnSize): +GetComputerNameWPrototype = WINFUNCTYPE(BOOL, LPWSTR, LPDWORD) +GetComputerNameWParams = ((1, 'lpBuffer'), (1, 'lpnSize')) + +# LookupAccountSidA(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): +LookupAccountSidAPrototype = WINFUNCTYPE(BOOL, LPCSTR, PSID, LPCSTR, LPDWORD, LPCSTR, LPDWORD, PSID_NAME_USE) +LookupAccountSidAParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse')) + +# LookupAccountSidW(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): +LookupAccountSidWPrototype = WINFUNCTYPE(BOOL, LPWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE) +LookupAccountSidWParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse')) + diff --git a/windows/generated_def/winstructs.py b/windows/generated_def/winstructs.py index 4cea56c..969e88c 100644 --- a/windows/generated_def/winstructs.py +++ b/windows/generated_def/winstructs.py @@ -34,6 +34,7 @@ LARGE_INTEGER = LONGLONG PLARGE_INTEGER = POINTER(LARGE_INTEGER) DWORD64 = ULONG64 PULONG64 = POINTER(ULONG64) +PUINT = POINTER(UINT) PHANDLE = POINTER(HANDLE) HKEY = HANDLE HCATADMIN = HANDLE @@ -50,9 +51,9 @@ HCRYPTMSG = PVOID PALPC_PORT_ATTRIBUTES = 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', '_MEMORY_BASIC_INFORMATION32', '_MEMORY_BASIC_INFORMATION64', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_WOW64_FLOATING_SAVE_AREA', '_WOW64_CONTEXT', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_SID_AND_ATTRIBUTES', '_TOKEN_MANDATORY_LABEL', '_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_RECORD32', '_EXCEPTION_RECORD64', '_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', '_SYSTEM_MODULE32', '_SYSTEM_MODULE64', '_SYSTEM_MODULE_INFORMATION32', '_SYSTEM_MODULE_INFORMATION64', 'tagSAFEARRAYBOUND', 'tagSAFEARRAY', '_DEBUG_BREAKPOINT_PARAMETERS', '_DEBUG_REGISTER_DESCRIPTION', '_DEBUG_STACK_FRAME', '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', '_DEBUG_LAST_EVENT_INFO_EXCEPTION', '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', '_DEBUG_SPECIFIC_FILTER_PARAMETERS', '_DEBUG_EXCEPTION_FILTER_PARAMETERS', '_GUID', '_CRYPTOAPI_BLOB', 'WINTRUST_FILE_INFO_', '_CRYPT_ATTRIBUTE', '_CTL_ENTRY', '_CRYPT_ATTRIBUTE', '_CRYPT_ATTRIBUTES', '_CRYPT_ALGORITHM_IDENTIFIER', '_CMSG_SIGNER_INFO', '_CERT_EXTENSION', '_CTL_USAGE', '_CTL_INFO', '_CTL_CONTEXT', 'WINTRUST_CATALOG_INFO_', 'WINTRUST_BLOB_INFO_', '_CRYPT_BIT_BLOB', '_CERT_PUBLIC_KEY_INFO', '_CERT_INFO', '_CERT_CONTEXT', 'WINTRUST_SGNR_INFO_', '_FILETIME', 'WINTRUST_CERT_INFO_', '_TMP_WINTRUST_UNION_TYPE', '_WINTRUST_DATA', '_PROCESS_BASIC_INFORMATION', '_JIT_DEBUG_INFO', '_SID_IDENTIFIER_AUTHORITY', '_EXCEPTION_DEBUG_INFO', '_CREATE_THREAD_DEBUG_INFO', '_CREATE_PROCESS_DEBUG_INFO', '_EXIT_THREAD_DEBUG_INFO', '_EXIT_PROCESS_DEBUG_INFO', '_LOAD_DLL_DEBUG_INFO', '_UNLOAD_DLL_DEBUG_INFO', '_OUTPUT_DEBUG_STRING_INFO', '_RIP_INFO', '_TMP_UNION_DEBUG_INFO', '_DEBUG_EVENT', '_STRING', '_OBJECT_ATTRIBUTES', '_SECURITY_QUALITY_OF_SERVICE', '_ALPC_PORT_ATTRIBUTES32', '_ALPC_PORT_ATTRIBUTES64', '_ALPC_MESSAGE_ATTRIBUTES', '_PORT_MESSAGE_TMP_UNION', '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', '_PORT_MESSAGE_TMP_UNION_U1', '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', '_PORT_MESSAGE_TMP_UNION_U2', '_PORT_MESSAGE', '_SERVICE_STATUS', '_SERVICE_STATUS_PROCESS', '_ENUM_SERVICE_STATUS_PROCESSA', '_ENUM_SERVICE_STATUS_PROCESSW', 'CATALOG_INFO_', '_SYSTEM_HANDLE', '_SYSTEM_HANDLE_INFORMATION', '__PUBLIC_OBJECT_TYPE_INFORMATION', '_PUBLIC_OBJECT_BASIC_INFORMATION'] +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', '_MEMORY_BASIC_INFORMATION32', '_MEMORY_BASIC_INFORMATION64', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_WOW64_FLOATING_SAVE_AREA', '_WOW64_CONTEXT', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_SID_AND_ATTRIBUTES', '_TOKEN_MANDATORY_LABEL', '_TOKEN_USER', '_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_RECORD32', '_EXCEPTION_RECORD64', '_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', '_SYSTEM_MODULE32', '_SYSTEM_MODULE64', '_SYSTEM_MODULE_INFORMATION32', '_SYSTEM_MODULE_INFORMATION64', 'tagSAFEARRAYBOUND', 'tagSAFEARRAY', '_DEBUG_BREAKPOINT_PARAMETERS', '_DEBUG_REGISTER_DESCRIPTION', '_DEBUG_STACK_FRAME', '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', '_DEBUG_LAST_EVENT_INFO_EXCEPTION', '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', '_DEBUG_SPECIFIC_FILTER_PARAMETERS', '_DEBUG_EXCEPTION_FILTER_PARAMETERS', '_GUID', '_CRYPTOAPI_BLOB', 'WINTRUST_FILE_INFO_', '_CRYPT_ATTRIBUTE', '_CTL_ENTRY', '_CRYPT_ATTRIBUTE', '_CRYPT_ATTRIBUTES', '_CRYPT_ALGORITHM_IDENTIFIER', '_CMSG_SIGNER_INFO', '_CERT_EXTENSION', '_CTL_USAGE', '_CTL_INFO', '_CTL_CONTEXT', 'WINTRUST_CATALOG_INFO_', 'WINTRUST_BLOB_INFO_', '_CRYPT_BIT_BLOB', '_CERT_PUBLIC_KEY_INFO', '_CERT_INFO', '_CERT_CONTEXT', 'WINTRUST_SGNR_INFO_', '_FILETIME', 'WINTRUST_CERT_INFO_', '_TMP_WINTRUST_UNION_TYPE', '_WINTRUST_DATA', '_PROCESS_BASIC_INFORMATION', '_JIT_DEBUG_INFO', '_SID_IDENTIFIER_AUTHORITY', '_EXCEPTION_DEBUG_INFO', '_CREATE_THREAD_DEBUG_INFO', '_CREATE_PROCESS_DEBUG_INFO', '_EXIT_THREAD_DEBUG_INFO', '_EXIT_PROCESS_DEBUG_INFO', '_LOAD_DLL_DEBUG_INFO', '_UNLOAD_DLL_DEBUG_INFO', '_OUTPUT_DEBUG_STRING_INFO', '_RIP_INFO', '_TMP_UNION_DEBUG_INFO', '_DEBUG_EVENT', '_STRING', '_OBJECT_ATTRIBUTES', '_SECURITY_QUALITY_OF_SERVICE', '_ALPC_PORT_ATTRIBUTES32', '_ALPC_PORT_ATTRIBUTES64', '_ALPC_MESSAGE_ATTRIBUTES', '_PORT_MESSAGE_TMP_UNION', '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', '_PORT_MESSAGE_TMP_UNION_U1', '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', '_PORT_MESSAGE_TMP_UNION_U2', '_PORT_MESSAGE', '_SERVICE_STATUS', '_SERVICE_STATUS_PROCESS', '_ENUM_SERVICE_STATUS_PROCESSA', '_ENUM_SERVICE_STATUS_PROCESSW', 'CATALOG_INFO_', '_SYSTEM_HANDLE', '_SYSTEM_HANDLE_INFORMATION', '__PUBLIC_OBJECT_TYPE_INFORMATION', '_PUBLIC_OBJECT_BASIC_INFORMATION'] -enums = ['_SYSTEM_INFORMATION_CLASS', '_MEMORY_INFORMATION_CLASS', '_THREAD_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_VARENUM', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_SECURITY_IMPERSONATION_LEVEL', '_SC_ENUM_TYPE', '_SC_STATUS_TYPE', '_OBJECT_INFORMATION_CLASS', '_IMAGEHLP_SYMBOL_TYPE_INFO', '_PROCESSINFOCLASS'] +enums = ['_SYSTEM_INFORMATION_CLASS', '_MEMORY_INFORMATION_CLASS', '_THREAD_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_VARENUM', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_SECURITY_IMPERSONATION_LEVEL', '_SC_ENUM_TYPE', '_SC_STATUS_TYPE', '_OBJECT_INFORMATION_CLASS', '_SID_NAME_USE', '_IMAGEHLP_SYMBOL_TYPE_INFO', '_PROCESSINFOCLASS'] # Enum _SYSTEM_INFORMATION_CLASS definitions _SYSTEM_INFORMATION_CLASS = DWORD @@ -346,6 +347,22 @@ ObjectBasicInformation = 0x0 ObjectNameInformation = 0x1 ObjectTypeInformation = 0x2 +# Enum _SID_NAME_USE definitions +_SID_NAME_USE = DWORD +SID_NAME_USE = _SID_NAME_USE +PSID_NAME_USE = POINTER(_SID_NAME_USE) + +SidTypeUser = 0x1 +SidTypeGroup = 0x2 +SidTypeDomain = 0x3 +SidTypeAlias = 0x4 +SidTypeWellKnownGroup = 0x5 +SidTypeDeletedAccount = 0x6 +SidTypeInvalid = 0x7 +SidTypeUnknown = 0x8 +SidTypeComputer = 0x9 +SidTypeLabel = 0xa + # Enum _IMAGEHLP_SYMBOL_TYPE_INFO definitions _IMAGEHLP_SYMBOL_TYPE_INFO = DWORD IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO @@ -1074,6 +1091,14 @@ class _TOKEN_MANDATORY_LABEL(Structure): TOKEN_MANDATORY_LABEL = _TOKEN_MANDATORY_LABEL PTOKEN_MANDATORY_LABEL = POINTER(_TOKEN_MANDATORY_LABEL) +# Struct _TOKEN_USER definitions +class _TOKEN_USER(Structure): + _fields_ = [ + ("User", SID_AND_ATTRIBUTES), + ] +PTOKEN_USER = POINTER(_TOKEN_USER) +TOKEN_USER = _TOKEN_USER + # Struct _OSVERSIONINFOA definitions class _OSVERSIONINFOA(Structure): _fields_ = [ diff --git a/windows/winproxy.py b/windows/winproxy.py index 775f0b3..f94211b 100644 --- a/windows/winproxy.py +++ b/windows/winproxy.py @@ -174,6 +174,10 @@ class User32Proxy(ApiProxy): APIDLL = "user32" default_error_check = staticmethod(kernel32_error_check) +class VersionProxy(ApiProxy): + APIDLL = "version" + default_error_check = staticmethod(kernel32_error_check) + class OptionalExport(object): """used 'around' a Proxy decorator Should be used for export that are not available everywhere (ntdll internals | 32/64 bits stuff) @@ -266,6 +270,10 @@ GetExitCodeProcess = TransparentKernel32Proxy("GetExitCodeProcess") GetProcessId = TransparentKernel32Proxy("GetProcessId") lstrcmpA = TransparentKernel32Proxy("lstrcmpA") lstrcmpW = TransparentKernel32Proxy("lstrcmpW") +GetVersionExA = TransparentKernel32Proxy("GetVersionExA") +GetVersionExW = TransparentKernel32Proxy("GetVersionExW") +GetComputerNameA = TransparentKernel32Proxy("GetComputerNameA") +GetComputerNameW = TransparentKernel32Proxy("GetComputerNameW") Wow64DisableWow64FsRedirection = OptionalExport(TransparentKernel32Proxy)("Wow64DisableWow64FsRedirection") @@ -733,6 +741,15 @@ def AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges=False, NewState=Need return AdjustTokenPrivileges.ctypes_function(TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength) +@Advapi32Proxy('LookupAccountSidA') +def LookupAccountSidA(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): + return LookupAccountSidA.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse) + + +@Advapi32Proxy('LookupAccountSidW') +def LookupAccountSidW(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): + return LookupAccountSidW.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse) + # Token stuff GetSidSubAuthorityCount = TransparentAdvapi32Proxy("GetSidSubAuthorityCount") @@ -853,9 +870,6 @@ def CryptCATAdminReleaseContext(hCatAdmin, dwFlags): return CryptCATAdminReleaseContext.ctypes_function(hCatAdmin, dwFlags) - - - # ## User32 stuff ## # EnumWindows = TransparentUser32Proxy('EnumWindows') @@ -863,3 +877,43 @@ GetWindowTextA = TransparentUser32Proxy('GetWindowTextA', no_error_check) GetWindowTextW = TransparentUser32Proxy('GetWindowTextW', no_error_check) GetWindowModuleFileNameA = TransparentUser32Proxy('GetWindowModuleFileNameA', no_error_check) GetWindowModuleFileNameW = TransparentUser32Proxy('GetWindowModuleFileNameW', no_error_check) +GetSystemMetrics = TransparentUser32Proxy('GetSystemMetrics', no_error_check) + +# ## Version stuff ## # + +@VersionProxy("GetFileVersionInfoA") +def GetFileVersionInfoA(lptstrFilename, dwHandle=0, dwLen=None, lpData=NeededParameter): + if dwLen is None and lpData is not None: + dwLen = len(lpData) + return GetFileVersionInfoA.ctypes_function(lptstrFilename, dwHandle, dwLen, lpData) + + +@VersionProxy("GetFileVersionInfoW") +def GetFileVersionInfoW(lptstrFilename, dwHandle=0, dwLen=None, lpData=NeededParameter): + if dwLen is None and lpData is not None: + dwLen = len(lpData) + return GetFileVersionInfoA.ctypes_function(lptstrFilename, dwHandle, dwLen, lpData) + + +@VersionProxy("GetFileVersionInfoSizeA") +def GetFileVersionInfoSizeA(lptstrFilename, lpdwHandle=None): + if lpdwHandle is None: + lpdwHandle = ctypes.byref(DWORD()) + return GetFileVersionInfoSizeA.ctypes_function(lptstrFilename, lpdwHandle) + + +@VersionProxy("GetFileVersionInfoSizeW") +def GetFileVersionInfoSizeW(lptstrFilename, lpdwHandle=None): + if lpdwHandle is None: + lpdwHandle = ctypes.byref(DWORD()) + return GetFileVersionInfoSizeW.ctypes_function(lptstrFilename, lpdwHandle) + + +@VersionProxy("VerQueryValueA") +def VerQueryValueA(pBlock, lpSubBlock, lplpBuffer, puLen): + return VerQueryValueA.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen) + + +@VersionProxy("VerQueryValueW") +def VerQueryValueW(pBlock, lpSubBlock, lplpBuffer, puLen): + return VerQueryValueW.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen) \ No newline at end of file