Есть ли способ узнать из файла .exe, какие версии Windows мы можем запустить?

396
ManWithNoName

Я спрашиваю о установочных файлах Windows .exe.

  • Есть ли способ узнать, на каких версиях Windows мы можем его запустить?
  • Есть ли в качестве примера некоторая информация внутри него, где мы могли бы найти список версий Windows, которые он сертифицировал.
  • Есть ли инструмент, который может проанализировать файл .exe и сказать нам, если он совместим или нет для каждой версии Windows?
2
Наиболее правильное решение - заглянуть на сайт разработчика или в прилагаемое описание. Akina 5 лет назад 0
Это одно из ручных решений в случае, если файл достаточно недавний, чтобы быть доступным на веб-сайте разработчика. Требуется много времени на поиск, если у нас много старых программ, которые мы хотели бы проверить. Я ищу "автоматическое" решение. ManWithNoName 5 лет назад 1
Windows имеет очень хорошую поддержку обратной совместимости, поэтому в большинстве случаев просто используйте последнюю версию Windows phuclv 5 лет назад 2

2 ответа на вопрос

2
LPChip

Нет, это невозможно.

Хотя есть только несколько случаев, это не легко обнаружить.

Исполняемый файл может быть скомпилирован для конкретной архитектуры, такой как x86 (32-разрядная версия) и x64 (64-разрядная версия), но старые исполняемые файлы могут быть созданы для более старых архитектур, таких как 16-разрядная версия.

Windows XP по-прежнему поддерживала 16-битные приложения в форме эмуляции, но Windows Vista и более поздние версии вообще отказались от поддержки 16-битных приложений.

Из Windows XP существует 64-разрядная версия. Если вы используете 64-разрядную версию своей ОС, вы можете запустить 64-разрядные выпуски исполняемого файла.

Разработчик, который создает версию своего приложения для x64 и x86, может применить это, отображая ошибку при попытке запустить версию x86 в операционной системе x64.

Только из исполняемого файла невозможно запросить, для какой архитектуры он был разработан, без использования каких-либо внешних инструментов.

В дополнение к вышесказанному, для программного обеспечения могут потребоваться определенные платформы, такие как .net. Учитывая, что эти платформы обновлены, поддержка старых операционных систем в какой-то момент прекращается, что означает, что этот исполняемый файл больше нельзя запускать в этой старой операционной системе, если у вас уже не установлена ​​более старая версия этой платформы.

Тем не менее, если вы не имеете дело с программным обеспечением, которое потенциально очень старое, вы можете смело предполагать, что программное обеспечение будет работать на Windows 7 и выше. Если вы сомневаетесь, свяжитесь с разработчиком или проверьте их веб-сайт.

1
magicandre1981

С зависимости от.exe вы видите информацию о файлах Exe. Это показывает PE Header, который показывает минимальную версию Windows:

enter image description here

Таким образом, для USBView.exeWindows 8.1 SDK в версии x64 требуется 64-битная Windows 5.2, а это Server 2003 или 64-битная Windows XP.

если вы видите 16-битный тип процессора, он работает только в 32-битных системах Windows.