From 83ca54d1824b1be0cbfd7e31264e9dffca2b383e Mon Sep 17 00:00:00 2001 From: BrunoPujos <28804193+BrunoPujos@users.noreply.github.com> Date: Tue, 18 May 2021 17:13:02 +0200 Subject: [PATCH] add auto-generated functions for event and file mapping; fix buf for OpenEventW which called OpenEventA --- .../definitions/functions/memoryapi.txt | 18 +++++++++ .../definitions/functions/synchapi.txt | 40 +++++++++++++++++++ .../definitions/functions/winfunc.txt | 15 ------- windows/winproxy/apis/kernel32.py | 28 ++++++++++++- 4 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 ctypes_generation/definitions/functions/memoryapi.txt create mode 100644 ctypes_generation/definitions/functions/synchapi.txt diff --git a/ctypes_generation/definitions/functions/memoryapi.txt b/ctypes_generation/definitions/functions/memoryapi.txt new file mode 100644 index 0000000..1fbdf14 --- /dev/null +++ b/ctypes_generation/definitions/functions/memoryapi.txt @@ -0,0 +1,18 @@ + +HANDLE OpenFileMappingW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpName +); + +HANDLE OpenFileMappingA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpName +); + +BOOL UnmapViewOfFile( + LPCVOID lpBaseAddress +); + + diff --git a/ctypes_generation/definitions/functions/synchapi.txt b/ctypes_generation/definitions/functions/synchapi.txt new file mode 100644 index 0000000..1695760 --- /dev/null +++ b/ctypes_generation/definitions/functions/synchapi.txt @@ -0,0 +1,40 @@ +HANDLE CreateEventA( + LPSECURITY_ATTRIBUTES lpEventAttributes, + BOOL bManualReset, + BOOL bInitialState, + LPCSTR lpName +); + +HANDLE CreateEventW( + LPSECURITY_ATTRIBUTES lpEventAttributes, + BOOL bManualReset, + BOOL bInitialState, + LPCWSTR lpName +); + +HANDLE CreateEventExA( + LPSECURITY_ATTRIBUTES lpEventAttributes, + LPCSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess +); + +HANDLE CreateEventExW( + LPSECURITY_ATTRIBUTES lpEventAttributes, + LPCWSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess +); + +HANDLE WINAPI OpenEventA( + __in DWORD dwDesiredAccess, + __in BOOL bInheritHandle, + __in LPCSTR lpName +); + +HANDLE WINAPI OpenEventW( + __in DWORD dwDesiredAccess, + __in BOOL bInheritHandle, + __in LPCWSTR lpName +); + diff --git a/ctypes_generation/definitions/functions/winfunc.txt b/ctypes_generation/definitions/functions/winfunc.txt index 0f5077f..7a6c7c6 100644 --- a/ctypes_generation/definitions/functions/winfunc.txt +++ b/ctypes_generation/definitions/functions/winfunc.txt @@ -812,21 +812,6 @@ NTSTATUS RtlGetCompressionWorkSpaceSize( ); -HANDLE WINAPI OpenEventA( - __in DWORD dwDesiredAccess, - __in BOOL bInheritHandle, - __in LPCSTR lpName -); - - -HANDLE WINAPI OpenEventW( - __in DWORD dwDesiredAccess, - __in BOOL bInheritHandle, - __in LPCWSTR lpName -); - - - INT WINAPI lstrcmpA( __in LPCSTR lpString1, __in LPCSTR lpString2 diff --git a/windows/winproxy/apis/kernel32.py b/windows/winproxy/apis/kernel32.py index 7b9b26a..afe7ca9 100644 --- a/windows/winproxy/apis/kernel32.py +++ b/windows/winproxy/apis/kernel32.py @@ -498,11 +498,21 @@ def CreateFileMappingA(hFile, lpFileMappingAttributes=None, flProtect=gdef.PAGE_ def CreateFileMappingW(hFile, lpFileMappingAttributes=None, flProtect=gdef.PAGE_READWRITE, dwMaximumSizeHigh=0, dwMaximumSizeLow=0, lpName=NeededParameter): return CreateFileMappingW.ctypes_function(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName) +@Kernel32Proxy() +def OpenFileMappingW(dwDesiredAccess, bInheritHandle, lpName): + return OpenFileMappingW.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + +@Kernel32Proxy() +def OpenFileMappingA(dwDesiredAccess, bInheritHandle, lpName): + return OpenFileMappingA.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) @Kernel32Proxy() def MapViewOfFile(hFileMappingObject, dwDesiredAccess=gdef.FILE_MAP_ALL_ACCESS, dwFileOffsetHigh=0, dwFileOffsetLow=0, dwNumberOfBytesToMap=NeededParameter): return MapViewOfFile.ctypes_function(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap) +@Kernel32Proxy() +def UnmapViewOfFile(lpBaseAddress): + return UnmapViewOfFile.ctypes_function(lpBaseAddress) @Kernel32Proxy() def FindFirstFileA(lpFileName, lpFindFileData): @@ -581,7 +591,23 @@ def OpenEventA(dwDesiredAccess, bInheritHandle, lpName): @Kernel32Proxy() def OpenEventW(dwDesiredAccess, bInheritHandle, lpName): - return OpenEventA.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + return OpenEventW.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + +@Kernel32Proxy() +def CreateEventA(lpEventAttributes, bManualReset, bInitialState, lpName): + return CreateEventA.ctypes_function(lpEventAttributes, bManualReset, bInitialState, lpName) + +@Kernel32Proxy() +def CreateEventW(lpEventAttributes, bManualReset, bInitialState, lpName): + return CreateEventW.ctypes_function(lpEventAttributes, bManualReset, bInitialState, lpName) + +@Kernel32Proxy() +def CreateEventExA(lpEventAttributes, lpName, dwFlags, dwDesiredAccess): + return CreateEventExA.ctypes_function(lpEventAttributes, lpName, dwFlags, dwDesiredAccess) + +@Kernel32Proxy() +def CreateEventExW(lpEventAttributes, lpName, dwFlags, dwDesiredAccess): + return CreateEventExW.ctypes_function(lpEventAttributes, lpName, dwFlags, dwDesiredAccess) ## Path