PE EXE / DLL dosya sürümü bilgilerini nasıl görüntüleyebilirim?


31

Windows'ta, yürütülebilir bir / kütüphane dosyası özellikleri penceresinde bir sürüm bilgisi sayfası vardır. Ubuntu'da bu bilgiyi nasıl görebilirim?


2
Bir Linux yardımcı programını kullanarak Linux ikili dosyalarından / kütüphanelerinden veya Windows EXE / DLL dosyalarından nasıl bu bilgileri görüntüleyeceğinizi mi kastediyorsunuz?
João Pinto

1
Soru başlığında açıkça belirttiğim gibi, PE (Windows) EXE ve DLL dosyalarını kastettim (bir Linux yardımcı programını kullanarak görüntülemek için).
Ivan

Yanıtlar:



29

Komut satırında PE dosyaları hakkında bilgi almak için pev adlı bir araçta çalışıyorum .

Dosya sürümü -pseçeneği ile getirilebilir :

pev -p program.exe

PEV de Ubuntu geçerli pevpaketin .


3
@Ivan, bu cevabı kabul etmeyi düşünebilirsiniz.
Russell Silva,

Bu talimatlar eskidir . Onları güncellemeyi düşünebilirsiniz.
Ploni

11

Gönderen gnome-exe-thumbnailersenaryo Scott Ritchie tarafından önerilen:

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

UTF-16 metni ile karıştırılan bazı ikili verileri yazdırarak sürüm bilgilerini çıkarır. Komut dosyası, aşağıdakileri ileterek okunabilir metne dönüştürür:

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'

Genel komut o zaman 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 wrestool, icoutilgeri döndüğünden beri standart bir Debian paketi olarak mevcut olan paket tarafından sağlanmaktadır .
üçlü

sadece boru aracılığıyla basitleştirebilirsiniz| hexdump -C
Tomofumi

Ubuntu 18.04'te icoutilspaketin içindedir .
Bjorn

6

@ Mekanik-salyangoz çözümünün çıktısını ayrıştırmak için tr ve sed kullanmaya alternatif olarak , burada bir GNU dizesi ve GNU grep sürümü:

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

FileVersion
Release 0.65
ProductVersion
Release 0.65

GÜNCELLEŞTİRME:

Diğer bir alternatif ise Philififif tarafından sunulan exiftool'un son sürümüdür ( dağıtımınız Mac, Windows için de mevcut değilse, Linux'ta kurulumu kolaydır). Birçok biçimlendirme seçeneğine sahiptir.

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

File Version                    : Release 0.67
Product Version                 : Release 0.67

Ubuntu / Debian'daki hangi paket exiftool var? Benziyor libimage-exiftool-perl?
Xen2050

Sadece kaynak kodu indirip yerel olarak yapıyorum. Web (üstündeki "Sürüm xx.yy İndir" linkinden tar.gz dosyasını indirin owl.phy.queensu.ca/~phil/exiftool ,) dosyalarını ayıklamak ve README dosyasının MONTAJ bölümüne bakın / usr / local / bin yüklemeden sonra perl kullanarak ve bunu nasıl oluşturulacağını
DCG

4

Eğer yüklerseniz gnome-exe-thumbnailerpaketi, sadece sürüm numarasına bakabilirsiniz nautilus.

Bunu el ile yapmak için kod /usr/bin/gnome-exe-thumbnailer.sh


@Scott .. Teşekkürler. çalışır .. ilgili kod başka bir komut dosyasında kullanmak çok basittir ... "Nautilus'taki sürüm numarasına bakabilirsiniz" derken , sürüm numarasının .exe'nin aşılı olarak göründüğünü varsayalım. Nautilus'taki simgesi .. ilginç bir fikir .. Şahsen, simge görünümünü nadiren kullanırım, ancak kod pasajı benim için harika ..
Peter.O

-1

Bilgi ile güzel bir piton diktiği yaratacağımı öğrendim (kendime baktım ve bir sebepten buraya geldim) ve yöntemimi burada sunmak istiyorum:
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)

Onu MIT Lisansı altında lisanslıyorum ... faydalı senaryolar veya onunla başka şeyler oluşturma ihtiyacı duyan herkes olabilir ...

Ve Github Gists'e bakın - spookyahell / peinfo.py bu yöntemin başka bir betiğe uygulanması için


Ubuntu'ya Sormaya Hoş Geldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Kevin Bowen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.