0

Visual Studio、MFC などでのコーディングの経験はほとんどありません。しかし、現在は機能していない MFC アプリケーションで作成されたいくつかのデータ ファイルがあり、別の形式に移行する必要があります。

残念ながら、アプリケーション自体の中でデータを抽出する良い方法はありません (数百または数千のレコードを個別にコピー アンド ペーストする以外に)。そして、ファイル自体を表示すること、つまり Hex Editor で表示することは、無駄であることが証明されています。アプリによって保存される生データはテキストベースですが、データベース ファイルは暗号化されたバイナリ形式でエンコードされています。

これまでのところ、アプリが MFC を使用して作成されており、CDocument クラス (またはその単純な派生クラス) を使用してファイルを格納していることを確認できました。CDocument ベースのデータ ファイルがデータのシリアル化に関係していることは理解していますが、エンコーディングを理解する方法がわかりません。

  1. CDocumentが実際にどのように機能するかを説明するために、MFCについて十分に知っている人はいますか?

  2. これらのファイルをデコードしてテキストを抽出する方法について、誰かアイデアはありますか?

4

1 に答える 1

1

私はかつてほぼ同じシナリオに直面しました。最終的にデータを逆シリアル化するコードを作成しましたが、簡単ではありませんでした。

作業を行う小さな MFC アプリケーションを作成します。これにより、元のアプリで使用されていたのと同じシリアル化コードを利用できます。データ形式のリバース エンジニアリングのトピックは、複雑すぎてここで回答できません。おそらく暗号化されていません。圧縮されている可能性が高いです。

経験豊富なプログラマーであれば、MFC ソース コードを読むことができ、その知識を生データに適用できます。生データを観察するだけですべてをヒューリスティックに判断できるわけではありませんが、実際のコンテンツを判断する独自の方法があれば、十分な作業を行えば確実に可能です。

于 2013-02-01T05:33:16.380 に答える