不明なアーカイブファイルを探し回る前に、何を知っておくべきですか?

StackOverflow https://stackoverflow.com/questions/295711

  •  08-07-2019
  •  | 
  •  

質問

私がプレイするゲームは、すべてのデータを.DATファイルに保存します。ファイルを調べる際に、いくつかの作業が行われました。いくつかの既存のツールもありますが、よくわかりません現在の状態。自分でデータを調べてみるのは楽しいと思いますが、ファイルを調べようとしたことは一度もありません。

これに真っ先に取り組む前に、データ抽出の目的でファイル形式を調べることについて知っておくべきことはありますか?

編集:非常に一般的なヒントが欲しいのですが、ファイル形式を調べることは興味深いようです。 File Xを取得して、それについて学習する問題に取り組む方法を学びたいと思います。

役に立ちましたか?

解決

  1. 行き過ぎる前に、必ず16進エディタが必要になります。メモ帳が使用しているフォント(またはテキストエディター)で、生のデータを大きな空のブロックとしてではなく、数字として見ることができます。
  2. お持ちのアーカイブ抽出ツール(zip、7z、rar、gz、tarなど)で開いて、名前が変更されたファイル形式(.PK3はそのようなもの)かどうかを確認してください。
  3. ファイル内のどこかに既知のファイル形式のヘッダーを探します。これにより、データの特定の部分が保存されている場所を見つけることができます(つまり、「IPNG」を検索して、圧縮されていないpngファイルを見つけます)。
  4. 特定のデータが保存されている場所を見つけたら、その場所と長さを書き留め、ファイルの先頭付近でこれらの値のいずれかに等しい数を見つけることができるかどうかを確認します。実際のデータに。
  5. 特定の値の意味を推測したり、直観したりする必要がある場合があります。間違っている場合は、動き続けてください。できることはあまりありません。
  6. http://www.wotsit.org は.datファイル内のヘッダーを見つけるのに役立つ、既知のファイル形式のフォーマットに特に役立ちます。

他のヒント

最初にファイルをバックアップします。与えることができるダメージの量を制限したら、エドが示唆したようにただ突いてください。

担当者のレベルを見ると、16進数、エンディアン、さまざまなデータ型の表現など、基本的な入門書が少し必要ないでしょう。データの構造に関する複雑な仮定をテストするためのクイックスクリプトを作成する機能と同様に、データを16進数で表示できる優れたツールはもちろん不可欠です。これらはすべて自明のはずですが、おそらく他の誰かを助けるかもしれないので、私はそれらに言及すると思いました。

コンテンツをある程度制御できる場合、未知のファイル形式を攻撃する最良の方法の1つは、差分アプローチをとることです。ファイルを保存し、小さな制御された変更を加えて、再度保存します。ファイルのバイナリ比較を実行して、違いを見つけます-できれば、挿入と削除を検出できるツールを使用してください。暗号化されたファイルを扱っている場合、小さな変更が大きな違いを引き起こします。単に圧縮されている場合、違いはローカライズされません。また、ファイル形式が簡単な場合、状態の単純な変更はファイルの単純な変更になります。

他のことは、いくつかの一般的な圧縮技術、特にzipとgzipを見て、それらの「署名」を学ぶことです。これらの形式のほとんどは「自己識別」です。解凍を開始すると、作業中の内容が理解できる形式であるかどうかを簡単に健全性チェックできます。

暗号化を除いて、アーカイブファイル形式は基本的に何らかのインデックスメカニズム(ディレクトリまたはソート)であり、インデックス内のポインターを介してアーカイブ内からこれらの要素を特定する方法です。

標準の圧縮アルゴリズムの遍在性により、それらのブロックがどこから始まるのかを見つけて、インデックスまたは目次を探し出そうとすることが問題になります。

一部のインデックスはすべて1つの場所にあります(ファイルシステムのように)、他のユーザーは単にアーカイブ内の各要素の前にID情報を付けます。しかし、最終的にどこかで、あるブロックから別のブロックへのオフセットに関する情報があり、データ型に関する情報があります(たとえば、GIFファイルを保存している場合、GIFにも署名があります)。

これらは、ファイル内で追い詰めようとしているパターンです。

どういうわけか同じ形式を使用して2つのバージョンのデータを手に入れることができればいいと思います。たとえば、ゲームでは、CDから初期バージョンを入手し、新しいパッチを適用したバージョンを入手できる場合があります。これらはあなたが探している情報を本当に強調することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top