Skip to content

Commit

Permalink
Add more kernel32 definitions for synchronization primitives
Browse files Browse the repository at this point in the history
  • Loading branch information
zeroSteiner committed Nov 17, 2020
1 parent b8a49ea commit ad68575
Showing 1 changed file with 112 additions and 0 deletions.
112 changes: 112 additions & 0 deletions mayhem/windll/kernel32.py
Expand Up @@ -99,6 +99,52 @@ def _patch_winfunctype(function, restype, argtypes=(), **kwargs):
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexa
CreateMutexA = _patch_winfunctype(
_kernel32.CreateMutexA,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.BOOL,
wintypes.LPSTR
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexexa
CreateMutexExA = _patch_winfunctype(
_kernel32.CreateMutexExA,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.LPSTR,
wintypes.DWORD,
wintypes.DWORD
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexexw
CreateMutexExW = _patch_winfunctype(
_kernel32.CreateMutexExW,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.LPWSTR,
wintypes.DWORD,
wintypes.DWORD
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexw
CreateMutexW = _patch_winfunctype(
_kernel32.CreateMutexW,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.BOOL,
wintypes.LPWSTR
)
)

# https://msdn.microsoft.com/en-us/library/windows/desktop/aa365150(v=vs.85).aspx
CreateNamedPipeA = _patch_winfunctype(
_kernel32.CreateNamedPipeA,
Expand Down Expand Up @@ -193,6 +239,58 @@ def _patch_winfunctype(function, restype, argtypes=(), **kwargs):
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createsemaphorea
CreateSemaphoreA = _patch_winfunctype(
_kernel32.CreateSemaphoreA,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.LONG,
wintypes.LONG,
wintypes.LPSTR
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createsemaphoreexa
CreateSemaphoreExA = _patch_winfunctype(
_kernel32.CreateSemaphoreExA,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.LONG,
wintypes.LONG,
wintypes.LPSTR,
wintypes.DWORD,
wintypes.DWORD
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createsemaphoreexw
CreateSemaphoreExW = _patch_winfunctype(
_kernel32.CreateSemaphoreExW,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.LONG,
wintypes.LONG,
wintypes.LPWSTR,
wintypes.DWORD,
wintypes.DWORD
)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createsemaphorew
CreateSemaphoreW = _patch_winfunctype(
_kernel32.CreateSemaphoreW,
wintypes.HANDLE,
(
wintypes.PSECURITY_ATTRIBUTES,
wintypes.LONG,
wintypes.LONG,
wintypes.LPWSTR
)
)

# https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx
CreateThread = _patch_winfunctype(
_kernel32.CreateThread,
Expand Down Expand Up @@ -401,6 +499,20 @@ def _patch_winfunctype(function, restype, argtypes=(), **kwargs):
(wintypes.LPWSTR, wintypes.HANDLE, wintypes.DWORD)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-openeventa
OpenEventA = _patch_winfunctype(
_kernel32.OpenEventA,
wintypes.HANDLE,
(wintypes.DWORD, wintypes.BOOL, wintypes.LPSTR)
)

# https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-openeventw
OpenEventW = _patch_winfunctype(
_kernel32.OpenEventW,
wintypes.HANDLE,
(wintypes.DWORD, wintypes.BOOL, wintypes.LPWSTR)
)

# https://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
OpenProcess = _patch_winfunctype(
_kernel32.OpenProcess,
Expand Down

0 comments on commit ad68575

Please sign in to comment.