From 3d0b322f1e76bfe8e2a14e79f0e417a3fea5d014 Mon Sep 17 00:00:00 2001 From: zeffy Date: Tue, 13 Jun 2017 03:58:42 -0700 Subject: [PATCH] add is64bitwindows helper --- wufuc/util.c | 13 +++++++++++++ wufuc/util.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/wufuc/util.c b/wufuc/util.c index 0b576fc..34fc152 100644 --- a/wufuc/util.c +++ b/wufuc/util.c @@ -86,6 +86,19 @@ BOOL WindowsVersionCompare(BYTE Operator, DWORD dwMajorVersion, DWORD dwMinorVer return VerifyVersionInfo(&osvi, dwTypeMask, dwlConditionMask); } +BOOL Is64BitWindows(void) { +#if defined(_WIN64) + return TRUE; // 64-bit programs run only on Win64 +#elif defined(_WIN32) + // 32-bit programs run on both 32-bit and 64-bit Windows + // so must sniff + BOOL f64 = FALSE; + return IsWow64Process(GetCurrentProcess(), &f64) && f64; +#else + return FALSE; // Win64 does not support Win16 +#endif +} + VOID _wdbgprintf(LPCWSTR format, ...) { WCHAR buffer[0x1000]; va_list argptr; diff --git a/wufuc/util.h b/wufuc/util.h index 3b556f4..8f8d6a2 100644 --- a/wufuc/util.h +++ b/wufuc/util.h @@ -20,6 +20,8 @@ VOID ResumeAndCloseThreads(HANDLE *lphThreads, SIZE_T dwSize); BOOL WindowsVersionCompare(BYTE Operator, DWORD dwMajorVersion, DWORD dwMinorVersion, WORD wServicePackMajor, WORD wServicePackMinor, DWORD dwTypeMask); +BOOL Is64BitWindows(void); + VOID _wdbgprintf(LPCWSTR format, ...); VOID _dbgprintf(LPCSTR format, ...); //#ifdef _DEBUG