Trong Windows có một trang thông tin phiên bản trong cửa sổ thuộc tính tệp thực thi / thư viện. Làm thế nào để xem thông tin đó trong Ubuntu?
Trong Windows có một trang thông tin phiên bản trong cửa sổ thuộc tính tệp thực thi / thư viện. Làm thế nào để xem thông tin đó trong Ubuntu?
Câu trả lời:
Bạn có thể cần phải cài đặt trình xem tệp PE của bên thứ ba, chẳng hạn như http://www.ucware.com/apev/index.htm
Tôi đang làm việc trong một công cụ gọi là pev để lấy thông tin về các tệp PE trên dòng lệnh.
Phiên bản tệp có thể được tìm nạp với -p
tùy chọn:
pev -p program.exe
pev có sẵn trên Ubuntu trong pev
gói .
Từ gnome-exe-thumbnailer
kịch bản, được đề xuất bởi Scott Ritchie:
wrestool --extract --raw --type=version inputfile.exe
trích xuất thông tin phiên bản, in một số dữ liệu nhị phân trộn với văn bản UTF-16. Kịch bản chuyển đổi nó thành văn bản có thể đọc được bằng cách chuyển nó qua:
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'
Lệnh tổng thể là sau đó 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
được cung cấp bởi icoutil
gói có sẵn dưới dạng gói Debian tiêu chuẩn kể từ khi quay trở lại.
| hexdump -C
icoutils
gói.
Thay thế cho việc sử dụng tr và sed để phân tích đầu ra từ giải pháp của @ Mechanical-snail, đây là một chuỗi GNU và phiên bản GNU grep :
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
CẬP NHẬT:
Một lựa chọn khác là một phiên bản exiftool gần đây của Phil Harvey (nó dựa trên perl, dễ cài đặt trên Linux nếu bản phân phối của bạn không có nó, cũng có sẵn cho Mac và Windows). Nó có rất nhiều tùy chọn định dạng.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67
libimage-exiftool-perl
nào?
Nếu bạn cài đặt gnome-exe-thumbnailer
gói, bạn chỉ cần nhìn vào số phiên bản trong nautilus
.
Mã để làm điều này bằng tay có sẵn trong /usr/bin/gnome-exe-thumbnailer.sh
Tôi chỉ tìm ra cách tạo ra một con trăn đẹp với thông tin (tôi đang tìm kiếm xung quanh và tìm kiếm ở đây vì lý do nào đó) và muốn trình bày phương pháp của tôi ở đây:
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)
Tôi đang cấp phép cho nó theo Giấy phép MIT ... có thể bất kỳ ai cảm thấy cần phải tạo các tập lệnh hữu ích hoặc những thứ khác với nó ...
Và xem Github Gists - spookyahell / peinfo.py để biết ví dụ về cách thực hiện phương pháp này trong một tập lệnh khác ...