.xmlファイルを復号化しようとしていますが、何が含まれているのかわかりません。
私が知っていること:
6文字の英数字のパスフレーズで始まる
パスフレーズはmd5またはSHA1/2によってハッシュされます
ハッシュキーを使用したXMLファイルのAES128/256暗号化
この問題を正しく見ている場合、パスフレーズのバリエーションは62 ^ 6通りあります。私が約100万/秒をテストできると仮定すると、ハッシュ/暗号化アルゴリズムの6つのバリエーションを乗算した約15時間の復号化を意味します。その速度では、数日で力ずくで攻撃できるのは不合理ではないように思えますか?
復号化されたXMLファイルのプレーンテキスト出力を確認する方法に関する推奨事項はありますか?私のコーディングスキルは、これを理解できるレベルではありません。
このファイルが適切に復号化されるタイミングを視覚的に確認できることはわかっていますが、そのようなことを自動的に実行できる復号化プログラムはありますか?
ファイルに暗号化されたXMLドキュメントが本当に含まれていることがわかっている場合は、最初のデコードされたブロックでXMLプロローグ文字列<?xml version="1.0" encoding="UTF-8"?>
の存在を確認してください。 (もちろん、バージョンとエンコーディングは異なります。)少なくとも<?xml
マーカーの最初の5文字を確認してください。
もちろん、プロローグはオプションであるため、まったく存在しない場合があります。暗号化されたファイルを見て、どのような種類のベビーベッドが期待できるかを確実に知ることができれば役立ちます。または、宛先アプリケーションを見て、スキーマが何を期待しているのかを知ることができるかどうかを確認することもできます。次に、最初のブロック検索を拡張して、スキーマの予想されるルートノードの検索を含めます。
偶然に最初の5バイトを<?xml
に復号化する多くの誤検知は発生しません。あなたがそれだけ回復したものなら、眼球で残りの結果を評価する余裕があります。
TrID ツールが最適です。それはその内容に基づいて多くの異なるファイルタイプを検出できます。それは、それがどの特定のタイプのxmlファイルであるかさえ知ることができます。コマンドラインとGUIバージョンがあります。最善の策は、推測された拡張子をファイル名に追加する「-ae」オプションを使用することです。
たぶんこれはあなたが探しているものではないかもしれませんが、時間が選択肢がなく、潜在的なパスワードリストをブルートフォース生成する特定のコードがある場合は、ファイルが実際に復号化されるタイミングを知る必要があります。 XMLライブラリを使用して出力します。ほぼすべての言語に1つあります。ちょうど次のようなもの:
for password in brute_force_list:
# 1. Decrypt xml file into an in memory string
# 2. Try to parse said string into an object
# 3. If parsing was successful return the string