連載
» 2015年11月01日 05時00分 UPDATE

Tech TIPS:Windowsでバイナリファイルの内容をメモ帳(notepad)で確認する

添付ファイルやバイナリファイルをエクスプローラー上などでダブルクリックすると、プログラムがいきなり実行されたり、関連付けされたアプリケーションが起動したりする。内容が不明なファイルは、まずメモ帳(notepad)で開いて確認してみよう。文字化けしつつも、内部の文字列が読める。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows XP/Windows 7/Windows 8/Windows 8.1/Windows 10/Windows Server 2003/Windows Server 2008/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2



解説

 メールにファイルが添付されている場合、それが何であるかを確認せずに、(ダブルクリックして)開こうとするのは非常に危険な行為である。もしそれがウイルスの実行ファイルであった場合、システムに感染する危険性があるからだ。

 現在のメールソフトウエアでは、添付ファイルを容易に実行できないようにセキュリティ対策が施されていることが多い。だが、古いソフトウエアを使っていたり、わざとセキュリティ設定を無効にしていたりする場合は、十分注意しなければならない。

 具体的には、ファイルをいきなり開くのではなく、その内容を確認して、問題がないと分かってから開くようにするべきである。

 だがファイルの内容を確認するのはあまり容易ではない。コンピューターシステムに詳しいユーザーならば、一つの手段として、いわゆる「バイナリエディター」という、ファイルの内容をバイナリでダンプ/編集するエディター(16進数形式で表示、編集するエディター)を利用して内容を確認できるだろう。

 しかしバイナリエディターはWindows OSの標準ツールとして用意されていない。いちおう「DEBUG」というコマンドでバイナリファイルの内容を表示できるものの、制約が大きいしユーザーフレンドリではないので、開発者でなければ使うのは困難だろう(詳細はTIPS「ファイルの内容をバイナリ・ダンプで確認する」を参照)。

 次善の策としては、バイナリエディターではなく、通常のメモ帳(notepad.exe)を使ってファイルの内容を確認する方法がある。メモ帳はどのWindows OSにも用意されているので、正体不明のファイルの内容をざっと確認するには、これが簡単である。

 危険な実行ファイルであるか(バイナリだけでなく、スクリプトコードの場合もある)、それとも単なるテキストやHTML形式のメール本文であるか(マルチパート形式で、テキストとHTMLコードが両方含まれているようなメールも多い)、圧縮形式のファイルであるかどうか、などを確認できる。

 メモ帳を使ったファイルの確認方法は、メールの添付ファイルだけでなく、さまざまなファイルに対して利用できる。

 例えばシステムやファイルサーバ上に見慣れないファイルがあった場合、エクスプローラー上でいきなりダブルクリックするのではなく、メモ帳で開いてみて内容を確認するとよい。また、出所や機能が不明な実行ファイルなどでも、中に含まれる文字列データなどから、その機能や名称、パラメーターなどを類推することもできるだろう。

操作方法

●メモ帳へファイルをドラッグ&ドロップする

 メモ帳を使って(バイナリ形式の)ファイルを開くには、まずメモ帳を開いておき、次に、当該ファイルのアイコンをメモ帳上にドラッグ&ドロップするだけでよい。

 エクスプローラーやデスクトップ上にあるファイルアイコンをダブルクリックすると、通常はそのファイルの拡張子に関連付けされているアプリケーションが自動的に起動する。一方、ファイルが実行ファイルであると、いきなり実行されるので非常に危険である。

 これに対してメモ帳では、そのような特別な解釈(ファイルタイプなどに基づいた関連アプリケーションの起動など)は行わず、そのまま直接オープンするので(実行されないので)、内容を確認できる。

 もちろん(テキストデータではなく)バイナリデータファイルを開くと、正しく表示できずに、いわゆる「文字化け」だらけの状態になるが、文字として表示されている部分だけに注目すれば、その内容をおおよそではあるが、確認できる。

メモ帳へファイル名をドラッグ&ドロップする メモ帳へファイル名をドラッグ&ドロップする
まずメモ帳を起動しておき、次にメールの添付ファイルのアイコンや、エクスプローラーで表示されたファイル名などをその上へドロップする。これはウイルスメールに添付されている実行ファイルを調査しようとしているところ。
  (1)添付ファイルをドラッグして、開いたメモ帳の上へドロップする。
  (2)この添付ファイルは、一見すると.TXTファイルのように見えるが、実は.PIFファイル(実行ファイル)なので、ダブルクリックすると実行されてしまう。

 なおメールソフトウエアの設定で、添付ファイルへのアクセスを禁止している場合は、ドラッグすることができないので、あらかじめ設定を解除して、ドラッグ&ドロップできるようにしておく。ファイルをドラッグ&ドロップすると、次のように、ファイルの内容が表示されるはずである。

 ただしあまりにも大きなファイル(数十Mbytes)を開こうとすると、非常に時間がかかるので注意していただきたい。

文字化けしているメモ帳の画面例 バイナリファイルをメモ帳で開いたところ
バイナリファイルをメモ帳で開くと、実際には文字コード以外のデータが多く含まれているので、このように文字化けして表示される。
  (1)先頭2文字が「MZ」なら、実行ファイルを表している。
  (2)ほとんどの部分はこのように文字化けして表示されている。
  (3)所々、このように認識可能な文字列が含まれている。これは実際には外部のライブラリへのエントリポイント名を表している。これ以外にも、ダイアログのメッセージなどが文字列データとして埋め込まれていることが多い。へ

 メールの添付ファイルは、一般的にはuuencodeやBase64形式でエンコードされているため、メールの本文だけを見てもその内容を把握することは簡単ではない。だが、この方法を使えば、デコードされた結果のファイルの内容を簡単に確認できる。

●バイナリデータの内容を確認する

 メモ帳でバイナリデータファイルを表示させると、ほとんどの部分が文字化けして表示される。だが、いくらかは文字列がそのまま表示されるので、それを手掛かりにして内容を調査するとよい。

 バイナリファイルを開くと先頭に「MZ」という2文字が見えることがある(上の画面参照)。これはWindows OSにおける各種の実行ファイル(.EXEだけでなく、.DLLや.PIF、.SCRといったファイルでも同じ)を表している。うかつにダブルクリックすると自動的に実行されてしまうので、注意すること。メールの添付ファイルになっている場合は、絶対にクリックしないようしていただきたい。

 また先頭が「PK」のものは、(ほとんどの場合は).ZIP圧縮ファイルなので、これも注意していただきたい。場合によっては解凍と同時に実行するように設定されている場合があるので、心当たりがなければ、ダブルクリックしないようにしよう。

 なおメモ帳で表示させる場合は、[書式]メニューの[右端で折り返す]を有効にしておくと、内容が確認しやすくなる。

●文字コードを指定してファイルを開く

 ドラッグ&ドロップでファイルを開くと、テキストファイルなら文字コードは自動判定される。だがバイナリファイルの場合は「ANSI」になることが多い(バイナリファイルの先頭には、Unicode判定用のBOMコードが入っていないので、判別が不可能だから)。

 ANSI文字コード(いわゆる1byte系の英数字コード)だけの文字列や、日本語のShift JIS文字列などを確認するのならこれでもよい。だが、場合によってはUnicodeやUTF-8形式で表示させたい場合がある。

 例えばWindows OSのバイナリでは、Unicode形式で文字列リソースを扱うことが多いので、このようなファイルをANSI文字コード形式で表示させても、文字列部分を全く見ることができず、内容を調査することができない。

 このような場合は、文字コードを指定してファイルをオープンする方法を使うとよい。

 それにはまずメモ帳を起動し、[ファイル]メニューの[開く]を実行するとファイルオープンダイアログが表示される。その最下部に[文字コード]を指定するドロップダウンリストが表示されているので、ファイル名を指定後、適切な文字コードを指定してから、[開く]ボタンをクリックする。これで、ファイル中の文字列は、指定された文字コードで開かれることになる。

 指定可能な文字コードの種類は次の4種類だ。

  • ANSI」: Shift JIS文字コードはこれで表示できる
  • Unicode」: リトルエンディアンのUnicode。Windows OSでのUnicodeは一般的にこちら
  • Unicode big endian」: ビッグエンディアンのUnicode
  • UTF-8」: UTF-8文字コードはこれで表示できる

 正しく文字が読み取れるように、適宜コードを変更して実行してみてほしい。

メモ帳で文字コードを指定してバイナリファイルを開く 文字コードを指定してバイナリファイルを開く
メモ帳へドロップすると、デフォルトの文字コード(ANSIコード)で表示されるが、文字コードを指定してファイルを開くこともできる。ただしEUCやJISコードには対応していない。操作は以下の順に行うこと。
  (1)まず[ファイルの種類]をデフォルトの[テキスト文書]から[すべてのファイル]に変更する。するとファイル名の一覧に全ファイルが表示される。
  (2)次に目的のファイルをブラウズして、ファイル名をクリックする。
  (3)最後に文字コードを選択する。Windowsプログラム中の文字列リソースを表示させるなら「Unicode」を選択する。
  (4)これをクリックすると、指定された文字列コード形式でデータが表示される。

 このコード指定によるファイルのオープンは、メモ帳の起動時オプションで指定することもできる。

  • 「notepad /a <ファイル名>」: ANSIモードでファイルがオープンされる
  • 「notepad /w <ファイル名>」: Unicodeモードでファイルがオープンされる

 /wオプション指定時のUnicodeのバイトオーダー(リトルエンディアンかビッグエンディアンか)は、ファイル先頭のBOMコードに基づいて自動判別される(BOMが存在しない場合はリトルエンディアンとして扱われるようだ)。

●「送る」メニューにメモ帳を登録する

 メモ帳でよくファイルを開くようになると、いちいちメモ帳を立ち上げておいて、ファイル名をドラッグ&ドロップするのが面倒になってくるだろう。よく利用するなら、次のTIPSのように、あらかじめ[送る]メニューにメモ帳を登録しておいたり、クイック起動バーにメモ帳を登録しておいたりするとよいだろう。

 メールの添付ファイルやソースコード表示、実行ファイルに関する注意などについては、以下の「この記事と関連性の高い別の記事」の各TIPSも参考にしていただきたい。

■更新履歴

【2015/11/01】Windows 7以降のWindows OSで動作を確認しました。

【2005/10/24】メモ帳の起動時オプションに関する記述を追加しました。

【2005/10/22】初版公開(対象OSはWindows 2000/XP/Server 2003)。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。