隠しページ講座

バイナリ編

バイナリ(binary)とは「2進数の」という意味です。って……何処のサイトでも書いてるね。。コンピュータ内では0と1でデータがやり取りされている事はある意味常識です。 このデータを「少し弄ってわからなくしてやろう」というのが隠しページ流のやり方です。

ちなみに、バイナリデータの反対に位置するのがテキストデータ。【 ソース編 】の文字化けの所でもちらっと話したShift JISやEUCなどの文字コードで表されるものです。テキストとバイナリの違いは人間が解釈するのかコンピュータが解釈するのかといった所でしょうか。

必要なファイルでの実験は止めておきましょう。ここでのサンプルを使うかバックアップを取ってから試して下さい。ファイルが破損して戻らなくなっても責任は取れません。

バイナリエディタ

バイナリデータを弄るにはバイナリエディタが必要です。「バイナリエディタなしには隠しページは解けない」という程の必需品。ツールを少しでも使う問題となれば非常に役立ちます。偽装ツールの次にこのバイナリエディタに触れて隠しページの世界に入った気がするのではないかと思います。バイナリエディタの必要性は何も「隠しページ探し」に関してだけではありません。 コンピュータを弄るなら何れは必要になるツールです。

覗いてみよう

何より大切な事はなんでも覗くという事です。これはソースを覗くのと同じです。見た事ないファイルがあればぽんぽんバイナリエディタに掘り込みましょう。見てみないと一生わかりません、見てれば特徴掴めてきます。まずは次のファイルを覗いて見ましょう。

これをバイナリエディタで開けば[ データ閲覧画像 ](抜粋)のような状態に表示されます。右部分の文字列に関していえば、通常のテキストエディタでも似た状態で閲覧は可能ですが、それでは編集や保存をする事は出来ません。例えば、データアドレス30の文字列は全て空白になっていますが、データ上では「0B 0C 0B 0B 0D 11 0D 0D 0D 0D 0D 0D 11 0D 0F 10」と違った値を示しています。バイナリで扱われるデータはとても繊細なので、少しの破損でも正常に動作しなくなります。バイナリデータのこういった特性を活かして隠しページではよく問題として扱われます。

次のファイルにはキーワードが隠されています、覗いて下さい。テキストエディタでも解りますがバイナリエディタの使用練習に使って下さい。これを覗いてキーワードが発見出来ないようでは隠しページ探しにはついて来れませんよ。

最も簡単な例ですがこういったファイルを作成するにも通常のテキストエディタでは無理なんですね。

バイナリデータを知る上ではヘッダ(header)情報が何より重要です。次のファイルではそれを弄りました。このままでは画像を表示する事は出来ません。まずはバイナリエディタで下の画像を覗いて下さい。

上記画像ではPNGのヘッダ情報の一部が書き換えられています。これは先頭部分を「臼(89 50)」と修正するだけで正常なファイルに戻せます(正常ファイル)。ヘッダ情報とはそれが何の形式なのか識別する為の部分です。JPEGならJPEGGIFならGIFそれぞれの形式に対するヘッダ情報が存在します。

それでは、ここまで説明した内容を踏まえて、次のファイルに隠されたキーワードを見つけて下さい。

バイナリについての簡単な総括

初めて触れる人にはバイナリについて色々説明必要そうですが、基本としてはそれほど説明する事はありません。ヘッダに関しては知らないと解けないでしょうが、知らない場合はその都度、自分で調べて乗り切って下さい。そもそも、全て知ってる人なんていないでしょうから、調べる事は誰しも必要な作業です。とはいえ、一般的に知られている形式くらいは押さえておいた方が良いでしょう。覗いていれば勝手に覚えますし、偽装ツールと同じく慣れが肝心です。バイナリ弄りは単純そうで実は奥が深くもあります。もっともっと必要だと思われる基礎やら知識あるだろうと思われるかも知れません。しかしその段階まで来られていたら既に熟練・上級者の域ですね。

例題

それでは例題です。工作に鋏は欠かせません。