PE EXE / DLLファイルのバージョン情報を表示する方法は?


31

Windowsでは、実行可能ファイル/ライブラリファイルのプロパティウィンドウにバージョン情報ページがあります。Ubuntuでその情報を表示する方法は?


2
Linuxユーティリティを使用して、Linuxバイナリ/ライブラリまたはWindows EXE / DLLからそのような情報を表示する方法を意味しますか?
ジョアンピント

1
質問のタイトルで明確に指定したように、私はPE(Windows)EXEおよびDLLファイル(もちろんLinuxユーティリティを使用して表示する)を意味します。
イヴァン

回答:


-1

おそらく、http://www.ucware.com/apev/index.htmなどのサードパーティPEファイルビューアーをインストールする必要があります。


このためのLinuxネイティブツールはありませんか?
イヴァン


7
ファイル情報ビューアで25ドルですか?マジ?
機械式カタツムリ

5
2013年4月5日以降の訪問者への注意:このソフトウェアは廃止されたようで、開発者からは入手できなくなりました。
モシェ・カッツ

29

コマンドラインでPEファイルに関する情報を取得するために、pevというツールで作業しています。

ファイルバージョンは、次の-pオプションで取得できます。

pev -p program.exe

pevはUbuntuのpevパッケージに含まれています


3
@Ivanは、代わりにこの答えを受け入れることを検討するかもしれません。
ラッセルシルバ

これらの指示は時代遅れです。それらの更新を検討することをお勧めします。
-Ploni

11

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'です。


+1 wrestoolicoutilパッケージによって提供されます。このパッケージは、以前から標準のDebianパッケージとして利用可能です。
トリプリー

単純にパイプするだけで簡単にできます| hexdump -C
Tomofumi

Ubuntu 18.04では、icoutilsパッケージ内にあります。
ビヨンレプペン

6

@ mechanical-snailのソリューションからの出力を解析するためにtrsedを使用する代わりに、GNU 文字列とGNU grepバージョンがあります:

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

FileVersion
Release 0.65
ProductVersion
Release 0.65

更新:

もう1つの代替手段は、Phil Harvey によるexiftoolの最新バージョンです(perlに基づいており、ディストリビューションがなければLinuxに簡単にインストールでき、MacおよびWindowsでも利用可能です)。多くの書式設定オプションがあります。

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

File Version                    : Release 0.67
Product Version                 : Release 0.67

Ubuntu / Debianのどのパッケージにexiftoolがありますか?のように見えるlibimage-exiftool-perl
Xen2050

ソースコードをダウンロードして、ローカルでビルドするだけです。ウェブサイトからtar.gzファイルをダウンロードします(の上部にある「ダウンロード版xx.yy」リンクowl.phy.queensu.ca/~phil/exiftool)、ファイルを抽出し、ためのREADMEファイルのインストールセクションを参照してくださいperlを使用してビルドし、/ usr / local / binにインストールする方法
dcg

4

gnome-exe-thumbnailerパッケージをインストールする場合は、バージョン番号を参照してくださいnautilus

これを手動で行うコードは、 /usr/bin/gnome-exe-thumbnailer.sh


@Scott ..ありがとう。関連するコードは別のスクリプトで使用するのが非常に簡単です... 「nautilusのバージョン番号を単純に見ることができる」というのは、バージョン番号が.exeに移植されているということですNautilusのアイコン..面白いアイデア..個人的に、私はめったにicon-viewを使用しませんが、コードスニペットは私にとって素晴らしいです
。.-Peter.O

-1

情報を使用して素敵なpython dictを作成する方法を見つけたので(何らかの理由でここを探していました)、ここで私の方法を紹介したいと思います。

'''Licensed under the MIT License :)'''

import pefile
import pprint
pe =  pefile.PE('example.exe')


string_version_info = {}

for fileinfo in pe.FileInfo[0]:
    if fileinfo.Key.decode() == 'StringFileInfo':
        for st in fileinfo.StringTable:
            for entry in st.entries.items():
                string_version_info[entry[0].decode()] = entry[1].decode()

pprint.pprint(string_version_info)

私はMITライセンスの下でそれをライセンスしています...それで便利なスクリプトや他のものを作成する必要を感じている人は誰でも...

また、別のスクリプトでこのメソッドを実装する例については、Github Gists-spookyahell / peinfo.pyを参照してください...


Ask Ubuntuへようこそ!これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
ケビンボーウェン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.