mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-12 03:18:26 -06:00
Windows: implement internal verification of Authenticode digital signature for all modules to protect against simple binaries tampering.
This commit is contained in:
@@ -396,6 +396,15 @@ BOOL VerifyPackageIntegrity (void)
|
||||
|
||||
GetModuleFileName (NULL, path, ARRAYSIZE (path));
|
||||
|
||||
#ifdef NDEBUG
|
||||
// verify Authenticode digital signature of the exe file
|
||||
if (!VerifyModuleSignature (path))
|
||||
{
|
||||
Error ("DIST_PACKAGE_CORRUPTED", NULL);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
fileDataEndPos = (int) FindStringInFile (path, MagEndMarker, strlen (MagEndMarker));
|
||||
if (fileDataEndPos < 0)
|
||||
{
|
||||
|
||||
@@ -1051,7 +1051,7 @@ err:
|
||||
|
||||
FindClose (h);
|
||||
}
|
||||
|
||||
|
||||
SetCurrentDirectory (SetupFilesDir);
|
||||
}
|
||||
|
||||
@@ -2571,7 +2571,18 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz
|
||||
#ifndef PORTABLE
|
||||
SetInstallationPath (NULL);
|
||||
#endif
|
||||
if (!bUninstall)
|
||||
if (bUninstall)
|
||||
{
|
||||
wchar_t path [TC_MAX_PATH];
|
||||
|
||||
GetModuleFileName (NULL, path, ARRAYSIZE (path));
|
||||
if (!VerifyModuleSignature (path))
|
||||
{
|
||||
Error ("DIST_PACKAGE_CORRUPTED", NULL);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsSelfExtractingPackage())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user