PE EXE / DLL 파일 버전 정보를 보는 방법은 무엇입니까? 버전 정보

Windows의 경우 실행 파일 / 라이브러리 파일 속성 창에 버전 정보 페이지가 있습니다. 우분투에서 그 정보를 보는 방법?



답변

http://www.ucware.com/apev/index.htm 과 같은 타사 PE 파일 뷰어를 설치해야합니다 .


답변

명령 줄에서 PE 파일에 대한 정보를 검색하기 위해 pev 라는 도구 를 사용하고 있습니다.

다음 -p옵션을 사용하여 파일 버전을 가져올 수 있습니다 .

pev -p program.exe

pev는 pev패키지의 Ubuntu에서 사용할 수 있습니다 .


답변

로부터 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'입니다.


답변

@ mechanical-snail 솔루션의 출력을 구문 분석하기 위해 trsed 를 사용하는 대신 GNU 문자열 및 GNU grep 버전이 있습니다.

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

FileVersion
Release 0.65
ProductVersion
Release 0.65

최신 정보:

또 다른 대안은 Phil Harvey 의 최신 버전의 exiftool입니다 (perl을 기반으로하고 배포판이없는 경우 Linux에 쉽게 설치할 수 있으며 Mac 및 Windows에서도 사용 가능). 많은 서식 옵션이 있습니다.

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

File Version                    : Release 0.67
Product Version                 : Release 0.67


답변

gnome-exe-thumbnailer패키지 를 설치하면 의 버전 번호를 확인할 수 있습니다 nautilus.

이 작업을 수동으로 수행하는 코드는 /usr/bin/gnome-exe-thumbnailer.sh


답변

방금 정보를 사용하여 멋진 파이썬 dict을 만드는 방법을 스스로 알아 냈습니다 (어떤 이유로 나 자신을 둘러보고 여기에 상처를
입혔습니다) .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)

나는 MIT 라이센스하에 라이센스를 부여하고 있습니다 … 유용한 스크립트 또는 다른 것들을 만들어야 할 필요가 있다고 생각하는 사람은 누구나 …

그리고 다른 스크립트에서이 메소드의 구현 예는 Github Gists-spookyahell / peinfo.py 를 참조하십시오 .


답변