ウィルス対策ソフトをインストールしても、メール等に添付されてきた怪しいファイルは開かないに超したことはありません。画像ファイルだと思ってダブルクリックしたら、実は実行ファイルで、重要なファイルを削除するプログラムだったということがあり得ます。

 そこで、今回作るプログラムは、ファイルの内容を簡単に確認するのに使うことができるツールです。内容は、ファイルの内容を16進数で表示し、ファイル形式の簡易判定するものです。そのため、簡単にファイルの内容をチェックしたい場合などにも使えるでしょう。

プログラム~バイナリ表示とファイル形式判定ツール

 以下のプログラムをなでしこエディタから実行すると、ファイルの選択ダイアログが出ます。適当なファイルを指定すると、その形式とファイルの内容を16進数で表示します。ここで判定できるのは、実行ファイル/画像ファイル(GIF/PNG/JPEG)/Excelファイル/テキストファイルです。

今回作成したプログラムを実行したところ
今回作成したプログラムを実行したところ
[画像のクリックで拡大表示]


#-----------------------------------------------------------------------
# バイナリ表示とファイル形式判定ツール
#-----------------------------------------------------------------------
対象ファイルは「*.*」のファイル選択。
もし、対象ファイルが空ならば、終わる。
# 先頭の1KBを読み込む
H=対象ファイルを「読」でファイルストリーム開く
BIN=Hで1024をファイルストリーム読む。
Hをファイルストリーム閉じる
DUMP=BINをバイナリダンプ。
#-----------------------------------------------------------------------
# ファイル形式の判定
コード=BINを文字コード調査
もし、LEFTB(BIN,2)="MZ"ならば
  形式=「(注意)実行ファイル」
違えば、もし((LEFTB(BIN,6)="GIF87a")||(LEFTB(BIN,6)="GIF89a"))ならば
  形式=「(画像)GIFファイル」
違えば、もし、LEFTB(BIN,4)=「{\$89}PNG」ならば
  形式=「(画像)PNGファイル」
違えば、もし、LEFTB(BIN,3)="{\$FF,$D8,$FF}"ならば
  形式=「(画像)JPEGファイル」
違えば、もし、LEFTB(BIN,2)="BM"ならば
  形式=「(画像)BMPファイル」
違えば、もし、LEFTB(BIN,4)="{\$D0,$CF,$11,$E0}"ならば
  形式=「(Office)Excel97-2003形式」
違えば、もし、LEFTB(BIN,6)="{\$50,$4B,$03,$04,$14,$00}"ならば
  形式=「(Office)Excel2007形式」
違えば
  もし、コード=「BINARY」ならば
    形式=「未知の形式(バイナリ)」
  違えば
    形式=「(テキスト){コード}文書」
ここまで
#-----------------------------------------------------------------------
# 結果表示
「---------------{~}形式:{形式}{~}---------------
名前:{対象ファイル}
内容(16進数):
{DUMP}」をメモ記入。
終わる。
#-----------------------------------------------------------------------