Version: 2.0.684

Version: 2.0.684
This commit is contained in:
vxunderground
2023-03-04 15:39:23 -06:00
parent 08fc458393
commit 0ee9d00a95
26 changed files with 483 additions and 25 deletions
@@ -0,0 +1,50 @@
#include "Win32Helper.h"
BOOL CreateProcessFromShell32ShellExecRunDllW(LPCWSTR PathToFile)
{
typedef VOID(WINAPI* SHELLEXEC_RUNDLLW)(HWND, HINSTANCE, LPCWSTR, INT);
SHELLEXEC_RUNDLLW ShellExec_RunDllW = NULL;
HMODULE hMod = NULL;
BOOL bFlag = FALSE;
hMod = TryLoadDllMultiMethodW((PWCHAR)L"shell32.dll");
if (hMod == NULL)
goto EXIT_ROUTINE;
ShellExec_RunDllW = (SHELLEXEC_RUNDLLW)GetProcAddressA((DWORD64)hMod, "ShellExec_RunDLLW");
if (!ShellExec_RunDllW)
goto EXIT_ROUTINE;
ShellExec_RunDllW(NULL, NULL, PathToFile, SW_SHOW);
bFlag = TRUE;
EXIT_ROUTINE:
return bFlag;
}
BOOL CreateProcessFromShell32ShellExecRunDllA(LPCSTR PathToFile)
{
typedef VOID(WINAPI* SHELLEXEC_RUNDLLA)(HWND, HINSTANCE, LPCSTR, INT);
SHELLEXEC_RUNDLLA ShellExec_RunDllA = NULL;
HMODULE hMod = NULL;
BOOL bFlag = FALSE;
hMod = TryLoadDllMultiMethodW((PWCHAR)L"shell32.dll");
if (hMod == NULL)
goto EXIT_ROUTINE;
ShellExec_RunDllA = (SHELLEXEC_RUNDLLA)GetProcAddressA((DWORD64)hMod, "ShellExec_RunDLLA");
if (!ShellExec_RunDllA)
goto EXIT_ROUTINE;
ShellExec_RunDllA(NULL, NULL, PathToFile, SW_SHOW);
bFlag = TRUE;
EXIT_ROUTINE:
return bFlag;
}