如何查看PE EXE/DLL文件的版本信息?

如何查看PE EXE/DLL文件的版本信息?

在 Windows 中,可执行文件/库文件属性窗口中有一个版本信息页面。如何在 Ubuntu 中查看该信息?

答案1

我正在使用一个名为佩夫在命令行上检索有关 PE 文件的信息。

可安装

sudo apt-get install pev

可以使用以下方式获取文件版本

peres -v program.exe | awk '{print $3}'

答案2

根据斯科特·里奇建议的剧本gnome-exe-thumbnailer

wrestool --extract --raw --type=version inputfile.exe

提取版本信息,打印一些与 UTF-16 文本混合的二进制数据。脚本通过管道将其转换为可读文本:

tr '\0, ' '\t.\0' \
| sed 's/\t\t/_/g' \
| tr -c -d '[:print:]' \
| sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*/\1/p'

那么总体命令就是wrestool --extract --raw --type=version inputfile.exe | tr '\0, ' '\t.\0' | sed 's/\t\t/_/g' | tr -c -d '[:print:]' | sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*/\1/p'

答案3

作为使用trsed要解析 @mechanical-snail 解决方案的输出,这里有一个 GNU字符串和 GNUgrep版本:

$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1

FileVersion
Release 0.65
ProductVersion
Release 0.65

更新:

另一个替代方案是最新版本的外置工具Phil Harvey 编写(基于 perl,使用 可轻松安装sudo apt-get install libimage-exiftool-perl,也可用于 Mac 和 Windows)。它有很多格式选项。

# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe

File Version                    : Release 0.67
Product Version                 : Release 0.67

答案4

为了完整起见,如果您无法安装新的应用程序,但是有 p7zip 和 Vim,您可以执行以下操作:

  1. 使用以下方式提取元数据7z x whatever.exe .rsrc/VERSION/1
  2. .rsrc/VERSION/1在 Vim 中打开生成的文件
  3. 在 Vim 命令行中输入:e ++enc=utf16le以请求将文件的内容重新解释为小端 UTF-16。

相关内容