Version info string mismatch across resources

ID PE040 Level WARNING Category Configuration

Description

There are multiple VERSIONINFO resources with different languages in the executable. A particular string value which should be likely persistent (e.g. FileVersion, ProductVersion or OriginalFilename), in some VERSIONINFO resources differs from other VERSIONINFO resources. This is likely a configuration error.

Mitigation

If using Visual C++:

  • Make sure you include the same FileVersion, ProductVersion and OriginalFilename values in all StringFileInfo blocks across all VERSIONINFO resources.

Arguments

This rule has the following output arguments:

  • resource_lang1 - Affected first VERSIONINFO resource language integral code
  • resource_lang1_tag - Affected first VERSIONINFO resource language tag (e.g. en, nl-NL or en-US)
  • resource_lang1_location - Affected first VERSIONINFO resource language location (e.g. Spain, neutral or process_default)
  • resource_lang2 - Affected second VERSIONINFO resource language integral code
  • resource_lang2_tag - Affected second VERSIONINFO resource language tag (e.g. en, nl-NL or en-US)
  • resource_lang2_location - Affected second VERSIONINFO resource language location (e.g. Spain, neutral or process_default)
  • key - Affected StringFileInfo key name (e.g. FileVersion, ProductVersion or OriginalFilename)
  • string1 - First mistatching key value
  • string2 - Second mistatching key value