W systemie Windows znajduje się strona informacji o wersji w oknie właściwości pliku wykonywalnego / biblioteki. Jak wyświetlić te informacje w Ubuntu?
W systemie Windows znajduje się strona informacji o wersji w oknie właściwości pliku wykonywalnego / biblioteki. Jak wyświetlić te informacje w Ubuntu?
Odpowiedzi:
Prawdopodobnie musisz zainstalować przeglądarkę plików PE innej firmy, taką jak http://www.ucware.com/apev/index.htm
Pracuję w narzędziu o nazwie pev do pobierania informacji o plikach PE w wierszu poleceń.
Wersję pliku można pobrać za pomocą -p
opcji:
pev -p program.exe
pev jest dostępny na Ubuntu w pev
pakiecie .
Ze gnome-exe-thumbnailer
skryptu zaproponowanego przez Scotta Ritchiego:
wrestool --extract --raw --type=version inputfile.exe
wyodrębnia informacje o wersji, drukując niektóre dane binarne zmieszane z tekstem UTF-16. Skrypt konwertuje go na czytelny tekst, przepuszczając go przez:
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'
Ogólne polecenie jest wtedy 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'
.
wrestool
zapewnia icoutil
pakiet, który jest dostępny jako standardowy pakiet Debiana od dawna.
| hexdump -C
icoutils
pakiecie.
Jako alternatywa do używania tr i sed do analizowania danych wyjściowych z rozwiązania @ Mechanical-snail, oto ciągi znaków GNU i wersja GNU grep :
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
AKTUALIZACJA:
Inną alternatywą jest najnowsza wersja exiftoola autorstwa Phila Harveya (jest oparta na Perlu, łatwa do zainstalowania na Linuksie, jeśli nie ma go w dystrybucji, dostępna także na Maca i Windowsa). Ma wiele opcji formatowania.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67
libimage-exiftool-perl
?
Jeśli zainstalujesz gnome-exe-thumbnailer
pakiet, możesz po prostu spojrzeć na numer wersji w nautilus
.
Kod do zrobienia tego ręcznie jest dostępny w /usr/bin/gnome-exe-thumbnailer.sh
Właśnie dowiedziałem się, jak stworzyć ładny dyktafon z informacjami (rozglądałem się wokół i z jakiegoś powodu znalazłem się tutaj) i chciałbym przedstawić tutaj moją metodę:
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)
Licencjonuję go na podstawie licencji MIT ... może ktoś, kto czuje potrzebę tworzenia przydatnych skryptów lub innych rzeczy z tym ...
I zobacz Github Gists - spookyahell / peinfo.py, aby zobaczyć przykładową implementację tej metody w innym skrypcie ...