Como visualizar uma informação de versão de arquivo PE EXE / DLL?

31

No Windows, há uma página de informações de versão em uma janela de propriedades do arquivo executável / de biblioteca. Como ver essa informação no Ubuntu?

    
por Ivan 27.01.2011 / 00:27

6 respostas

0

Você provavelmente precisará instalar um visualizador de arquivos PE de terceiros, como o link

    
por user4124 27.01.2011 / 01:51
29

Estou trabalhando em uma ferramenta chamada pev para recuperar informações sobre arquivos PE na linha de comando.

A versão do arquivo pode ser obtida com a opção -p :

pev -p program.exe

O pev está disponível no Ubuntu no pev package .

    
por Fernando 16.06.2011 / 09:11
11

Do script gnome-exe-thumbnailer , sugerido por Scott Ritchie:

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

extrai as informações da versão, imprimindo alguns dados binários misturados com texto UTF-16. O script converte-o em texto legível, passando-o por:

tr '
wrestool --extract --raw --type=version inputfile.exe
, ' '\t.
tr '%pre%, ' '\t.%pre%' \
| sed 's/\t\t/_/g' \
| tr -c -d '[:print:]' \
| sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*//p'
' \ | sed 's/\t\t/_/g' \ | tr -c -d '[:print:]' \ | sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*//p'

O comando geral é wrestool --extract --raw --type=version inputfile.exe | tr '%code%, ' '\t.%code%' | sed 's/\t\t/_/g' | tr -c -d '[:print:]' | sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*//p' .

    
por Mechanical snail 10.01.2013 / 22:16
6

Como uma alternativa ao uso de tr e sed para analisar a saída da solução @ mechanical-snail, aqui está um strings do GNU e a versão GNU grep :

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

FileVersion
Release 0.65
ProductVersion
Release 0.65

ATUALIZAÇÃO:

Outra alternativa é uma versão recente do exiftool por Phil Harvey (é baseado em perl, fácil de instalar no Linux se sua distro não tiver, também disponível para Mac e Windows). Tem muitas opções de formatação.

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

File Version                    : Release 0.67
Product Version                 : Release 0.67
    
por dcg 06.01.2016 / 23:07
4

Se você instalar o pacote gnome-exe-thumbnailer , basta olhar o número da versão em nautilus .

O código para fazer isso manualmente está disponível em /usr/bin/gnome-exe-thumbnailer.sh

    
por Scott Ritchie 01.02.2011 / 12:23
-1

Eu acabei de descobrir como criar um bom python dict com a informação (eu estava olhando ao meu redor e acabei aqui por algum motivo) e gostaria de apresentar meu método aqui: 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)

Estou licenciando-o sob a Licença MIT ... pode qualquer um que sinta a necessidade de criar scripts úteis ou outras coisas com ele ...

E veja Github Gists - spookyahell / peinfo.py para um exemplo de implementação desse método em outro script ...

    
por 01.01.2019 / 04:34

Tags