Wie kann ich die Versionsinformationen einer PE EXE / DLL-Datei anzeigen?

31

In Windows gibt es eine Seite mit Versionsinformationen in einem Fenster mit Eigenschaften für ausführbare Dateien / Bibliotheksdateien. Wie kann ich diese Informationen in Ubuntu anzeigen?

Ivan
quelle
2
Meinen Sie damit, wie Sie solche Informationen aus Linux-Binärdateien / Bibliotheken oder Windows-EXE / DLL mit einem Linux-Dienstprogramm anzeigen können?
João Pinto
1
Wie ich im Fragentitel klar angegeben habe, meine ich PE (Windows) -EXE- und -DLL-Dateien (zum Anzeigen natürlich mit einem Linux-Dienstprogramm).
Ivan

Antworten:

-1

Möglicherweise müssen Sie einen PE-Datei-Viewer eines Drittanbieters installieren, z. B. http://www.ucware.com/apev/index.htm

user4124
quelle
Gibt es nicht ein natives Linux-Tool dafür?
Ivan
7
25 US-Dollar für einen Datei-Informations-Viewer? Ernst?
Mechanische Schnecke
5
Hinweis für Besucher nach dem 5. April 2013: Diese Software wurde anscheinend eingestellt und ist vom Entwickler nicht mehr erhältlich.
Moshe Katz
29

Ich arbeite in einem Tool namens pev , um Informationen über PE-Dateien in der Befehlszeile abzurufen.

Die Dateiversion kann mit folgender -pOption abgerufen werden :

pev -p program.exe

pev ist auf Ubuntu im pevPaket enthalten .

Fernando
quelle
3
@Ivan Sie könnten stattdessen diese Antwort akzeptieren.
Russell Silva
Diese Anleitung ist veraltet . Vielleicht möchten Sie sie aktualisieren.
Ploni
11

Aus dem gnome-exe-thumbnailervon Scott Ritchie vorgeschlagenen Drehbuch:

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

extrahiert die Versionsinformationen und druckt einige Binärdaten, die mit UTF-16-Text gemischt sind. Das Skript konvertiert ihn in lesbaren Text, indem es ihn weiterleitet:

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'

Der Gesamtbefehl lautet dann 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'.

Mechanische Schnecke
quelle
+1 wrestoolwird von dem icoutilPaket bereitgestellt, das seit jeher als Standard-Debian-Paket verfügbar ist.
Tripleee
Sie können es einfacher machen, indem Sie es einfach | hexdump -C
durchleiten
In Ubuntu 18.04 ist es im icoutilsPaket enthalten.
Bjorn Reppen
6

Als Alternative zur Verwendung von tr und sed zum Parsen der Ausgabe der @ mechanical-snail-Lösung finden Sie hier eine GNU- Strings- und eine GNU- grep- Version:

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

FileVersion
Release 0.65
ProductVersion
Release 0.65

AKTUALISIEREN:

Eine andere Alternative ist eine neuere Version von exiftool von Phil Harvey (sie basiert auf Perl und ist unter Linux einfach zu installieren, wenn Ihre Distribution es nicht hat, auch für Mac und Windows verfügbar). Es hat viele Formatierungsoptionen.

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

File Version                    : Release 0.67
Product Version                 : Release 0.67
dcg
quelle
Welches Paket in Ubuntu / Debian hat exiftool? Sieht aus wie libimage-exiftool-perl?
Xen2050
Ich lade einfach den Quellcode herunter und erstelle ihn lokal. Laden Sie die Datei tar.gz von der Website herunter (der Link "Download Version xx.yy" oben in owl.phy.queensu.ca/~phil/exiftool ), extrahieren Sie die Dateien und lesen Sie den Abschnitt INSTALLATION in der README-Datei Wie man es mit Perl erstellt und dann in / usr / local / bin
dcg installiert
4

Wenn Sie das gnome-exe-thumbnailerPaket installieren , können Sie sich einfach die Versionsnummer in ansehen nautilus.

Der Code für die manuelle Ausführung ist in verfügbar /usr/bin/gnome-exe-thumbnailer.sh

Scott Ritchie
quelle
@ Scott .. Danke. es funktioniert ... der relevante Code ist sehr einfach in einem anderen Skript zu verwenden ... Ich gehe davon aus, dass Sie mit "Sie können einfach die Versionsnummer in Nautilus anzeigen" meinen , dass die Versionsnummer in die .exe gepfropft erscheint icon in Nautilus .. eine interessante Idee .. Ich persönlich verwende selten die Icon-Ansicht, aber der Code-Ausschnitt ist großartig für mich ..
Peter.O
-1

Ich habe gerade selbst herausgefunden, wie ich mit den Informationen ein schönes Python-Diktat erstellen kann (ich habe mich umgesehen und bin aus irgendeinem Grund hier gelandet ) und möchte meine Methode hier vorstellen :
Github Gists - spookyahell / exe2version_info.py

'''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)

Ich lizenziere es unter der MIT-Lizenz ... kann jeder, der das Bedürfnis hat, nützliche Skripte oder andere Dinge damit zu erstellen ...

Eine Beispielimplementierung dieser Methode in einem anderen Skript finden Sie unter Github Gists - spookyahell / peinfo.py ...

DelphiGeekGuy
quelle
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Kevin Bowen