답변:
http://www.ucware.com/apev/index.htm 과 같은 타사 PE 파일 뷰어를 설치해야합니다 .
로부터 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'
입니다.
wrestool
은 icoutil
표준 데비안 패키지로 제공되는 패키지에서 제공됩니다 .
| hexdump -C
icoutils
패키지 안에 있습니다.
@ mechanical-snail 솔루션의 출력을 구문 분석하기 위해 tr 및 sed 를 사용하는 대신 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
libimage-exiftool-perl
?
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 를 참조하십시오 .