The Windows HPC Team Blog

"Your guide to all things Windows HPC"

How to tell if a .exe file is a 32-bit or 64-bit application using dumpbin

How to tell if a .exe file is a 32-bit or 64-bit application using dumpbin

  • Comments 2
  • Likes

Goodfolk,

One of my customers wanted to know if they had really built a 64-bit application for their cluster. After all, we run WIndows HPC Server on a 64-bit server OS, so why not take full advantage of it?

I had a few minutes before I had to get back to them so I thought I'd try to polish the answer a bit. Here's what I told him: "Dumpbin is your friend."

Here's what I then provided as a really simple 'tool'. A one liner actually. If and only if you have

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64

in your path. See my blog on compiling with Visual Studio from Powershell. This works fine from the old command line shell as well.

------------------------------------------------------------------------------------------------------------------------------------------------------

Windows PowerShell
Copyright (C) 2006 Microsoft Corporation. All rights reserved.

PS C:\Home\fchism> .\pVSvars.ps1
PS C:\Home\fchism> cd PGI
PS C:\Home\fchism\PGI> dir


    Directory: Microsoft.PowerShell.Core\FileSystem::C:\Home\fchism\PGI


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         2/17/2009   2:54 PM            OSBench
d----         2/10/2009   4:17 PM            POP_PVF
-a---         3/26/2009   4:59 PM     135680 Hi.dwf
-a---         3/26/2009   4:59 PM     391168 Hi.exe
-a---         2/11/2009  11:00 AM         73 Hi.f
-a---         3/26/2009   4:59 PM    1436672 Hi.pdb
-a---         2/10/2009   4:31 PM  175156824 pgivfx64-vs2008-803.exe
-a---         2/10/2009  10:34 AM    1123401 pgi_whitepaper_unix2win.pdf
-a---         2/10/2009   4:08 PM    3526334 POP_PVF.zip


PS C:\Home\fchism\PGI> dumpbin /headers Hi.exe|findstr "magic machine"
            8664 machine (x64)
             20B magic # (PE32+)
PS C:\Home\fchism\PGI> cd C:\UnixUtilities
PS C:\UnixUtilities> dumpbin /headers zsh.exe|findstr "magic machine"
             14C machine (x86)
                   32 bit word machine
             10B magic # (PE32)
PS C:\UnixUtilities> cd ..\Home\fchism
PS C:\Home\fchism> more pVSvars.ps1
# Set up Visual Studio Variables for Powershell

--------------------------------------------------------------------------------------------------------------------------------------------------

A magic machine indeed! You can get dumpbin with any version of Visual Studio. If you don't have a commercial version go to http://www.microsoft.com/express/ .

Well short but I hope you find this to be a sweet hack.

 

Frankie

 

Comments
  • Another simple way is to use PESnoop:

    >pesnoop photoshop.exe /pe_dh

    -------------------------------------------------------------------------------

    PESnoop 2.0 - Advanced PE32/PE32+/COFF OBJ,LIB command line dumper by yoda

    -------------------------------------------------------------------------------

    Dump of file: photoshop.exe...

    Modus:        64bit Portable Executable Image...

    ...

    One place to get PESnoop is here: www.prestosoft.com/.../PESnoop.zip

    - Dave

  • If you have a hex editor program, just open your file with it and shortly after the standard header intro stuff (like "This program cannot be run in DOS mode...") you will see either

    "PE..L" (hex code: 504500004C) = 32 bit

    or

    "PE..d†" (hex code: 504500006486) = 64 bit

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment