1

クライアントのファイルを作成したアプリケーションを起動せずに、クライアントのファイルからすべてのデータを抽出するスクリプトを作成する必要があります。アプリケーションは、すべてのデータを XML ファイルに保存し、ファイルを圧縮する前にコンテンツのみを暗号化します。最後に、圧縮ファイルの拡張子を変更して、認識しにくくします。

アプリケーションには、クライアント ファイル内のデータのすべてではなく一部を表示するテキスト ビューアがあり、同僚と私は、そのテキストをコピーし、必要な他のすべての領域のフィールドをタブで移動することを組み合わせて行う必要があります。からデータを抽出します。アプリケーション自体を使用しようとすると、メモリの問題が発生し、頻繁にクラッシュするため、遅く、実際には役に立ちません。

とにかく、暗号化がかなり弱いように見えるか、少なくとも使用されているパターンを簡単に確認できるため、いくつかの基本を理解することができます。私が使用する各マシンの各顧客からの各クライアント ファイルは、同じ文字に対して同じ出力を持つことになります。暗号化はすべてのファイル間で同じです。

3 文字のブロックを変更し (3 文字の各ブロックの先頭に文字を追加)、4 番目から再開します。=null 文字のようです。例: Abecome QQ==AAis QUE=AAAis QUFB、およびAAAAisQUFBQQ==

基本を見つけました。これは、変更されたすべての Unicode 文字のリストにすぎませQQ==ん。AQg==BQc==CRA==DRQ==E

文字列に 2 番目および/または 3 番目の文字を導入すると楽しくなり始めます。現在はITA=forのようで、次の!0ように 4 文字の英数字を進めます: ITE=for !1ITY=for !6、および for にロールバックし、ITc=forに移動する前に2 番目の位置にある次の文字と同様に最初からやり直します。等々。!7IT8=!>IUA=!?

とにかく、ここでいくつかの点についていくつかの指針が欲しいです。知っていることからアルゴリズムを見つけるにはどうすればよいですか? そこから、それを使用して残りのデータを復号化するにはどうすればよいでしょうか?

4

1 に答える 1

2

それは暗号化ではなく、BASE64エンコーディングです。これは、64 個の印刷可能な ASCII 文字のみを使用してバイナリ データ ストリームをエンコードする方法です。これは、バイナリ データ (電子メールの添付ファイルとしてのバイナリ ファイル) を正しく処理できない可能性がある通信チャネルを介してバイナリ データを送信する場合に使用されます。

3 つの入力文字 (24 ビット) ごとに 4 つの出力文字にエンコードされ、64 の可能性のみが使用されます (文字あたり 6 有効ビット * 4 = 24 ビット)。後続の=符号はパディングです。

XSLT (Google "XSLT base64") を含め、ほぼすべての主要な言語で BASE64 との間で変換するためのライブラリ メソッドがあります。

BASE64 との間で変換するWeb サイト(実際にはいくつか)もあります。

于 2013-01-12T08:27:08.123 に答える