Added some generated def + some winproxy functions

This commit is contained in:
hakril
2018-07-13 14:33:50 +02:00
parent c19241098a
commit d232928780
15 changed files with 2585 additions and 2222 deletions
@@ -0,0 +1,88 @@
#define PRODUCT_UNDEFINED 0x00000000
#define PRODUCT_ULTIMATE 0x00000001
#define PRODUCT_HOME_BASIC 0x00000002
#define PRODUCT_HOME_PREMIUM 0x00000003
#define PRODUCT_ENTERPRISE 0x00000004
#define PRODUCT_HOME_BASIC_N 0x00000005
#define PRODUCT_BUSINESS 0x00000006
#define PRODUCT_STANDARD_SERVER 0x00000007
#define PRODUCT_DATACENTER_SERVER 0x00000008
#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009
#define PRODUCT_ENTERPRISE_SERVER 0x0000000A
#define PRODUCT_STARTER 0x0000000B
#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C
#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D
#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E
#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F
#define PRODUCT_BUSINESS_N 0x00000010
#define PRODUCT_WEB_SERVER 0x00000011
#define PRODUCT_CLUSTER_SERVER 0x00000012
#define PRODUCT_HOME_SERVER 0x00000013
#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014
#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015
#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016
#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017
#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018
#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019
#define PRODUCT_HOME_PREMIUM_N 0x0000001A
#define PRODUCT_ENTERPRISE_N 0x0000001B
#define PRODUCT_ULTIMATE_N 0x0000001C
#define PRODUCT_WEB_SERVER_CORE 0x0000001D
#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E
#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F
#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020
#define PRODUCT_SERVER_FOUNDATION 0x00000021
#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022
#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023
#define PRODUCT_STANDARD_SERVER_V 0x00000024
#define PRODUCT_DATACENTER_SERVER_V 0x00000025
#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026
#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027
#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028
#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029
#define PRODUCT_HYPERV 0x0000002A
#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B
#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C
#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D
#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E
#define PRODUCT_STARTER_N 0x0000002F
#define PRODUCT_PROFESSIONAL 0x00000030
#define PRODUCT_PROFESSIONAL_N 0x00000031
#define PRODUCT_SB_SOLUTION_SERVER 0x00000032
#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033
#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034
#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035
#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036
#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037
#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038
#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039
#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F
#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B
#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C
#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D
#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E
#define PRODUCT_CLUSTER_SERVER_V 0x00000040
#define PRODUCT_EMBEDDED 0x00000041
#define PRODUCT_STARTER_E 0x00000042
#define PRODUCT_HOME_BASIC_E 0x00000043
#define PRODUCT_HOME_PREMIUM_E 0x00000044
#define PRODUCT_PROFESSIONAL_E 0x00000045
#define PRODUCT_ENTERPRISE_E 0x00000046
#define PRODUCT_ULTIMATE_E 0x00000047
#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048
#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C
#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D
#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F
#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050
#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054
#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F
#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060
#define PRODUCT_CORE_ARM 0x00000061
#define PRODUCT_CORE_N 0x00000062
#define PRODUCT_CORE_COUNTRYSPECIFIC 0x00000063
#define PRODUCT_CORE_LANGUAGESPECIFIC 0x00000064
#define PRODUCT_CORE 0x00000065
#define PRODUCT_PROFESSIONAL_WMC 0x00000067
#define PRODUCT_UNLICENSED 0xABCDABCD
@@ -38,4 +38,10 @@ HRESULT WINAPI CoGetInterceptor(
_In_ IUnknown *punkOuter,
_In_ REFIID iid,
_Out_ PVOID *ppv
);
HRESULT WINAPI CLSIDFromProgID(
_In_ LPCOLESTR lpszProgID,
_Out_ LPCLSID lpclsid
);
@@ -1,3 +1,11 @@
BOOL WINAPI CreatePipe(
_Out_ PHANDLE hReadPipe,
_Out_ PHANDLE hWritePipe,
_In_opt_ LPSECURITY_ATTRIBUTES lpPipeAttributes,
_In_ DWORD nSize
);
HANDLE WINAPI CreateNamedPipeA(
_In_ LPCSTR lpName,
_In_ DWORD dwOpenMode,
@@ -32,4 +40,15 @@ BOOL WINAPI SetNamedPipeHandleState(
_In_opt_ LPDWORD lpMode,
_In_opt_ LPDWORD lpMaxCollectionCount,
_In_opt_ LPDWORD lpCollectDataTimeout
);
);
BOOL WINAPI PeekNamedPipe(
_In_ HANDLE hNamedPipe,
_Out_opt_ LPVOID lpBuffer,
_In_ DWORD nBufferSize,
_Out_opt_ LPDWORD lpBytesRead,
_Out_opt_ LPDWORD lpTotalBytesAvail,
_Out_opt_ LPDWORD lpBytesLeftThisMessage
);
@@ -1701,3 +1701,12 @@ BOOL WINAPI SetProcessMitigationPolicy(
_In_ PVOID lpBuffer,
_In_ SIZE_T dwLength
);
BOOL WINAPI GetProductInfo(
_In_ DWORD dwOSMajorVersion,
_In_ DWORD dwOSMinorVersion,
_In_ DWORD dwSpMajorVersion,
_In_ DWORD dwSpMinorVersion,
_Out_ PDWORD pdwReturnedProductType
);
@@ -3,4 +3,13 @@ NTSTATUS WINAPI TpCallbackSendAlpcMessageOnCompletion(
_In_ HANDLE PortHandle,
_In_ ULONG Flags,
_In_opt_ PPORT_MESSAGE SendMessage,
);
NTSTATUS NtQueryLicenseValue(
PUNICODE_STRING Name,
ULONG *Type,
PVOID Buffer,
ULONG Length,
ULONG *DataLength
);
@@ -34,12 +34,14 @@ double = c_double
DATE = double
PSID = PVOID
ULONGLONG = c_ulonglong
PULONGLONG = POINTER(ULONGLONG)
LONGLONG = c_longlong
ULONG64 = c_ulonglong
UINT64 = ULONG64
LONG64 = c_longlong
PLARGE_INTEGER = POINTER(LARGE_INTEGER)
DWORD64 = ULONG64
PDWORD64 = POINTER(DWORD64)
SCODE = LONG
CIMTYPE = LONG
NET_IFINDEX = ULONG
@@ -5,4 +5,4 @@ typedef struct _GUID {
USHORT Data2;
USHORT Data3;
BYTE Data4[ 8 ];
} GUID, IID, CLSID, *REFIID, *REFCLSID, *LPGUID, *REFGUID;
} GUID, IID, CLSID, *REFIID, *REFCLSID, *LPGUID, *REFGUID, *LPCLSID;
+2
View File
@@ -150,6 +150,8 @@ class ParsedFileGraph(object):
def build_dependancy_graph(self):
todo = set(self.nodes)
if not todo:
return []
start = self.find_starting_node()
print("Starting node is {0}".format(start))
todo.remove(start)
File diff suppressed because it is too large Load Diff
+12
View File
@@ -283,6 +283,10 @@ _GUID
Alias for :class:`_GUID`
.. class:: LPCLSID
Pointer to :class:`_GUID`
.. class:: GUID
Alias for :class:`_GUID`
@@ -13696,6 +13700,10 @@ Simple types
.. autoclass:: ULONGLONG
.. class:: PULONGLONG
Pointer to :class:`ULONGLONG`
.. autoclass:: LONGLONG
.. autoclass:: ULONG64
@@ -13710,6 +13718,10 @@ Simple types
.. autoclass:: DWORD64
.. class:: PDWORD64
Pointer to :class:`DWORD64`
.. autoclass:: SCODE
.. autoclass:: CIMTYPE
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+15
View File
@@ -859,6 +859,11 @@ def GetWindowsDirectoryW(lpBuffer, uSize=None):
return GetWindowsDirectoryW.ctypes_function(lpBuffer, uSize)
@Kernel32Proxy("GetProductInfo")
def GetProductInfo(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType):
return GetProductInfo.ctypes_function(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType)
# ### NTDLL #### #
@NtdllProxy('NtReadVirtualMemory', error_ntstatus)
@@ -1167,6 +1172,12 @@ def NtQueryValueKey(KeyHandle, ValueName, KeyValueInformationClass, KeyValueInfo
def NtEnumerateValueKey(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength):
return NtEnumerateValueKey.ctypes_function(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength)
@NtdllProxy("NtQueryLicenseValue", error_ntstatus)
def NtQueryLicenseValue(Name, Type, Buffer, Length=None, DataLength=NeededParameter):
if Length is None and Buffer:
Length = len(buffer)
return NtQueryLicenseValue.ctypes_function(Name, Type, Buffer, Length, DataLength)
# Not exported
@@ -1823,6 +1834,10 @@ def CoCreateInstanceEx(rclsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResul
def CoGetInterceptor(iidIntercepted, punkOuter, iid, ppv):
return CoGetInterceptor.ctypes_function(iidIntercepted, punkOuter, iid, ppv)
@Ole32Proxy('CLSIDFromProgID')
def CLSIDFromProgID(lpszProgID, lpclsid):
return CLSIDFromProgID.ctypes_function(lpszProgID, lpclsid)
# ## Shell32 ## #
@Shell32Proxy('ShellExecuteA')