Информация о версии для нативно скомпилированного кода в Windows хранится в UTF-16, то есть в широких строках, в двоичном виде. Вы все еще можете использовать команду strings
, но вам нужно указать ей искать широкие строки, прежде чем они найдут их, используя параметр -e l
.
Например, в моей системе RMB> Свойства на C: \ Windows \ notepad.exe выдает версию файла как 5.1.2600.5512 (xpsp.080413-2105)
. Я скопировал его в коробку Linux, и, как вы говорите, strings
не находит его с флагами по умолчанию
$ strings notepad.exe | grep xpsp
$
но если вы установите кодировку, то все будет хорошо:
$ strings -e l notepad.exe | grep xpsp
5.1.2600.5512 (xpsp.080413-2105)