Files
vxunderground-VX-API/VX-API/GetProcessBinaryNameFromHwnd.cpp
T
vxunderground 6c7a892c91 new code
new malcode + helper
2022-10-29 00:38:36 -05:00

35 lines
815 B
C++

#include "Win32Helper.h"
BOOL GetProcessBinaryNameFromHwndW(_In_ HWND ProcessHwnd, _Inout_ PWCHAR BinaryName, _In_ DWORD BufferSize)
{
WCHAR Buffer[MAX_PATH * sizeof(WCHAR)] = { 0 };
DWORD ProcessId = ERROR_SUCCESS;
HANDLE hHandle = NULL;
BOOL bFlag = FALSE;
DWORD dwError = 0;
DWORD dwLength = MAX_PATH * sizeof(WCHAR);
GetWindowThreadProcessId(ProcessHwnd, &ProcessId);
hHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ProcessId);
if (hHandle == NULL)
return FALSE;
if (!QueryFullProcessImageNameW(hHandle, 0, Buffer, &dwLength))
goto EXIT_ROUTINE;
if (MAX_PATH * sizeof(WCHAR) > BufferSize)
goto EXIT_ROUTINE;
if (StringCopyW(BinaryName, Buffer) == NULL)
goto EXIT_ROUTINE;
bFlag = TRUE;
EXIT_ROUTINE:
if (hHandle)
CloseHandle(hHandle);
return bFlag;
}