PE EXE / DLL फ़ाइल संस्करण जानकारी कैसे देखें?


31

विंडोज़ में एक निष्पादन योग्य / लाइब्रेरी फ़ाइल गुण विंडो में एक संस्करण जानकारी पृष्ठ है। उबंटू में उस जानकारी को कैसे देखें?


2
क्या आपका मतलब है कि लिनक्स बायनेरिज़ / लाइब्रेरीज़ या विंडोज़ EXE / DLL से ऐसी जानकारी को कैसे देखना है?
जोओ पिंटो

1
जैसा कि मैंने स्पष्ट रूप से प्रश्न शीर्षक में निर्दिष्ट किया है, मेरा मतलब है पीई (विंडोज) EXE और DLL फाइलें (निश्चित रूप से लिनक्स उपयोगिता का उपयोग करने के लिए)।
इवान

जवाबों:


-1

आपको संभवतः एक तृतीय-पक्ष PE फ़ाइल दर्शक, जैसे http://www.ucware.com/apev/index.htm को स्थापित करने की आवश्यकता है


क्या इसके लिए लिनक्स देशी उपकरण नहीं है?
इवान


7
$ 25 एक फ़ाइल सूचना दर्शक के लिए? गंभीरता से?
मैकेनिकल घोंघा

5
5 अप्रैल, 2013 के बाद आगंतुकों के लिए नोट: यह सॉफ़्टवेयर बंद कर दिया गया प्रतीत होता है, और अब डेवलपर से उपलब्ध नहीं है।
मोशे काट्ज़

29

मैं कमांड लाइन पर PE फ़ाइलों के बारे में जानकारी प्राप्त करने के लिए pev नामक टूल में काम कर रहा हूं ।

फ़ाइल संस्करण को -pविकल्प के साथ लाया जा सकता है:

pev -p program.exe

pev pevपैकेज में उबंटू पर उपलब्ध है ।


3
@ यदि आप इसके बजाय इस उत्तर को स्वीकार करने पर विचार कर सकते हैं।
रसेल सिल्वा

ये निर्देश पुराने हैं । आप उन्हें अद्यतन करने पर विचार कर सकते हैं।
प्लोनी

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 पैकेज wrestoolद्वारा प्रदान किया जाता icoutilहै जो वापस आने के बाद से मानक डेबियन पैकेज के रूप में उपलब्ध है।
ट्रिपलआई

आप इसे केवल पाइप के माध्यम से सरल बना सकते हैं| hexdump -C
Tomofumi

उबंटू 18.04 में यह icoutilsपैकेज के अंदर है ।
ब्योर्न रिपेन

6

@ मैकेनिकल-स्नेल के समाधान से आउटपुट को पार्स करने के लिए ट्र और सेड के उपयोग के विकल्प के रूप में , यहां एक GNU स्ट्रिंग्स और GNU grep संस्करण है:

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

FileVersion
Release 0.65
ProductVersion
Release 0.65

अद्यतन करें:

एक अन्य विकल्प फिल हार्वे द्वारा एक्सफ़ॉल्टूल का एक हालिया संस्करण है (यह पर्ल पर आधारित है, लिनक्स पर स्थापित करना आसान है यदि आपके डिस्ट्रो के पास यह नहीं है, मैक और विंडोज के लिए भी उपलब्ध है)। इसमें बहुत सारे स्वरूपण विकल्प हैं।

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

File Version                    : Release 0.67
Product Version                 : Release 0.67

उबंटू / डेबियन में किस पैकेज में एक्सफोलिट है? लगता है libimage-exiftool-perl?
Xen2050

मैं सिर्फ सोर्स कोड डाउनलोड करता हूं और स्थानीय स्तर पर इसका निर्माण करता हूं। वेबसाइट से tar.gz फ़ाइल डाउनलोड करें (उल्लू के शीर्ष पर "संस्करण xx.yy डाउनलोड करें" लिंक। phy.queensu.ca/~phil/exiftool ), फ़ाइलों को निकालें और README फ़ाइल के INSTALLER अनुभाग को देखें पर्ल का उपयोग करके इसे कैसे बनाया जाए और फिर इसे / usr / लोकल / बिन
dcg

4

यदि आप gnome-exe-thumbnailerपैकेज स्थापित करते हैं , तो आप बस संस्करण संख्या को देख सकते हैं nautilus

ऐसा करने के लिए कोड मैन्युअल रूप से उपलब्ध है /usr/bin/gnome-exe-thumbnailer.sh


@ सच .. धन्यवाद। यह काम करता है .. संबंधित कोड किसी अन्य स्क्रिप्ट में उपयोग करने के लिए बहुत सरल है ... मेरा मानना ​​है कि "आप बस नॉटिलस में संस्करण संख्या को देख सकते हैं" से क्या मतलब है , यह है कि संस्करण संख्या .exe में grafted दिखाई देती है। Nautilus में आइकन .. एक दिलचस्प विचार .. व्यक्तिगत रूप से, मैं शायद ही कभी आइकन-दृश्य का उपयोग करता हूं, लेकिन कोड स्निपेट मेरे लिए बहुत अच्छा है ..
पीटर.ओ।

-1

मुझे अभी जानकारी मिली है कि मैं जानकारी के साथ एक अच्छा अजगर कैसे बना सकता हूं (मैं अपने आसपास देख रहा था और किसी कारण से यहां घाव हो गया) और मैं अपनी विधि यहां प्रस्तुत करना चाहता हूं:
Github Gists - spookyahell / exe2vit_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)

मैं इसे एमआईटी लाइसेंस के तहत लाइसेंस दे रहा हूं ... जो कोई भी इसके साथ उपयोगी स्क्रिप्ट या अन्य चीजें बनाने की आवश्यकता महसूस करता है ...

और एक अन्य स्क्रिप्ट में इस विधि के एक उदाहरण के कार्यान्वयन के लिए Github Gists - spookyahell / peinfo.py देखें ...


उबंटू पूछने के लिए आपका स्वागत है! जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
केविन बोवेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.