У меня установлено стороннее приложение (в данном случае Cognos Data Manager), установленное на 64-битной Windows Server 2003.
Есть ли быстрый способ определить, было ли приложение построено / скомпилировано как 64-битное приложение или как 32-битное приложение?
По умолчанию программа хотела быть установленной в Program Files (x86). Я предполагаю, что это означает, что это 32-битная версия. Мне нужно было заставить его общаться с базой данных Oracle и заставить его работать, я в итоге переустановил его в путь к каталогу, в котором не было скобок «(» и «)», так как это вызывало проблему. Я также установил как 64-битные, так и 32-битные клиенты Oracle.
Для дальнейшего использования я хотел бы иметь возможность набрать команду «xxxx fred.exe» и попросить ее указать, потребуется ли для fred.exe 32-разрядная или 64-разрядная настройка (например, источники данных ODBC и т. Д.).
Ответы:
Если вы запускаете приложение, в диспетчере задач оно должно иметь * 32, чтобы указать, что оно 32-разрядное. Я почти уверен, что они реализовали это в Server 2003, но это не очень хорошо, надеюсь, кто-то может уточнить.
Вы также можете запустить его через PEiD . PEiD не поддерживает 64-битные PE, поэтому он будет подавлен, если он 64-битный.
Существует также знаменитый файл GNU для Windows. Он расскажет вам все виды информации об исполняемом файле.
Пример:
Как видите, 64-битный установщик WinRAR классифицирован как PE32 +, что означает 64-битный исполняемый файл . 32-битное приложение - это просто PE32, 32-битный исполняемый файл.
источник
file
из GnuWin32, загрузите «полный пакет» (а не «двоичные файлы») с gnuwin32.sourceforge.net/packages/file.htmСамый простой способ, без установки другой программы или запуска файла, это просто щелкнуть файл правой кнопкой мыши, выбрать « Свойства» и перейти на вкладку « Совместимость ». Если нет неактивных параметров и предлагаются режимы Windows XP и 9x, это 32-разрядная версия. Если имеются неактивные параметры, а Vista - самый ранний из предложенных режимов, это 64-разрядная версия. Нет необходимости запускать приложение вообще.
Если приложение уже запущено, вы все равно можете использовать идею * 32, упомянутую в других ответах. Однако это недоступно в Windows 8.x и его новом диспетчере задач. К счастью, вы можете включить столбец платформы , щелкнув правой кнопкой мыши заголовки столбцов на вкладке « Сведения » и выбрав « Выбрать столбцы» . Столбец будет содержать «32-разрядный» или «64-разрядный», в зависимости от ситуации.
источник
Если у вас установлен Visual Studio или Platform SDK, вы можете использовать
dumpbin /headers
для просмотра значений заголовка PE.Пример для 64-битного исполняемого файла:
И для 32 бит:
Первое значение в заголовке файла говорит вам об архитектуре: 0x14C для x86 или 0x8664 для x64.
источник
Если у вас есть программа шестнадцатеричного редактора, просто откройте файл с ней и вскоре после стандартного ввода заголовка (например, «Эта программа не может быть запущена в режиме DOS ...»), вы увидите либо
"PE..L" (шестнадцатеричный код: 504500004C) = 32 бита
или же
"PE..d †" (шестнадцатеричный код: 504500006486) = 64 бита
источник
*:FACE:B00C:*
Проводник EXE Проводник для
файлов OS / 2, NE, PE32, PE32 + и VxD.
Примечание: он поставляется с графическим интерфейсом и позволяет вам «исследовать» структуру двоичных файлов Windows.
К сожалению, кажется, что он даже не принимает целевой двоичный файл для открытия из командной строки. Но детали, которые он дает, могут быть полезны в некоторых случаях.
источник
Вы можете проверить, используя
sigcheck.exe
какой из Sysinternals Suite , например,источник
Другой простой способ - использовать PESnoop:
Одно из мест, где можно приобрести PESnoop: http://www.prestosoft.com/download/plugins/PESnoop.zip
- Дэйв
источник
А для вас, энтузиастов GUI, самый простой способ - установить это расширение Explorer:
http://www.silurian.com/win32/inspect.htm
- Дэйв
источник
Dependency Walker - полезный инструмент с графическим интерфейсом для проверки не только exe-файлов, но и DLL-файлов. 64-битный файл DLL или EXE будет иметь маленький значок 64 рядом с ним.
источник
WAMD64 или W32i или W16 будут в первом столбце.
источник
Если вы запустите программу, вы можете использовать «Process Monitor» (ProcMon) из Sysinternal Suite .
Он портативный и дает вам много информации о ваших процессах.
источник