3

Acess 2000 データベースにサード パーティのアプリケーションによって保存されたデータを読み取る必要があります。ベンダーはもはや質問をするために周りにいません。

1 つのテーブルには、圧縮されているように見える画像データが含まれています。これは、元のアプリケーションが blob フィールドの内容を xls エクスポート ファイルに埋め込まれた png 画像にエクスポートできるためです。

ADO と Delphi (TADOBlobStream) を使用してレコードの内容を抽出し、ディスクに保存して、16 進エディターで開きました。

16 進数の最初の 100 文字は次のとおりです。

F8 1B 00 00 07 C0 24 27 01 40 7F 20 EC 5D 24 2D 88 5C F0 A7 49 91 4A C4 EA 85 D2 98 6A B5 79 D7 B7 2B D5 48 F8 1B 00 00 07 C0 24 27 01 40 EC 7D 24 2D 88 5C F0 A7 49 91 4A C4 EA 85 D2 98 6A B5 79 D7 B7 2B D5 48 1A 9A C8 D3 54 E3 A3 E4 F5 29 C6 97 22 95 6A 8E 10 BD 3E 4B 0B 11 AA 6D A9 C6 87

これが一般的に使用されている圧縮アルゴリズムに準拠しているかどうか、誰か教えてください。bin ディレクトリにエンコーディング dll が存在するため、サード パーティ アプリケーションは zlib エンコーディング メソッドを使用しているように見えます。ただし、zlib を使用して解凍しても PNG は生成されません。参考までに、保存されたファイルは、XLS に埋め込まれた PNG ファイルのサイズの約 20% です。

ありがとう

4

5 に答える 5

5

差分攻撃を試してください。

  1. 説明されているレポート/プログラムを使用して、データベースから 2 つの画像を抽出します。
  2. PNG ファイルでバイナリ差分を実行します。
  3. データベース内のソース BLOB に対してバイナリ差分を実行します。

blob 形式と PNG 形式のファイルの違いを比較します。これは、ブロブ データが完全に異なる形式なのか、単なるラッパーなのかを判断するのに役立ちます。

また、2 つの異なる画像ブロブを互いに比較してみてください。何が変化し、何が (もしあれば) 変わらないかを確認してください。

于 2009-09-15T22:45:15.300 に答える
0

気になったので見てみることにしました。私はそれをバイナリ形式にする必要があったので、次の人の仕事を節約するために、Pythonでこれを行いました。それが役に立てば幸い:

#!/usr/bin/python
from zlib import decompress; 

f = open('/tmp/data', 'w+'); 
s = "";
for b in [int(x, 16) for x in ("F8 1B 00 00 07 C0 24 27 01 40 7F 20 " +
 "EC 5D 24 2D 88 5C F0 A7 49 91 4A C4 EA 85 D2 98 6A B5 79 D7 B7 2B " +
 "D5 48 F8 1B 00 00 07 C0 24 27 01 40 7F 20 EC 5D 24 2D 88 5C F0 A7 " +
 "49 91 4A C4 EA 85 D2 98 6A B5 79 D7 B7 2B D5 48 1A 9A C8 D3 54 E3 " +
 "A3 E4 F5 29 C6 97 22 95 6A 8E 10 BD 3E 4B 0B 11 AA 6D A8 C6 87 92".split(" ")]:
  s += chr(b);

s = decompress(s);
f.write(s);
f.close();
于 2009-09-15T22:58:35.217 に答える
0

テスト方法はわかりませんが、少なくとも Pkware は、プログラムに組み込むことを目的としたコンプレッサーを販売していました (おそらくまだ販売していると思われますが、私は何年も調べていません)。メモリ内のデータの生ストリームで動作するように設計されているため、圧縮したデータに明白な署名を残しません。

あなたのデータ ストリームをデコンプレッサに供給してみて (私は 2 つの非常に異なるバージョンがあることを認識しています)、より合理的に見えるものを吐き出すかどうかを確認します。

SDK はこちら: http://www.pkware.com/software-developer-tools-margin/software-developer-kits

古い dos 時代のものを使っていましたが、Windows 版は高すぎて、一度も扱ったことはありませんでした。

于 2009-09-15T22:28:19.463 に答える
0

Universal Extractor が答えを教えてくれます。オープンソースです。 http://legroom.net/software/uniextract

于 2009-09-15T01:52:48.480 に答える
0

zlib を使用して解凍したときに、PNG ではないと言いました。他の画像形式かどうかを確認しましたか? JPEG か GIF か、ビットマップか。

于 2009-09-15T02:16:49.680 に答える