これはリバースエンジニアリングの最初の試みであり、実際、どうすればよいかわかりません。私には手続き的な考え方があり、一般的な暗号化方法に関する知識の基礎がありません。
しかし、正しい形式の最小限のデータがあり、特定の1つまたは複数の単語のデータにオカレンスがあり、その単語がデータのどこで始まり、どこで終わるかを知っている場合、私には思えます。どういうわけかファイル全体を復号化する方法を発見することができます。
----- ENCRYPTED -------------------------------------------
HEX 44 5E 12 47 55 5E 53 17 4C 5C 49 4F 4F
ACII D ^ ? G U ^ S ? L \ I O O
DEC 68 94 63 71 85 94 83 63 76 92 73 79 79
BIN 01000100 01011110 00111111 01000111 01010101 01011110 01010011 00111111 01001100 01011100 01001001 01001111 01001111
----- DECRYPTED -------------------------------------------
HEX 74 6F 20 74 61 6B 65 20 74 65 73 74 73
ASCII t o t a k e t e s t s
DEC 116 111 32 116 97 107 101 32 116 101 115 116 115
BIN 01110100 01101111 00100000 01110100 01100001 01101011 01100101 00100000 01110100 01100101 01110011 01110100 01110011
これは単なるデータのサンプルです。タイトルの異なる2つのファイルを調べたので、タイトル情報の開始位置と終了位置がわかります。つまり、これらが正しい単語に変換されることはわかっていますが、ここから暗号化プロセスを特定するにはどうすればよいですか。
* 理由を尋ねられることはわかっています:これはVCE(試験)ファイル形式からのものであり、これをXMLまたはJSONに変換したいと思います。これにより、からの質問と回答を比較するプログラムを簡単に作成できます。複数の試験ファイル、追加、重複の削除、および新しいファイルの作成。*
2つの文字列を一緒にXORしてみてください。あなたが得るものは
HEX 30 31 32 33 34 35 36 37 38 39 3A 3B 3C
ASCII 0 1 2 3 4 5 6 7 8 9 : ; <
まだパターンを見ますか?
質問フィールドXOR値は19で始まり、2文字おきになります。
暗号化:
6D 1A 74 1C 3D 1E 6B 20 40 22 48 24 40 26 07 28 5D 2A 4E 2C 5E 2E 5B 30 42 32
XOR:
19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32
復号化:
t?o? ?t?a?k?e? ?t?e?s?t?s?
16進ファイルがあり、暗号化されていると思われる場合は、必ず最初にXOR(ビット演算)を試してください。
それには多くの理由があります。