Skip to content

Commit

Permalink
Fixed signed code check for Vista & XP
Browse files Browse the repository at this point in the history
  • Loading branch information
ccw808 committed Feb 26, 2016
1 parent 5a62615 commit 5b2c55d
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
6 changes: 6 additions & 0 deletions MTA10/loader/Utils.cpp
Expand Up @@ -2031,6 +2031,12 @@ bool VerifyEmbeddedSignature( const SString& strFilename )
WinTrustData.dwUnionChoice = WTD_CHOICE_FILE;
WinTrustData.pFile = &FileData;

if ( !IsWindows7OrGreater() )
{
// Basic check for Vista and down due to incompatibility with current signing methodology
WinTrustData.dwProvFlags = WTD_HASH_ONLY_FLAG;
}

GUID WVTPolicyGUID = WINTRUST_ACTION_GENERIC_VERIFY_V2;
LONG lStatus = WinVerifyTrust( NULL, &WVTPolicyGUID, &WinTrustData );
return lStatus == ERROR_SUCCESS;
Expand Down
1 change: 1 addition & 0 deletions Shared/sdk/SharedUtil.Misc.h
Expand Up @@ -150,6 +150,7 @@ namespace SharedUtil
bool IsWindowsVersionOrGreater ( WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor );
bool IsWindowsXPSP3OrGreater ( void );
bool IsWindowsVistaOrGreater ( void );
bool IsWindows7OrGreater ( void );
bool IsWindows8OrGreater ( void );

#endif
Expand Down
5 changes: 5 additions & 0 deletions Shared/sdk/SharedUtil.Misc.hpp
Expand Up @@ -964,6 +964,11 @@ bool SharedUtil::IsWindowsVistaOrGreater()
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0);
}

bool SharedUtil::IsWindows7OrGreater()
{
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 0);
}

bool SharedUtil::IsWindows8OrGreater()
{
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN8), LOBYTE(_WIN32_WINNT_WIN8), 0);
Expand Down

0 comments on commit 5b2c55d

Please sign in to comment.