Existe uma ferramenta de linha de comando para verificar 32 bits ou 64 bits de um exe?

5

No Windows, como:

is64 abc.exe  
1  

e

is32 def.exe  
1  

Enquanto o abc.exe é compilado de 64 bits e o def.exe é de 32 bits no Windows.

    
por kissson 31.08.2012 / 10:40

3 respostas

6

Is there a command line tool to check 32-bit or 64-bit of an exe?

Sim

c:\Program Files (x86)\GnuWin32\bin>file file.exe
file.exe; PE32 executable for MS Windows (console) Intel 80386 32-bit

c:\Program Files (x86)\GnuWin32\bin>cd ..\..\evernote\evernote   
c:\Program Files (x86)\Evernote\Evernote>file evernote.exe
evernote.exe; PE32 executable for MS Windows (GUI) Intel 80386 32-bit

c:\Program Files (x86)\Evernote\Evernote>cd c:\Program Files\Internet Explorer    
c:\Program Files\Internet Explorer>file iexplore.exe
iexplore.exe; PE32+ executable for MS Windows (GUI) Mono/.Net assembly

O formato PE32 significa Portable Executable 32-bit, enquanto o PE32 + é o formato Portable Executable de 64 bits.

Veja o link

like:

is64 abc.exe
1

Não é exatamente assim.

Você pode usar a opção -b para excluir o nome do arquivo da saída, então você só precisa de um kung fu de linha de comando para extrair a primeira palavra (PE32 ou PE32 +) compará-lo com PE32 + e usá-lo em seu declaração.

Windows 10

No Windows 10, se você tiver a atualização de aniversário, se ativar o shell bash , você pode abrir um shell bash e usar o comando file como este

rgb@MYPCNAME:/mnt/c$ file install.exe
install.exe: PE32 executable (GUI) Intel 80386, for MS Windows

ou

rgb@MYPCNAME:/mnt/c/Program Files/Internet Explorer$ file ieinstal.exe
ieinstal.exe: PE32+ executable (GUI) x86-64, for MS Windows
    
por 31.08.2012 / 12:57
4

Eu escrevi um par de programas estritamente fazendo o que você pediu (com a adição de mensagens de erro em erros et cetera.) (E, na verdade, é um programa com uma definição que altera seu comportamento para ser perfeitamente preciso, mas isso não importa.)

Você pode encontrá-los no meu Dropbox, aqui . O código fonte está incluído no pacote, mas você pode descartá-lo se for desnecessário. É basicamente incluído apenas no caso de você não confiar em meus binários.

Exemplo de uso :

>is32 C:\Windows\System32\taskmgr.exe
1

>is64 C:\Windows\System32\taskmgr.exe
0
Basicamente, o programa trabalha primeiro mapeando a memória do binário, localizando então o cabeçalho do PE e, finalmente, simplesmente comparando o campo Machine com o valor para qualquer arquitetura solicitada. Essencialmente, um processo muito simples.

    
por 31.08.2012 / 14:06
1
$  file access-client-win32.exe 

access-client-win32.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit


$ file access-client-win64.exe

access-client-win64.exe: PE32+ executable for MS Windows (console) Mono/.Net assembly

win32.exe -> PE32

win64.exe -> PE32+

ps: PE - > Executável Portátil

    
por 10.12.2014 / 08:21