Windows TIPS
| [System Environment] |
バイナリ・ファイルの内容をメモ帳で確認する
―― メモ帳を使ったメール添付ファイルの確認方法 ――
→ 解説をスキップして操作方法を読む
デジタルアドバンテージ 打越 浩幸
2005/10/22
2005/10/24更新
|
|
| 対象OS |
| Windows 2000 |
| Windows XP |
| Windows Server 2003 |
|
|
 |
| ■ |
添付ファイルやバイナリ・ファイルをエクスプローラ上などでダブルクリックすると、プログラムがいきなり実行されたり、関連付けされたアプリケーションが起動したりする。 |
| ■ |
内容が不明なファイルは、まずメモ帳で開いて確認するとよい。 |
| ■ |
文字コードを指定して開くと、Unicode文字列も表示させることができる。 |
|
|
メールにファイルが添付されている場合、それが何であるかを確認せずに、(ダブルクリックして)開こうとするのは非常に危険な行為である。もしそれがウイルスの実行ファイルであった場合、システムが感染する危険性があるからだ。現在のメール・ソフトウェアでは、添付ファイルを容易に実行できないようにセキュリティ対策が施されていることが多いが、古いソフトウェアを使っていたり、わざとセキュリティ設定を無効にしていたりする場合は、十分注意しなければならない。具体的には、ファイルをいきなり開くのではなく、その内容を確認して、問題がないと分かってから開くようにするべきである。
だがファイルの内容を確認するのはあまり容易ではない。コンピュータ・システムに詳しいユーザーならば、いわゆる「バイナリ・エディタ」という、ファイルの内容をバイナリでダンプ/編集するエディタ(16進数形式で表示、編集するエディタ)を利用して内容を確認したりするのだが、Windows OSの標準ツールとして用意されていないので、この方法は利用できない(コマンド・プロンプトを開いて「DEBUG」コマンドを使うことも可能だが、このツールは制約が大きいしユーザー・フレンドリではないので、開発者でなければ使うのは困難)。
次善の策となるが、バイナリ・エディタではなく、通常のメモ帳を使ってファイルの内容を確認する方法がある。メモ帳はどのWindows OSにも用意されているので、正体不明のファイルの内容をざっと確認するには、これが簡単である。危険な実行ファイルであるか(バイナリだけでなく、スクリプト・コードの場合もある)、それとも単なるテキストやHTML形式のメール本文であるか(マルチパート形式で、テキストとHTMLコードが両方含まれているようなメールも多い)、圧縮形式のファイルであるかどうか、などを確認することができる。
メモ帳を使ったファイルの確認方法は、メールの添付ファイルだけでなく、さまざまなファイルに対して利用できる。例えばシステムやファイル・サーバ上に見慣れないファイルがあった場合、エクスプローラ上でいきなりダブルクリックするのではなく、メモ帳で開いてみて内容を確認するとよい。また、出所や機能が不明な実行ファイルなどでも、中に含まれる文字列データなどから、その機能や名称、パラメータなどを類推することもできるだろう。
メモ帳へファイルをドラッグ&ドロップする
メモ帳を使って(バイナリ形式の)ファイルを開くには、まずメモ帳を開いておき、次に、ファイル名のアイコンをメモ帳上にドラッグ&ドロップするだけでよい。エクスプローラやデスクトップ上にあるファイル・アイコンをダブルクリックすると、通常はそのファイルの拡張子に関連付けされているアプリケーションが自動的に起動するが、ファイルが実行ファイルであると、いきなり実行されるので非常に危険である。
これに対してメモ帳では、そのような特別な解釈(ファイル・タイプなどに基づいた関連アプリケーションの起動など)は行わず、そのまま直接オープンするので(実行されないので)、内容を確認することができる。もちろん(テキスト・データではなく)バイナリ・データ・ファイルを開くと、正しく表示できずに、いわゆる「文字化け」だらけの状態になるが、文字として表示されている部分だけに注目すれば、その内容をおおよそではあるが、確認することができる。
 |
| メモ帳へファイル名をドラッグ&ドロップする |
| まずメモ帳を起動しておき、次にメールの添付ファイルのアイコンや、エクスプローラで表示されたファイル名などをその上へドロップする。これはウイルス・メールに添付されている実行ファイルを調査しようとしているところ。 |
| |
 |
添付ファイルをドラッグして、開いたメモ帳の上へドロップする。 |
| |
 |
この添付ファイルは、一見すると.TXTファイルのように見えるが、実は.PIFファイル(実行ファイル)なので、ダブルクリックすると実行されてしまう。 |
|
なおメール・ソフトウェアの設定で、添付ファイルへのアクセスを禁止している場合は、ドラッグすることができないので、あらかじめ設定を解除して、ドラッグ&ドロップできるようにしておく。ファイルをドラッグ&ドロップすると、次のように、ファイルの内容が表示されるはずである。ただしあまりにも大きなファイル(数十Mbytes)を開こうとすると、非常に時間がかかるので注意していただきたい。
 |
| バイナリ・ファイルをメモ帳で開いたところ |
| バイナリ・ファイルをメモ帳で開くと、実際には文字コード以外のデータが多く含まれているので、このように文字化けして表示される。 |
| |
 |
先頭2文字が「MZ」なら、実行ファイルを表している。 |
| |
 |
ほとんどの部分はこのように文字化けして表示されている。 |
| |
 |
ところどころ、このように認識可能な文字列が含まれている。これは実際には外部のライブラリへのエントリ・ポイント名を表している。これ以外にも、ダイアログのメッセージなどが文字列データとして埋め込まれていることが多い。 |
|
メールの添付ファイルは、一般的にはuuencodeやBase64形式でエンコードされているため、メールの本文だけを見てもその内容を把握することは簡単ではないが(Outlook Expressならメールの[プロパティ]画面で[ソースの表示]をクリックするか、[Ctrl]+[F3]キーを押すと、送られてきたメールの本文を確認できる)、この方法を使えば、デコードされた結果のファイルの内容を簡単に確認することができる。
バイナリ・データの内容を確認する
メモ帳でバイナリ・データ・ファイルを表示させると、ほとんどの部分が文字化けして表示されるが、いくらかは文字列がそのまま表示されるので、それを手がかりにして内容を調査するとよい。バイナリ・ファイルを開くと先頭に「MZ」という2文字が見えることがあるが(上の画面参照)、これはWindows OSにおける各種の実行ファイル(.EXEだけでなく、.DLLや.PIF、.SCRといったファイルでも同じ)を表している。うかつにダブルクリックすると自動的に実行されてしまうので、注意すること。メールの添付ファイルになっている場合は、絶対にクリックしないようしていただきたい。
また先頭が「PK」のものは、(ほとんどの場合は).ZIP圧縮ファイルなので、これも注意していただきたい。場合によっては解凍と同時に実行するように設定されている場合があるので、心当たりがなければ、ダブルクリックしないようにしよう。
なおメモ帳で表示させる場合は、[書式]メニューの[右端で折り返す]を有効にしておくと、内容が確認しやすくなる。
文字コードを指定してファイルを開く
ドラッグ&ドロップでファイルを開くと、テキスト・ファイルなら文字コードは自動判定される。だがバイナリ・ファイルの場合は「ANSI」になることが多い(バイナリ・ファイルの先頭には、Unicode判定用のBOMコードが入っていないので、判別が不可能だから)。ANSI文字コード(いわゆる1byte系の英数字コード)だけの文字列や、日本語のShift JIS文字列などを確認するのならこれでもよいが、場合によってはUnicodeやUTF-8形式で表示させたい場合がある。例えばWindows OSのバイナリでは、Unicode形式で文字列リソースを扱うことが多いので、このようなファイルをANSI文字コード形式で表示させても、文字列部分をまったく見ることができず、内容を調査することができない。
このような場合は、文字コードを指定してファイルをオープンする方法を使うとよい。ただしこの方法はWindows XPおよびWindows Server 2003でのみ利用可能な方法である(Windows 2000のメモ帳ではオープン時の文字コードを明示的に指定することはできない)。
まずメモ帳を起動し、[ファイル]メニューの[開く]を実行する。するとこのダイアログの最下部に[文字コード]を指定するドロップダウン・リストが表示されているので、ファイル名を指定後、適切な文字コードを指定してから、[開く]ボタンをクリックする。これで、ファイル中の文字列は、指定された文字コードで開かれることになる。指定可能な文字コードの種類としては、「ANSI」(Shift JIS文字コードはこれで表示できる)、「Unicode」「Unicode big endian」(Unicodeで開く。この2つはバイト並びがリトルエンディアンかビッグエンディアンかの違い。一般にWindows OSでは前者のものが利用されている)、「UTF-8」(UTF 8形式のUnicode)が選択できる。正しく文字が読み取れるように、適宜コードを変更して実行してみて欲しい。
 |
| 文字コードを指定してバイナリ・ファイルを開く |
| メモ帳へドロップすると、デフォルトの文字コード(ANSIコード)で表示されるが、文字コードを指定してファイルを開くこともできる。ただしEUCやJISコードには対応していない。この機能はWindows XPおよびWindows Server 2003のメモ帳でのみ利用可能。操作は以下の順に行うこと。 |
| |
 |
まず[ファイルの種類]をデフォルトの[テキスト文書]から[すべてのファイル]に変更する。するとファイル名の一覧に全ファイルが表示される。 |
| |
 |
次に目的のファイルをブラウズして、ファイル名をクリックする。 |
| |
 |
最後に文字コードを選択する。Windowsプログラム中の文字列リソースを表示させるなら「Unicode」を選択する。 |
| |
 |
これをクリックすると、指定された文字列コード形式でデータが表示される。 |
|
このコード指定によるファイルのオープンは、メモ帳の起動時オプションで指定することもできる(Windows XP/Windows Server 2003でのみ利用可能)。「notepad /a ファイル名」とするとANSIモードで、「notepad /w ファイル名」とするとUnicodeモードでそれぞれファイルがオープンされる。/wオプション指定時のUnicodeのバイト・オーダー(リトルエンディアンかビッグエンディアンか)は、ファイル先頭のBOMコードに基づいて自動判別されるが、BOMが存在しない場合はリトルエンディアンとして扱われるようである。
「送る」メニューにメモ帳を登録する
メモ帳でよくファイルを開くようになると、いちいちメモ帳を立ち上げておいて、ファイル名をドラッグ&ドロップするのが面倒になってくるだろう。よく利用するなら、「TIPS:[送る]メニューに項目を追加する方法」で紹介したように、あらかじめ[送る]メニューにメモ帳を登録しておいたり、クイック起動バーにメモ帳を登録しておいたりするとよいだろう。
メールの添付ファイルやソース・コード表示、実行ファイルに関する注意などについては、関連記事の各TIPSも参考にしていただきたい。
|
この記事と関連性の高い別のWindows TIPS |
|
|
generated by
|
|
| 更新履歴 |
| 【2005/10/24】メモ帳の起動時オプションに関する記述を追加しました。 |
|
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ