WeSeong ログイン
← 記事一覧に戻る
ディスクとファイル

ZIP形式のデータ構造、ディスク

ZIP形式のデータ構造、ディスク

Ⅰ. 概要

ZIPファイルの構造について解説します。ヘッダーの構成と、それぞれのヘッダーに該当する情報がどのように分類されているかを調べます。ディスクは、主要な記憶装置と補助記憶装置に分類できます。ディスクの動作原理と構造(MBR、VBR)を簡単に説明し、実際のコンピュータでの動作原理を理解します。さらに、HDDとSSDの違い、速度に関連するファイルの読み込み、書き込み、削除、コピーの違いについても解説します。最後に、FTK Imagerを使用して、MBRとVBRをHxDで分析するためのイメージダンプ作業を行います(詳細については次の投稿で)。



Ⅱ. ZIP 構造体

ZIPファイルの構造分析

ZIPファイルの構造に関する参考になるブログを紹介します。詳細な説明があるので、ぜひご覧ください。


ZIPファイルの構造は、以下のようにシンプルです。 ローカルファイルヘッダー、中央ディレクトリファイルヘッダー各ファイルは圧縮されており、最後に 中央ディレクトリレコードのヘッダーこれにて、ヘッダーの構成要素について詳しく見ていきます。


  1. ローカルファイルヘッダー


ローカルファイルヘッダーは、以下の構成になっており、詳細については、上記のブログを参照してください。また、オレンジ色の「シグネチャ」や「バージョン」、フラグなどは、固定されたバイト値で定義されています。しかし、緑色の「ファイル名」、「追加フィールド」、「データ」の部分は、変動する可能性があります。例えば、メモ帳の場合、タイトルや本文の長さはそれぞれ異なるためです。


  1. 中央ディレクトリファイルのヘッダー


中央ディレクトリファイルのヘッダーは、Local File Headerとは異なり、より詳細な情報を表示します。圧縮サイズ、ファイルの説明、バージョン、最終更新日など、より詳しい情報が含まれています。


  1. 中央ディレクトリのヘッダー


上記のローカルファイルヘッダーやセントラルディレクトリファイルヘッダーは、圧縮ファイルの数に応じて複数存在しますが、この「セントラルディレクトリの終了」ヘッダーは、名前からわかるように、圧縮されたZIPファイルの全体的な情報を含んでいるため、 最後に、ヘッダーを1つそのため、最後の部分である0xB0、0xC0の領域には、中央ディレクトリの数やサイズ、ZIPファイルの記述などの情報が格納されています。


※ 実際の実習を通して ZIP Pythonでファイルをバイナリ形式で読み込み、ヘッダーとヘッダーの属性を自動的に抽出するコードを作成しましたが、これは非常に高度なコードであるため、実際に試してみる方が、構造を理解するのに適していると考え、公開していません。 実際に抽出した16進数の値を変更したり、タイトルを変更したり、内容を変更したりといった作業が可能です。 ただし、これはあくまで遊びの一環です。


※ 補足として、この圧縮ファイル構造は、ほとんどの一般的なファイル形式で利用されていると考えられます。例えば、韓国語のファイルであるHWPXや、Excelの拡張子であるxlsxといった形式が挙げられます。これらは圧縮ファイル形式です。



Ⅲ. ディスク

ディスク種類は 記憶装置わあ 補助記憶装置そこにあります。以前のデータは 順番に、段階的にその後、中間データを特定するために、元の状態に戻ることは非常に困難でした。さらに、このデータは一時的なもので、現代のディスクとは異なっていたのです。 「会計管理におけるランダムアクセス方式」 この技術によって、それを改善しました。 주기억 장치는 一般的に RAM(ランダムアクセスメモリ)一般的に「~」と呼ばれています。 揮発性のデータこれらはRAMに保存されます。RAMについては、以前の記事でより詳しく説明しました。ただし、フラッシュメモリ(USBなど)はRAMとは異なり、揮発性ではありません。高速であることは、コンピュータの性能に大きな影響を与える重要な要素の一つです。補助記憶装置は、コンピュータを再起動しても、インストールしたプログラムや作成した文書などが残るようにする 永続的な保存装置とは異なります。これは、揮発性メモリ(RAM)とは対照的です。 揮発性のないデータしかし、この方法でデータを保存できますが、速度が遅く、一般的には「補助記憶装置」と呼ばれています。


「ディスク」というものもありますが、これは「ディスク」とは異なります。 オーディオCD、CD-ROM(読み取り専用メモリ)、DVD-ROM(読み取り専用メモリ)、DVD-RAMなど これらは光学メディアを指します。一部は、コンピューターから取り外し、読み取り専用で使用できるものもあります。また、音楽や動画などのコンテンツを保存したり、繰り返し保存したりできるディスクもあります。CDをイメージすると理解しやすいでしょう。VMwareでネットワークを扱う際に、ネットワークカードのインターフェースが必要だったように、ディスクにもインターフェースが必要です。 統合型ドライブ電子 または ATA(高度技術アタッチメント)しかし、「並行」という概念においては PATA(並行高度技術アタッチメント)そう呼ばれています。


PATA方式


SATA方式

PATAは以前から広く使われていましたが、最近では既存のIDEの速度を改善した新しい方式が主流になっています。 SATA(シリアル・アドバンスド・テクノロジー・アタッチメント)SATA1の場合、1秒あたり150MB、SATA2の場合、1秒あたり300MBの速度が出ます。SATA2以降では、USBのようにハブを利用して、1つのポートに複数のハードディスクを接続できるようになりました。PCを起動した状態でUSBのように、電源を切らずにデバイスを接続できます。 ホットプラグ 機能も追加されました。


SCSI(小型コンピュータシステムインターフェース): また、銀行券で使用されるディスクインターフェースもあります。これは、1秒あたり320MBという速度で、一般的なハードディスクよりも大幅に高速です。サーバーやワークステーション(高性能なPCや、小型コンピュータの性能に近い高性能なコンピュータ)で使用され、別途拡張カードが必要です。その後 SAS (シリアル・アタッチド・SCSI - サーバーなどの大型コンピュータ用)それは、より高度なものへと進化し、代替される傾向にあります。


ディスクが起動し、ブートプロセスを確認すると、一般的には以下の手順で進むと考えられます。


コンピューターに電源を入れた際に、「ピピッ」といった音を聞いたことがあるかもしれません。これは 電源オンテスト (POST: Power On Self Test)これは、ハードウェアデバイスが正常に動作しているかどうかを確認するプロセスです。ハードウェア全体のチェックが完了したら、よく見かける… BIOS 画面が表示されます。フォーマットを試されたことがある方であれば、ここで設定を変更したことがあるかもしれません。BIOSはハードウェアの設定を扱うことができ、ある程度の 保存領域 (ROM)そのような機能があります。フォーマットする際に、ブートディスクを選択したり、オーバークロックの設定を変更したりすることができます。


次に MBR(マスターブートレコード)このプロセスは非常に重要です。もしこのプロセスが正常に実行されないと、システムが起動できなくなります。なぜなら、BIOSが起動可能なデバイスを読み込む際に、MBRのブートセクターを読み込む必要があるからです。ディスク全体をダンプした場合、最初に0番のセクターにMBRが配置されていることが確認できます。 メインパーティションと、補助パーティションの合計4つのパーティションの情報各パーティションには、パーティションの情報が16バイトずつ格納されており、最初のパーティションから最後の2バイトを除く510バイトまで、各パーティションごとに16バイトのデータが含まれています。



パーティション表の詳細な区分

※ ここで セクターディスクの構造を理解することが重要です。ディスクは複数のセクターに分割され、データを保存・管理しています。最後の4バイトの情報は、ディスク全体のセクターではなく、個別のパーティションの総セクター数を示しています。そして、複数のセクターが クラスタデータは、クラスタのサイズが大きくなるほど、読み込み速度が速くなります。これは、セクター単位で読み込むよりも、クラスタ単位でまとめて読み込む方が効率的だからです。しかし、クラスタのサイズが大きくなるほど、使用されていない領域が大きくなり、無駄が生じる可能性があります。


文章だけでは理解が難しい場合があるため、写真をご覧ください。MBRは446バイトまで 起動コードそれを持って、次に パーティション表これらはすべて446バイトから510バイトまでの合計4つのデータです。最後の部分は2バイトです。 署名これは、MBR(マスターブートレコード)に記録されているパーティションのことです。このパーティションは、ブート可能なパーティションのリストであり、1つのディスクには1つのパーティションしかない場合もあれば、複数のパーティションがある場合もあります。ディスクを初めて装着すると、パーティションの操作が行われます。フォーマットの際に、この部分も確認できます。CドライブとDドライブを分けて使用する場合、Dドライブをバックアップ用によく使用されるかと思います。もちろん、CドライブとDドライブは、それぞれ個別のディスクであることもあります。


※ MBR(マスターブートレコード)は、起動コードが破損すると起動できなくなり、バックアップがないため、復元が非常に困難です。


以前 ハードディスクドライブ (HDD)多くの文章を書きましたが、最近は SSD(ソリッドステートドライブ)これを使用します。HDDは、上記で説明したMBR方式を使用しますが、SSDは GPT (GUID パーティション表) GPT方式は、従来のMBR方式と比較して、パーティション数に制限がなく、容量は2TBまで可能であるという点で、より柔軟性があります。つまり、GPTはパーティション管理において、より高い利便性と優位性を持つと言えます。


論理ディスクわあ 物理ディスク 「概念」というものがありますが、これはパーティションディスクを指し、「物理ディスク」は実際のHDDやSSDのハードウェアディスクを指します。


MBR、GPTでパーティションの設定が完了した後、ファイルシステムの設定が行われます。写真のように VBR(ボリュームブートレコード)これは マスターファイルテーブルこの機能を使ってファイルを読み書きします。どのパーティションにデータが保存されているかを管理し、実際のデータは写真に示されているように データ領域このVBRは、マスターファイルテーブルと連携して管理されており、バックアップも可能ですが、起動できない場合は問題が発生する可能性があります。Windowsを使用していると、フォーマットの方法を選択するように促される際に、このVBRが表示されることがあります。 FAT, NTFS このファイルシステムがFATです。FATは、1つのファイルの最大容量が4ギガバイトを超えることができず、32ビットの制約もありましたが、NTFSはこれらのFATの欠点を補完し、4ギガバイトの制限もなく、全体的に改善されているため、最も広く使用されると考えられます。


もちろん、FATには改良版であるFAT32もあります。FAT32では、VBRの後に予約領域(ブートセクター、ファイルシステムの基本情報など)があり、FAT1やFAT2(ミラー関係 - 同じ構造)にファイルが割り当てられていることを記録しています。その後、MFT(ファイル情報を保存するテーブル)が続きます。


NTFS (次世代ファイルシステム)わあ ファイル割り当て表 (FAT)マスターファイルテーブルは、ファイルの読み書きや保存、削除といった役割を担います。通常、ファイルを作成する際に、 MBRパーティションにアクセスし、その情報を取り出す。 VBR (NTFS, FAT)VBR(可変ビットレート)方式にアクセスする。 MFT(マスターファイルテーブル)この情報を基に、データ領域に新しいファイルを保存するための空き領域を見つけ、MFT(マスターファイルテーブル)にデータ領域の空き領域に関する情報を保存した後、実際にファイルを保存します。ファイルのコピーや移動の際に、速度に違いが見られるのは、


コピー

移動

同じパーティション

遅さ

速い

別のパーティション

遅さ

遅さ

※ NTFSの場合、ファイルサイズが小さい場合は、ファイルの内容をデータ領域に保存するのではなく、MFTに記録します。


この違いが起こる理由は、



この画像を見ていただくと、理解しやすいと思います。 同じパーティション内コピーの場合、データ領域に新しいファイルをコピーし、MFT(マスターファイルテーブル)の情報(ファイル名、日付、サイズ、保存場所など)を更新する必要があります。しかし、移動の場合、MFTの情報のみを修正するだけで済むため、速度面でより効率的です。 別のパーティションコピーの場合、同じパーティション内のコピーと同様に、MFT(マスターファイルテーブル)も修正し、データ領域にもファイル情報を書き込む必要があるため、時間がかかります。移動も同様です。しかし、一般的な 削除


MTF(性別適合手術)について データ領域のリンク情報のみを削除そのため、非常に高速です。上書き処理を行うとどうなるでしょうか?

オーバーライド書き込みは、一般的な方法では復元できません。これは、既存のファイルのデータ領域を書き換えるためです。すると、MFT(マスターファイルテーブル)のヘッダー情報が破損してしまいます。つまり、MFTの情報が、書き換えられたデータの情報に置き換わってしまうのです。そのため、元のファイルのデータは失われてしまいます。ここで、HDD(ハードディスクドライブ)とSSD(ソリッドステートドライブ)の違いが挙げられます。 HDDは上書きが可能でしたが、SSDは通常、上書きができません。 トリミング技術 そのため、以前は、HDDに隠したいデータを意図的に上書きすることで、復元を困難にするという手法が用いられていました。しかし、 ランダムトリム技術は、○○で動作するものです。 定期的に使用しないファイルデータを管理する実際、データを上書きする際に0と1のみで修正すれば問題ありませんが、そうすると既存のデータは削除されたとみなされます。Trimは、データとメタデータ(MFT)の関連が切断された瞬間にリンクを特定し、状態を「利用不可」にすることで、上書きを困難にしています。また、処理速度も非常に速いため、上書きは難しいのです。


※ 以前のXPではガベージコレクションが利用されていましたが、Windows 7では「Trim」という機能が導入されました。


※ ファイルをコピーする際、作成日時よりも時間がかかる場合があります。これは、インターネットやUSB経由でファイルを転送した場合に発生します。つまり、パーティション間の移動ではなく、別のディスク間の移動です。インターネットから受信した場合は、「Zone.Identifier」という表示になります。USBの場合は、プラグアンドプレイで接続されるとすぐに認識され、ドライバーがインストールされます。


速度に関連するもう一つの側面は 断片化それは概念です。


以前のHDDの場合、ファイルデータを分割して保存していました。そのため、ファイルを読み込むには リンク(プログラミングの知識があれば、連結リストを思い浮かべれば理解しやすくなります。)以前は、ファイルの内容を一つずつ読み込む必要があり、ファイルが分散している場合、一度に読み込む方が当然速かったのです。 ディスクの断片集多くのデータを保存できたはずですが、最近では、ファイルを連続して保存できるため、速度面で優れています。また、速度に関連するもう一つの概念として、ディスクについて ナン 形状と NOR それは特定の形状を持っています。NANDは、半導体の一種です。 並列NOR方式に比べて、順次読み出しを行うため、速度が遅いというデメリットがあります。しかし、個々のセルのアドレスを記憶する必要がなく、容量を容易に拡張でき、書き込み速度も速いため、NAND方式のディスクは… USBまたはSSDそこにNORというものが存在します。NORは、セルを 並行読み込みは高速ですが、1つのセルずつ記録するため、書き込みは遅いです。そのため、高価で、スマートフォンなどにも適しています。 携帯デバイスまた、モバイルデバイスでは、大量のデータを書き込むよりも、読み取る方が多く使用される傾向があります。


※ ディスクも、自動車のエンジンの回転数(RPM)と同様に、ある特定の数値を示す。 RPM(回転数)速度が速いほど、処理速度も速くなりますが、一般的なハードディスクは7,200RPMですが、モバイルデバイスやノートパソコンの場合は、さらに速度が遅くなる傾向があります。



Ⅳ. ディスクに関する実習

まず、行うべき実習は ディスクのバックアップ作業これは、簡単に言うと、上で説明したディスク構造をすべて画像形式に変換し、Imagerプログラムを通じて読み取れるようにするものです。法的には、元のデータが破損すると証拠として認められない場合がありますが、実際にフォレンジック調査を行う場合、元のデータは使用できません。そのため、フォレンジック学会で配布されているFTK Imagerプログラムのみが使用可能であるため、このプログラムを使用してディスクのイメージを作成します。

プログラムに関連する部分

FTK® Imager - Exterro

このウェブページをご参照ください。


FTK Imagerを実行すると、


このような画面が表示されるでしょう。ここでは、USBが接続されていると仮定し、USBからのデータ転送を試みます。


「ディスクイメージを作成」ボタンをクリックしてください。


「どのようなドライブを使用するか」を尋ねられた際、Logical Driveはパーティション、Image Fileは既存のディスクダンプイメージを指すため、これらは省略し、Physical Driveを選択してUSBドライブをお選びいただけます。


実際に使用するダンプディスクを選択し、「完了」をクリックすると


ここで、「Add」を使って画像形式を指定します。最も一般的な形式は、EncaseのE01形式です。この部分については、さらに詳しく調べてください。


もし、これを続けていただければ


保存する場所とファイル名を指定します。ここで「Image Fragment Size」は、画像を分割して保存する場合、どのくらいのサイズで分割するかを指定します。「Compression」は、圧縮の度合いを表します。この値を大きくすると、ファイルサイズは小さくなりますが、画像の作成速度が遅くなる可能性があります。


そして、「開始」ボタンをクリックすると、画像ファイルの作成が開始されます。



おまけ

DISKについて学ぶ際に、まるで壁にぶつかったような感覚でした。しかし、何度も練習と復習のために記事を書いていくうちに、徐々に構造が頭の中で整理されていくような気がしてきました。次の記事では、DISKに関する練習をさらに復習しながら、実践してみようと思います!