Как посмотреть разрядность EXE и DLL файлов в Windows
В Windows 11/10 современных версий вы можете встретить три основных архитектуры исполняемых файлов и библиотек DLL — x86 (32-бит), x64 (64-бит), ARM64.
В некоторых случаях может потребоваться узнать архитектуру конкретного двоичного файла, не запуская его. В этой инструкции подробно о способах сделать это, если возникла такая необходимость.
Sigcheck
Прежде чем приступить, отмечу, что если речь идёт об EXE-файле программы и вы его уже запустили, достаточно открыть «Диспетчер задач» (правый клик по кнопке «Пуск» — «Диспетчер задач»), перейти на вкладку «Сведения» (Подробности) и посмотреть значение в столбце «Платформа» для соответствующего процесса:

Если столбец не отображается, нажмите правой кнопкой мыши по заголовку любого столбца и включить отображение в диалоговом окне «Выбрать столбцы».
Один из самых простых способов получения информации о разрядности (архитектуре) исполняемого файла или DLL — утилита Sigcheck из Microsoft Sysinternals. Она предназначена для других целей, но прекрасно подойдёт и для рассматриваемой задачи:
- Скачайте Sigcheck с официального сайта и распакуйте в удобное расположение.
- Запустите командную строку (от имени администратора, если требуется просмотр информации о файлах в системных папках).
- Перейдите в папку с распакованным архивом с помощью команды
cd путь_к_папке
- Введите команду (для запуска в x64 версии Windows)
sigcheck64 "путь_к_файлу"
и вы сразу увидите результат, включающий в себя архитектуру файла в поле MachineType:
В архиве также доступны варианты программы для 32-бит систем (sigcheck.exe) и для ARM (sigcheck64a.exe), используйте в команде тот файл, который соответствует установленной на вашем компьютере ОС.
Windows PowerShell
Архитектура исполняемых файлов указывается в их заголовке и потенциально мы можем увидеть эту информацию даже в блокноте или в любом HEX-редакторе. Но проще будет автоматизировать задачу.
Достаточно создать следующий скрипт PowerShell (расширение .ps1, сохранить в кодировке ANSI для правильного отображения русского языка):
Write-Host "=== Определитель архитектуры файлов (EXE/DLL) ===" -ForegroundColor Cyan
Write-Host "Можно просто перетаскивать файлы в это окно." -ForegroundColor Cyan
while ($true) {
Write-Host "`nВведите путь к файлу (или введите 'Exit' для выхода):" -ForegroundColor White
$path = Read-Host ">"
if ($path -match "^(?i)exit$") {
Write-Host "Выход из программы..." -ForegroundColor DarkGray
break
}
$path = $path.Trim('"', "'", " ")
if (-Not (Test-Path -Path $path -PathType Leaf)) {
Write-Host "Ошибка: Файл не найден!" -ForegroundColor Red
continue
}
try {
$stream = [System.IO.File]::OpenRead($path)
$reader = New-Object System.IO.BinaryReader($stream)
$stream.Seek(60, [System.IO.SeekOrigin]::Begin) | Out-Null
$peOffset = $reader.ReadInt32()
$stream.Seek($peOffset, [System.IO.SeekOrigin]::Begin) | Out-Null
$signature = $reader.ReadUInt32()
if ($signature -ne 0x00004550) {
Write-Host "[-] Это не корректный EXE/DLL файл Windows!" -ForegroundColor Red
continue
}
$machine = $reader.ReadUInt16()
switch ($machine) {
0x014C { Write-Host "[+] Архитектура: 32-bit (x86)" -ForegroundColor Yellow }
0x8664 { Write-Host "[+] Архитектура: 64-bit (x64)" -ForegroundColor Green }
0xAA64 { Write-Host "[+] Архитектура: 64-bit (ARM64)" -ForegroundColor Magenta }
0x01C4 { Write-Host "[+] Архитектура: 32-bit (ARM)" -ForegroundColor DarkYellow }
0x0200 { Write-Host "[+] Архитектура: 64-bit (Intel Itanium IA-64)" -ForegroundColor Gray }
default { Write-Host "[?] Архитектура: Неизвестна (Hex-код: 0x$($machine.ToString('X4')))" -ForegroundColor Gray }
}
}
catch {
Write-Host "[-] Ошибка при чтении файла: $_" -ForegroundColor Red
}
finally {
if ($reader) { $reader.Close() }
if ($stream) { $stream.Close() }
}
}Запустить его и либо указывать пути к файлам, либо просто перетаскивать их на открывшееся окно, получая информацию о разрядности:

Примечание: если PowerShell не запускает скрипт из-за политики безопасности, введите команду
Set-ExecutionPolicy RemoteSigned
подтвердите выполнение, после чего файлы .ps1 будут исправно запускаться.
Утилита File
И ещё одна простая небольшая утилита для определения типа файлов — File. Версия для Windows доступна для загрузки на этом сайте.
Порядок использования аналогичен таковому для Sigcheck:
- Переходим в папку с file.exe, в случае расположения установки по умолчанию команда будет иметь следующий вид:
cd C:\Program Files (x86)\GnuWin32\bin
- Вводим команду
file "путь_к_интересующему_файлу"
- Вывод будет отличаться: для 32-бит файлов вы увидите «PE32 executable», для большинства x64 файлов — «PE32+ executable» (в случае ARM64 также будет указание на архитектуру Aarch64). Дополнительно отображается информация о том, является ли приложение консольным или графическим (GUI) и дополнительная информация:

Надеюсь, те, кому требовалась такая информация, смогли найти в материале подходящий для себя способ определения архитектуры, для которой был скомпилирован исполняемый файл Windows.

