Você pode usar o utilitário de linha de comando file . Basicamente, você invoca o comando em um terminal e atribui a ele nomes de arquivos como argumentos. Assim:
$ file "Program Files (x86)/QuickTime/QTSystem/ExportController.exe"
Program Files (x86)/QuickTime/QTSystem/ExportController.exe: PE32 executable (GUI) Intel 80386, for MS Windows
$ file Program\ Files/CCleaner/*exe
Program Files/CCleaner/CCleaner64.exe: PE32+ executable (GUI) x86-64, for MS Windows
Program Files/CCleaner/CCleaner.exe: PE32 executable (GUI) Intel 80386, for MS Windows
Program Files/CCleaner/uninst.exe: PE32 executable (GUI) Intel 80386, for MS Windows, Nullsoft Installer self-extracting archive
Se você conhece algum Python ou mesmo Java, deve ser relativamente fácil executar o comando a partir de um aplicativo e testar se um dado binário é este ou que .
Aparentemente, há uma porta do windows aqui: link
Outra alternativa, é claro Cygwin , com os benefícios adicionais de um bash shell.