
784
第3部 ハッキング・ラボの拡張
11-7
バイナリファイルの文字列を調べる
調査対象のバイナリファイルがある場合、最初はファイルを実行せずに解析し
ます。これを静的解析といいます。静的解析には様々な方法がありますが、最も
簡単なのはファイル内の文字列を調べることです。文字列からファイルの動作を
推測できるかもしれないからです。
stringsコマンドで調査する
stringsコマンドは、任意のファイルから可読な文字列を抽出するコマンドで
す。Linuxに標準で備わっています(*16)。
これは実行ファイルや画像ファイルに含まれる文字列を調査するときに有効で
す。例えば、実行ファイルであれば、コンパイル時にソースが機械語に翻訳され
て記録されます。そのとき、文字列データはそのままの形で埋め込まれます。
stringsコマンドはこの文字列データを抽出できます。
上記の説明では文字列を抽出するといいましたが、厳密にはすべての文字列を
抽出するわけではありません。stringsコマンドでは、「ASCII のうちで表示可能な
文字(7ビット表現)で構成される 4 バイトの表示可能な文字列」を文字列として
定義しているためです。つまり、「3バイト以下の文字列」や「UTF-8で埋め込ま
れた日本語の文字列」(8ビット表現のため)については、デフォルトのままでは
表示されません。
UTF-8の文字列を表示させるには、-eSオプションを付けます。-e オプションは
エンコーディング、-S ...