Delphiでシリアル化された古いファイル形式を逆シリアル化しようとしています。バイナリシリアル化を使用しています。ファイルに含まれる非常に高レベルのレコードを除いて、ファイルの構造については何も知りません。
この問題を解決するためにどのような手順を実行しますか?ツールなどはありますか?
Delphiでシリアル化された古いファイル形式を逆シリアル化しようとしています。バイナリシリアル化を使用しています。ファイルに含まれる非常に高レベルのレコードを除いて、ファイルの構造については何も知りません。
この問題を解決するためにどのような手順を実行しますか?ツールなどはありますか?
優れた16進法であり、灰白質を使用して構造を識別します。
ファイルの種類に関するヒントが得られたら、より専門的なツールを検索できます。
unix / Linuxの「file」コマンドを実行するのも良いでしょう(*)それがどのように機能するかについては、以下のBarryのコメントを参照してください。別の拡張子を使用して非表示になっているDBF、ZIPなどの一般的なファイルタイプをすばやく確認できます。
(*)Windows用のサードパーティビルドがありますが、バージョンが遅れる場合があります。最近の*nixディストリビューションでそれを実行できる場合は、そうすることをお勧めします。
シリアル化プロセスは、公開されているすべてのプロパティをループし、それらの値をテキストファイルにストリーミングするだけです。ファイルにストリーミングされた正確なクラスがわからない場合は、ファイルの逆シリアル化に非常に苦労します。(不可能ではないにしても)
優れた16進エディタが最初です。ファイルがバッファリングなしで読み取られる場合(たとえば、TFileStreamから直接読み取られる場合)、SysInternalsからProcMonを使用するときにいくつかの情報を取得できます。どのデータがどのチャンクで読み取られるかを正確に確認できるため、すでに特定した構造間の境界がどこにあるかをより迅速に判断できます。