http://www.cmagazine.jp/q/old.html#index17
より引用。
Q. バイナリファイルの判定
たとえば、ASCIIコードと改行などわずかなコントロールコードだけで構成される
ファイルの場合、プレーン・テキストだと類推できます。

また、ほとんどのバイナリファイルには特徴的なコードが埋め込まれているので、
そこからどんなタイプのファイルなのかを知ることができます。たとえば、
「%PDF-1.3」で始まる文字列が書き込まれていれば、Acrobatで読むことのできる
PDFファイルであることがわかりますし、先頭に「#!/bin/sh」とあれば
シェルスクリプトです。

バイナリの実行ファイルなども同様で、OSなど実行環境に特有のコードパターンが
書き込まれています。このパターンを「マジック」あるいは「マジックナンバー」と
呼びます。UNIXの file (1) コマンドは、「ファイルシステム>マジック>言語」の
順でチェックを行い、ファイルの種類を判別しています。

マジックにはたくさんの種類がありますので、ぜんぶ自分で調べてプログラムを
つくっていては骨が折れますから、file(1)でも参照しているマジックナンバーの
リスト(/usr/share/magicなど)を利用するとよいかもしれません。