WinHex:強力なデータ復旧・フォレンジックツール - TechRepublic

WinHex:強力なデータ復旧・フォレンジックツール - TechRepublic

フィリックス・ザ・キャットは、厄介な状況から抜け出すための魔法の道具袋を持っていました。優秀なサポート技術者は皆、独自の魔法の道具袋を持っていますが、その中には通常、難解な技術的問題を解決するのに役立つ様々なソフトウェアユーティリティが入っています。サポート技術者にとって最も便利なユーティリティの一つがセクターエディターです。適切なセクターエディターがあれば、サポート技術者はデータを復元したり、削除または破損したデータを含むディスク領域を読み取ったりすることができます。WinHexは、あなたの道具袋にぴったり収まる便利なセクターエディターです。

WinHexとは何ですか?価格はいくらですか?
ドイツのX-Ways Software Technology AG社が開発したWinHexは、高度なバイナリエディタ、データ分析・編集・復旧ツール、データ消去ツール、そして証拠収集のためのフォレンジックツールとして使用できる強力なアプリケーションです。WinHexの顧客には、オークリッジ国立研究所、ヒューレット・パッカード、ナショナル・セミコンダクター、複数の法執行機関、そしてデータ復旧と保護を必要とする多くの企業が含まれています。

WinHex は Windows 95 から Windows XP まで互換性があり、次の機能を提供します。

  • ハード ドライブ (FAT および NTFS)、フロッピー ディスク、CD-ROM、DVD、コンパクト フラッシュ カード、およびその他のメディアを読み取って直接編集します。
  • RAM を読み取って直接編集します。
  • 20 種類のデータ タイプを解釈します。
  • テンプレートを使用して、パーティション テーブル、ブート セクター、およびその他のデータ構造を編集します。
  • ファイルを結合および分割します。
  • ファイルを分析して比較します。
  • 検索して置換します。
  • ドライブのクローン作成とイメージ作成。
  • データを回復します。
  • ファイルを暗号化します (128 ビットの強度)。
  • ハッシュとチェックサムを作成します。
  • ドライブを消去します。

フォレンジック機能 (スペシャリスト ライセンスが必要) には次の機能が含まれます。

  • 空きスペースやゆるいスペースを集めます。
  • キーワードに基づいてテキストを検索します。
  • ドライブの内容をタブ区切りのテーブルで表形式で作成します。これらのテーブルは、Microsoft Excelなどのスプレッドシートにインポートして並べ替えることができます。

ライセンスの価格は 44 ドル (プライベート、追加ライセンス 1 つにつき 25 ドル)、84 ドル (プロフェッショナル、追加ライセンス 1 つにつき 48 ドル)、126 ドル (スペシャリスト、追加ライセンス 1 つにつき 67 ドル) で、このアプリケーションは提供される機能を考えるとお買い得です。

ダウンロードとインストール
WinHex をお試しになりたい場合は、Winhex.zip の評価版をダウンロードしてください。このバージョンはほとんどの機能が動作しますが、Professional および Specialist 機能は無効になっています。Winhex.zip をダウンロードしたら、管理ワークステーションの一時ディレクトリに内容を解凍してください。

セットアッププログラムを起動し、インストール先フォルダと言語を選択してください。WinHexは、英語、ドイツ語、フランス語、スペイン語、イタリア語、ポルトガル語版で提供されています。(最新リリースはバージョン10.75です。)WinHexのセットアッププログラムは、これまで使用してきた他のWindowsインストールウィザードと同じように動作します。画面の指示に従うだけで、間違いはありません。

WinHex はレジストリ内に構成情報を保存せず、Windows OS フォルダー内に構成ファイルを保存しないため、移植性が高く、レジストリのサイズを小さく抑えることができます。

Windows 9xおよびMeユーザーがCD-ROMセクターに直接アクセスするには、Windowsファイル wnaspi32.dll が必要です。このファイルは通常、Windowsと同時にインストールされます。インストールされていない場合は、WindowsセットアップCDに含まれています。

Windows NT、2000、または XP でハード ディスクのセクターを編集するには、管理者権限が必要です。

WinHexの使い方
WinHexは、最も基本的なレベルでは16進エディタです。つまり、他の多くの16進エディタと同様に、アドレス、16バイトの16進数表示、16文字のテキスト表示の3つの列を表示します。

データビューアは広範囲に設定できます。例えば、ツールバーの上下左右の矢印をクリックすることで、データ表示に行を追加したり、行を削除したり、列を追加したり、列を削除したりできます。「表示」メニューのチェックボックスをクリックすることで、16進数のみ、テキストのみ、または両方で表示できます。「一般」オプションでは色とフォントを設定でき、「オフセット」列をクリックすると、10進数と16進数のアドレス値が切り替わります。

WinHexセッションは、図Aに示すスタートセンターから始まります。ここでは、ファイル、ディスク、RAM、そしてリストから選択して以前に編集したファイルを開くことができます。WinHexは、以前のファイルの最後の編集位置と最後のセッションの状態を記憶しており、スタートセンターのプロジェクトウィンドウから「最後のセッションを続行」をクリックすることで、以前のセッション全体を開くことができます。また、プロジェクトを開いたり、スクリプトを起動したりすることもできます(Professional版とSpecialist版ではスクリプトエディターが有効になっています)。

図A
スタート センターで WinHex セッションを開始します。

他のバイナリエディタと同様に、WinHex はファイルを編集可能または読み取り専用で開くことができます。編集されたデータは保存されるまで一時ファイルに保存され、保存された時点で変更が確定します。また、すべての変更がリアルタイムで直接適用されるインプレース編集モード(RAM 編集時のデフォルト)もあります。編集モードは「ファイルを開く」ダイアログから選択できます。ディスク全体またはパーティション全体を開いた場合、デフォルトのモードは編集です。


注意: ディスクエディタを使用すると致命的になる可能性があります

文字列以外の値を変更すると、実行可能ファイル(プログラムファイル)が破損する可能性があります。ドライブやRAMを直接編集すると、オペレーティングシステムやドライブの整合性が損なわれる可能性があります。実行可能ファイル、DLL、その他のプログラムファイルを編集する際は、必ずコピーを作成して作業してください。プログラムファイルの復元が必要になった場合に備えて、元のファイルも保存しておいてください。結果に確信が持てない限り、実行可能ファイルの長さや命令、データは絶対に変更しないでください。確信が持てないまま変更すると、コードが命令を見落とし、ファイルが破損して動作しなくなる可能性があります。幸いなことに、WinHexには25段階の元に戻す機能が搭載されているため、ほとんどの場合、変更内容を復元できます。


図Bは、16進表示の右側に表示されるWinHexのステータスバーです。ファイル名、作成日時といったおなじみのステータス情報に加え、ファイルの状態(オリジナル/変更済み)と元に戻す回数も表示されます。
図B
ステータス バーには、編集中のデータに関する重要な統計情報が表示されます。

ステータスバーの下部にあるデータインタープリタは、選択したデータ型に基づいて、挿入ポイントの16進値を10進値に変換します。デフォルトのデータ型は、8ビット、16ビット、32ビットの符号付きです。データインタープリタをダブルクリックすると、図Cに示すように、アセンブリ言語コード、日付形式、さまざまな整数型などの追加オプションのメニューが開きます。

図C
デフォルトでは、データ インタープリタは、選択した 16 進コード「EB」に対して 8 ビット、16 ビット、および 32 ビットの値を表示します。ここで追加されるオプションは、浮動小数点値とアセンブリ言語オペコードです。

ディスクやその他のメディアの編集
WinHexをディスクエディタとして使用する場合、オペレーティングシステム(論理的)またはBIOS(物理的)を介してメディアにアクセスできます。論理的にアクセスすると、ディスクをクラスター単位で参照できます。ファイルシステムを表示したり、パーティションのブートセクターやファイルアロケーションテーブルにアクセスしたりできます。Professionalライセンスでは、空き領域とスラック領域も表示できます。

ディスクに物理的にアクセスすると、何らかの理由でオペレーティングシステムがアクセスできないディスクを編集できる場合がよくあります。また、マスターブートレコード(MBR)パーティションテーブルやパーティションブートセクターの表示、編集、バックアップも可能です。

「ツール」メニューから「ディスクエディタ」を選択して、ディスクエディタを開きます。図Dに示す「ディスク編集」ウィンドウが表示され、編集するディスク(論理ディスクまたは物理ディスク)を選択できます。これでディスクが編集モードで開きます。変更は即座に反映されるのではなく、「保存」を選択した場合にのみ反映されます。

図D
ディスク エディターを使用して、ドライブに論理的または物理的にアクセスします。

WinHex を使用してディスクを修復するには、論理的に表示されたディスク データの表示と物理的に表示されたディスク データの表示の違いを理解することが重要です。

論理アクセスでCドライブを開くと、ディスクの00番地として表示されるのは、実際にはそのパーティションのブートセクターの先頭バイトであり、ディスク全体の先頭バイトではありません。図Dをもう一度見ると、私のディスクへの論理アクセスではC:\とD:\の2つの選択肢があることがわかります(このマシンのハードドライブは、FAT32でフォーマットされたC:\とNTFSでフォーマットされたD:\にパーティション分割されています)。一方、物理アクセスでは「ハードディスク1」の1つの選択肢しかありません。

ハードディスク1を選択すると、ドライブ全体が読み込まれます。ここで、オフセット00は実際にはハードドライブの実際の物理的な開始位置、つまりヘッド0、シリンダ0、セクタ1を意味します。ここには、ディスクのブートストラップコードとパーティションテーブルが格納されています。物理的なビューでは、ドライブC:は実際にはオフセット7E00hから始まります。比較のために、図Eは論理的にアクセスされたC:\の最初の16バイト(1)、物理的にアクセスされたハードドライブの最初の16バイト(2)、そして物理的にアクセスされたパーティションC:の最初の16バイト(3)を示しています。

図E
これら 3 つのデータ表示は、ドライブに論理的および物理的にアクセスする際のアドレス指定とデータ アクセスの違いを示しています。

論理アクセスと物理アクセスという議論はどういう意味でしょうか?MBRとそのブートストラップコード、そしてドライブのパーティションテーブルをバックアップ・復元するには、ディスクに物理的にアクセスします(WinHexがインストールされている別のディスクからアクセスするのが望ましいです)。パーティションのブートセクターのみをバックアップ・復元したい場合は、論理的にディスクにアクセスする方が少し簡単です。

ディスクアクセスのオプションがさらに充実。
ドライブを開くと、画面右側に「アクセス」ボタンが表示されます。「アクセス」をクリックすると、開いているメディアの種類に応じて、一連のオプションが表示されます。

例えば、私のシステムではC:\はFAT32パーティションなので、「アクセス」をクリックすると、図Fに示すように、ブートセクター、FAT 1、FAT 2、ディレクトリブラウザ、ルートディレクトリ、空きクラスター、余剰セクターなどにジャンプできます。NTFSパーティションでは、マスターファイルテーブルレコードにアクセスできます。

図F
これらのオプションは、ドライブに論理的にアクセスしているときに使用できます。

C:\ を物理的に開いた場合、「アクセス」を選択すると、図 Gに示すように、いずれかのディスク パーティションにアクセスしたり、パーティション テーブルとブート セクターを表示したり、パーティションを複製したり、バックアップを作成したりといった選択肢が表示されます。

図G
ドライブの操作方法は、物理アクセスによって異なります。必要なツールを使用してください。

図Fでは、アクセスオプションとして「ブートセクタテンプレート」と「ルートディレクトリテンプレート」の2つが選択できます。テンプレートは、これらのディスク領域を表示および編集するのに便利です。図Hは、「ブートセクタテンプレート」を選択した結果を示しています。16進表示で情報を直接変更することもできます。

図H
テンプレートを使用すると、生データの処理が容易になります。

ドライブの表示には、他にもテンプレートをご利用いただけます。「表示」→「テンプレートマネージャ」を選択してリストをご覧ください。さらに、WinHexユーザーの皆様から、他のテンプレートも提供されています。例えば、ZipディスクやPalmデータベースファイル形式の読み取り用テンプレートなどがあります。

MBR、パーティションテーブル、ブートセクタのバックアップと復元 マシンを
起動するには、ハードドライブに有効なMBR、少なくとも1つのアクティブパーティションを指定するパーティションテーブル、そしてそのパーティション上の有効なブートセクタ(オペレーティングシステムのブートローダーも含まれる)が含まれている必要があります。ドライブのパーティションがオペレーティングシステムから認識されるためには、MBRのパーティションテーブルにリストされ、有効なブートセクタを持っている必要があります。

MBRは、ハードディスクのセクター1にある最初の512バイトの情報(セクターあたり512バイト)で構成されています。最初の446バイトの情報には、実際のブートストラップコードが含まれています。次の64バイトはパーティションテーブル(16バイトのレコードが4つ)で、最後の2バイトにはすべてのブートセクターの終了を示すシグネチャ(55h AAh)が含まれています。

プライマリ パーティションのブート セクターをバックアップして復元することは、MBR で作業するよりも少し安全であり、WinHex の機能をデモンストレーションするのに便利な方法です。

ブートセクターは各パーティションの最初の512バイトに含まれています。いずれの場合も、セクターの末尾はシグネチャ16進コード55h AAhで終わります。WinHexを使用すると、これらの重要なコードバイトを手動で簡単にバックアップおよび復元できます。また、この情報を直接手動で編集したり、テンプレートを使用して編集したりすることも可能です。

パーティションのブートセクタをバックアップするには、「アクセス」→「ブートセクタ」をクリックします。メニューから「編集」→「セクタのコピー」→「新規ファイルへ」を選択します。ファイル名の入力を求められます。「bootcopy.dat」(datはWinHexファイル形式です)などの名前を入力して保存します。コピーされたセクタを含む新しいウィンドウが開きます。

このファイルを現在表示しているディスクまたはパーティションに保存すると、そのパーティションのデータが変更されることに注意してください。消去されたデータを復元しようとすると、一部のデータが失われる可能性があります。証拠として使用できる可能性のあるハードドライブを扱う際は、決して元のコピーで作業しないでください。元のコピーで作業する場合は、ディスクのクローンを作成します。ただし、この例ではOSディスクで作業を継続します。

テンプレート情報を印刷してハードコピーを保存しておくと、MBRを手動で再構築する必要がある場合に便利です。その場合は、WinHexでドライブにアクセスし、ブートセクターテンプレートにデータを書き込むだけです。

ブートセクターを復元する方法はいくつかあります。一つは、バックアップファイルを開き、その情報をコピーしてブートセクター領域に貼り付ける方法です。

それほど多くのファイル操作を必要としない別の方法は、バックアップ ブート セクタが存在する場合、それがウイルスによって損傷を受けたり、何らかの形で破損したりしていない限り、それをパーティションの先頭にコピーすることです。

FAT32ファイルシステムでは、ブートセクタのコピーはオフセットC00hから始まるセクタ6に保存されます。NTFSファイルシステムでは、ボリュームの末尾近くにコピーが保存されます。しかし、この情報がなくても、ブートセクタヘッダーを検索することでバックアップを見つけることができます。これは偶然にも、WinHexの検索機能を試すのに良い方法です。

ブートセクタはジャンプコマンド(EBh)で始まり、4番目の位置(オフセット3)にヘッダーが含まれます。FAT32のヘッダーは、例えばMSWN4.1のように表示されます。

JMPからMSWN4.1へ文字列全体をコピーするには、テキスト列または16進表示列でカーソルをドラッグします。文字列がハイライト表示されます(図I)。メニューから「編集」→「ブロックのコピー」→「標準」を選択してテキスト文字列をクリップボードにコピーするか、「編集」→「ブロックのコピー」→「16進値」を選択して16進コードをコピーします。どちらを選択するかは自由です。

図I
WinHex は操作されているデータ ブロックを強調表示します。

テキストをコピーした場合は「検索」→「テキストの検索」、16進数の文字列をコピーした場合は「検索」→「16進値の検索」を選択します。文字列を検索ボックスに貼り付けて「OK」をクリックします。最初の検索はセクター0で停止します。F3キーを押して検索を続行します。次のヒットはおそらくバックアップブートコピーです。

比較機能を使って、このセクターが本当にブートセクターの完全な複製であることを確認しましょう。カーソルをこのセクターに置いた状態で、「編集」→「ファイルにコピー」を選択します。ファイルにbootcopy2という名前を付けます。

WinHexで両方のファイルが開いていることを確認してください。メニューから「ファイルマネージャー」→「比較」を選択します。参照ボタンを使って、ファイルのbootcopy1.datとbootcopy2.datをそれぞれ1番目と2番目のファイルボックスに追加します。次に、図Jに示すように、WinHexが作成するレポートファイルに名前を付けます。「OK」をクリックします。結果を示すメッセージが表示されます。おそらく期待通りの結果でしょう。「相違点は見つかりませんでした」。これは、2つのファイル(およびブートセクター)が同一であることを意味します。

図J
バックアップ ブート セクタが見つかったかどうかを確認する準備ができました。

この時点で、ブート セクタのバックアップの場所がわかっており、現在のブート セクタの正確なコピーを含む 2 つのファイルがあります。

パーティションのバックアップコピーからブートセクターをコピーして置き換える練習をしましょう。注意:これは気の弱い人向けではありません。失敗した場合は、実際にブートセクターを置き換える練習が必要になるかもしれません。

ブートセクタのバックアップコピーに移動します。FAT32ドライブの場合、これを簡単に行うには、「位置」>「セクタへ移動」を選択します。「6」と入力して「OK」をクリックします。「編集」>「セクタコピー」>「標準」を選択します。これでデータがクリップボードにコピーされます。

挿入ポイントを元のブートセクタのオフセット0に戻します。「編集」→「クリップボードデータ」→「書き込み」を選択します。「クリップボードのデータはオフセット0に書き込まれます」というメッセージが表示されます。「OK」をクリックします。

クリップボードのデータがセクター0を上書きし、ハイライト表示されます。右側のステータスバーには、以下の役立つ情報が表示されます:状態:変更済み、元に戻すレベル:1、元に戻す回数:クリップボードへの書き込み。

「編集」→「元に戻す」を選択すると、変更を元に戻すことができます。この段階では、変更を確定せずにCドライブから抜けることもできます。特に勇気があり、ドライブ修復スキルを試したい場合は、「ファイル」→「セクターを保存」を選択してください。変更内容のみが保存されます。

これでブートセクターの置き換えが完了しました。ドライブのMBRとパーティションテーブルをバックアップして置き換えるには、「ツール」→「ディスクエディタ」を選択し、ディスクに物理的にアクセスしてください。その後、MBRをファイルにコピーし、置き換えが必要になった場合に備えて準備しておいてください。

追加ツール
図KLは、ディスク操作に使用できるその他のツールとオプションを示しています。ディレクトリ構造の参照、ファイルクラスターの一覧表示、ディスクのクローン作成などの機能があります。専門ツールとしては、空き領域、空き領域、分析用テキストの収集、複数のキーワードの同時検索、ドライブの目次作成、ベイツ番号(弁護士が証拠の参照に使用する形式)の表作成、空き領域と空き領域のハイライト表示などがあります。

図K
WinHexのディスクツール
図L
WinHexの専門ツール

機密ファイルの消去
最後にもう一つ、データ復旧とは正反対の機能、つまりWinHexの機密情報を消去して復元不可能にする機能について触れておきます。ファイルマネージャーの「安全に消去」オプションは、多くのファイルシュレッダーツールを凌駕する機能です。WinHexによると、この機能をファイルに適用すると、「専門家によるファイルの復元の試みさえも無駄になる」とのことです。

Wipe Securelyは、ファイルをゼロやその他の文字で複数回上書きするだけでなく、ファイルの長さをゼロにしてから削除します。SpecialistおよびProfessionalライセンスでは、WinHexはさらに高度な機能を備え、ファイル名のエントリも消去します。

詳細情報
WinHexのProfessionalおよびSpecialist機能により、このアプリはITプロフェッショナルや法執行機関の専門家にとって、低コストでありながら強力なツール群となっています。データ復旧や犯罪証拠のためにディスクを編集・検査する必要がある方、そして安全に消去する必要がある機密データを扱う方のニーズに応えます。WinHexの使い方の詳細については、WinHexウェブサイトのチュートリアルをご覧ください。

Tagged: