быстрый способ узнать, является ли установленное приложение 64-битным или 32-битным

<p>у меня установлено стороннее приложение (в данном случае cognos data manager), установленное на 64-битной windows server 2003.</p><p>есть ли быстрый способ определить, было ли приложение построено/скомпилировано как 64-битное приложение или как 32-битное приложение?</p><p>по умолчанию программа хотела быть установленной в program files (x86). я предполагаю, что это означает, что это 32-битная версия. мне нужно было заставить его общаться с базой данных oracle и заставить его работать, я в итоге переустановил его в путь к каталогу, в котором не было скобок «(» и «)», так как это вызывало проблему. я также установил как 64-битные, так и 32-битные клиенты oracle.</p><p>для дальнейшего использования я хотел бы иметь возможность набрать команду «xxxx fred.exe» и попросить ее указать, потребуется ли для fred.exe 32-разрядная или 64-разрядная настройка (например, odbc источники данных и т. д.).</p>

<p>если вы запускаете приложение, в диспетчере задач оно должно иметь * 32, чтобы указать, что оно 32-разрядное. я почти уверен, что они реализовали это в server 2003, но это не очень хорошо, надеюсь, кто-то может уточнить.</p><p>вы также можете запустить его через <a href="https://www.google.com/search?q=peid">peid</a> . peid не поддерживает 64-битные pe, поэтому он будет подавлен, если он 64-битный.</p><p>существует также известный файл <a href="http://gnuwin32.sourceforge.net/packages/file.htm">gnu</a> для windows. он расскажет вам все виды информации об исполняемом файле.</p><p>пример:</p><pre><code>$ file winrar-x64-392b1.exe winrar-x64-392b1.exe: pe32+ executable for ms windows (gui) $ file display.exe display.exe: pe32 executable for ms windows (gui) intel 80386 32-bit</pre> </code></pre><p>как видите, 64-битный установщик winrar классифицирован как pe32 +, что <a href="http://www.tortall.net/projects/yasm/manual/html/objfmt-win64.html">означает 64-битный исполняемый файл</a> . 32-битное приложение - это просто pe32, 32-битный исполняемый файл.</p>

<p>самый простой способ, без установки другой программы или запуска файла, это просто щелкнуть правой кнопкой мыши файл, выбрать<strong> свойства </strong>, а затем перейти на вкладку<strong> совместимость </strong>. если нет неактивных параметров и предлагаются режимы windows xp и 9x, это 32-разрядная версия. если имеются неактивные параметры, а vista - самый ранний из предложенных режимов, это 64-разрядная версия. нет необходимости запускать приложение вообще.</p><p>если приложение уже запущено, вы все равно можете использовать идею * 32, упомянутую в других ответах. однако это недоступно в windows 8.x и его новом диспетчере задач. к счастью, вы можете включить<strong> платформа </strong>столбец, щелкнув правой кнопкой мыши заголовки столбцов на вкладке<strong> подробности </strong>и выбрав<strong> выбрать столбцы </strong>. столбец будет содержать «32-разрядный» или «64-разрядный», в зависимости от ситуации.</p>

<p>если у вас установлен visual studio или platform sdk, вы можете использовать <code>dumpbin /headers</code> для просмотра значений заголовка pe.</p><p>пример для 64-битного исполняемого файла:</p><pre><code>pe signature found file type: executable image file header values 8664 machine (x64) 5 number of sections 4987edca time date stamp tue feb 03 08:10:02 2009 0 file pointer to symbol table 0 number of symbols f0 size of optional header 23 characteristics relocations stripped executable application can handle large (>2gb) addresses optional header values 20b magic # (pe32+) 8.00 linker version 2a600 size of code 18a00 size of initialized data 0 size of uninitialized data 2ae90 entry point (000000000042ae90) 1000 base of code ... </code></pre><p>и для 32 бит:</p><pre><code>pe signature found file type: executable image file header values 14c machine (x86) 3 number of sections 4b0c786d time date stamp wed nov 25 01:21:01 2009 0 file pointer to symbol table 0 number of symbols e0 size of optional header 103 characteristics relocations stripped executable 32 bit word machine optional header values 10b magic # (pe32) 9.00 linker version 42000 size of code 4000 size of initialized data 6f000 size of uninitialized data b0ee0 entry point (004b0ee0) 70000 base of code ... </code></pre><p>первое значение в заголовке файла говорит вам об архитектуре: 0x14c для x86 или 0x8664 для x64.</p>

<p>если у вас есть программа шестнадцатеричного редактора, просто откройте файл с ней и вскоре после стандартного ввода заголовка (например, «эта программа не может быть запущена в режиме dos ...»), вы увидите либо</p><p>"pe..l" (шестнадцатеричный код: 504500004c) = 32 бита</p><p>или же</p><p>"pe..d †" (шестнадцатеричный код: 504500006486) = 64 бита</p>

<p><img src="https://i.stack.imgur.com/idmu4.gif" alt="alt text"> <a href="http://www.mitec.cz/exe.html">exe explorer</a> <br> исполняемый файл проводник для типов файлов os/2, ne, pe32, pe32 + и vxd.</p><blockquote> <p>это приложение основано на <a href="http://www.mitec.cz/pe.html">mitec portable executable reader</a> . он читает и отображает свойства и структуру исполняемого файла. он совместим с типами файлов pe32 (переносимый исполняемый файл), pe32 + (64-битный), ne (новый исполняемый файл windows 3.x) и vxd (драйвер виртуального устройства windows 9x). исполняемые файлы .net также поддерживаются.</p> <p>он перечисляет введенные классы, используемые единицы и формы для файлов, скомпилированных компиляторами borland.</p> </blockquote><p>примечание: он поставляется с графическим интерфейсом и позволяет вам «исследовать» структуру двоичных файлов windows.<br> к сожалению, он даже не принимает целевой двоичный файл для открытия из командной строки. но детали, которые он дает, могут быть полезны в некоторых случаях.</p>

<p>вы можете проверить, используя <a href="https://technet.microsoft.com/en-us/sysinternals/bb897441.aspx"><code>sigcheck.exe</code></a> который является частью <a href="https://technet.microsoft.com/en-us/sysinternals/bb842062.aspx">sysinternals suite</a> , например.</p><pre><code>$ sigcheck.exe some\_app.exe sigcheck v2.51 - file version and signature viewer copyright (c) 2004-2016 mark russinovich sysinternals - www.sysinternals.com c:/program files (x86)/foo app\some\_app.exe: verified: signed signing date: 14:48 23/12/2015 publisher: x company: x description: x product: some app prod version: 5.0.0.1241 file version: 5.0.0.1241 machinetype: 32-bit </code></pre>

<p> <a href="http://www.dependencywalker.com/">dependency walker</a> это полезный инструмент с графическим интерфейсом для проверки не только exe-файлов, но и dll файлов. 64-битный dll или exe-файл будет иметь маленькую иконку 64 рядом с ним.</p>

<p>другой простой способ - использовать pesnoop:</p><pre><code>c:\> 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... ... </code></pre><p>одно из мест, где можно получить pesnoop: <a href="http://www.prestosoft.com/download/plugins/pesnoop.zip">http://www.prestosoft.com/download/plugins/pesnoop.zip</a> </p><p>- дэйв</p>

<p>а для вас, энтузиастов gui, самый простой способ - установить это расширение explorer:</p><p> <a href="http://www.silurian.com/win32/inspect.htm">http://www.silurian.com/win32/inspect.htm</a> </p><p>- дэйв</p>

<p>если вы запустите программу, вы можете использовать <a href="http://technet.microsoft.com/en-us/sysinternals/bb896645">«process monitor»</a> (procmon) из <a href="https://technet.microsoft.com/en-us/sysinternals/bb842062.aspx">sysinternals suite</a> .</p><p>он портативный и дает вам много информации о ваших процессах.</p>

<pre><code>filever /bad *.exe </code></pre><p>wamd64 или w32i или w16 будут в первом столбце.</p>