mengekstrak informasi versi, mencetak beberapa data biner yang dicampur dengan teks UTF-16. Script mengubahnya menjadi teks yang dapat dibaca dengan memiparnya melalui:
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'
Perintah keseluruhan kemudian 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 wrestooldisediakan oleh icoutilpaket yang tersedia sebagai paket standar Debian sejak perjalanan pulang.
tripleee
Anda dapat membuatnya lebih sederhana dengan hanya menyalurkan melalui| hexdump -C
Tomofumi
Di Ubuntu 18.04 itu ada di dalam icoutils paket.
Bjorn Reppen
6
Sebagai alternatif untuk menggunakan tr dan sed untuk mem-parsing output dari solusi @ mechanical-snail, berikut adalah GNU strings dan GNU grep versi:
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
MEMPERBARUI:
Alternatif lain adalah versi terbaru dari exiftool oleh Phil Harvey (ini didasarkan pada perl, mudah dipasang di Linux jika distro Anda tidak memilikinya, juga tersedia untuk Mac dan Windows). Ini memiliki banyak opsi pemformatan.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67
Paket apa di Ubuntu / Debian yang memiliki exiftool? Sepertinya libimage-exiftool-perl?
Xen2050
Saya hanya mengunduh kode sumber dan membuatnya secara lokal. Unduh file tar.gz dari situs web (The "Download Versi xx.yy" di bagian atas owl.phy.queensu.ca/~phil/exiftool ), ekstrak file dan lihat bagian PEMASANGAN file README untuk bagaimana membangunnya menggunakan perl dan kemudian menginstalnya ke / usr / local / bin
dcg
4
Jika Anda menginstal gnome-exe-thumbnailerpaket, Anda cukup melihat nomor versi di nautilus.
Kode untuk melakukan ini secara manual tersedia di /usr/bin/gnome-exe-thumbnailer.sh
@Scott .. Terima kasih. berfungsi .. kode yang relevan sangat mudah digunakan dalam skrip lain ... Saya berasumsi bahwa apa yang Anda maksud dengan "Anda cukup melihat nomor versi di nautilus" , adalah bahwa nomor versi muncul dicangkokkan ke dalam .exe ikon di Nautilus .. ide yang menarik .. Secara pribadi, saya jarang menggunakan tampilan ikon, tetapi potongan kode sangat bagus untuk saya ..
Peter.O
-1
Saya baru tahu sendiri cara membuat dict python yang bagus dengan informasi (saya mencari-cari di sekitar saya dan beberapa alasan di sini) dan ingin mempresentasikan metode saya di sini: 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)
Saya melisensikannya di bawah Lisensi MIT ... siapa pun yang merasa perlu membuat skrip yang bermanfaat atau hal-hal lain dengannya ...
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Jawaban:
Anda mungkin perlu menginstal penampil file PE pihak ketiga, seperti http://www.ucware.com/apev/index.htm
sumber
Saya sedang bekerja di alat yang disebut pev untuk mengambil informasi tentang file PE pada baris perintah.
Versi file dapat diambil dengan
-p
opsi:pev tersedia di Ubuntu dalam
pev
paket .sumber
Dari
gnome-exe-thumbnailer
naskah, disarankan oleh Scott Ritchie:mengekstrak informasi versi, mencetak beberapa data biner yang dicampur dengan teks UTF-16. Script mengubahnya menjadi teks yang dapat dibaca dengan memiparnya melalui:
Perintah keseluruhan kemudian
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'
.sumber
wrestool
disediakan olehicoutil
paket yang tersedia sebagai paket standar Debian sejak perjalanan pulang.| hexdump -C
icoutils
paket.Sebagai alternatif untuk menggunakan tr dan sed untuk mem-parsing output dari solusi @ mechanical-snail, berikut adalah GNU strings dan GNU grep versi:
MEMPERBARUI:
Alternatif lain adalah versi terbaru dari exiftool oleh Phil Harvey (ini didasarkan pada perl, mudah dipasang di Linux jika distro Anda tidak memilikinya, juga tersedia untuk Mac dan Windows). Ini memiliki banyak opsi pemformatan.
sumber
libimage-exiftool-perl
?Jika Anda menginstal
gnome-exe-thumbnailer
paket, Anda cukup melihat nomor versi dinautilus
.Kode untuk melakukan ini secara manual tersedia di
/usr/bin/gnome-exe-thumbnailer.sh
sumber
Saya baru tahu sendiri cara membuat dict python yang bagus dengan informasi (saya mencari-cari di sekitar saya dan beberapa alasan di sini) dan ingin mempresentasikan metode saya di sini:
Github Gists - spookyahell / exe2version_info.py
Saya melisensikannya di bawah Lisensi MIT ... siapa pun yang merasa perlu membuat skrip yang bermanfaat atau hal-hal lain dengannya ...
Dan lihat Github Gists - spookyahell / peinfo.py untuk contoh implementasi metode ini di skrip lain ...
sumber