web-dev-qa-db-ja.com

ファイル形式のリバースエンジニアリング

これはリバースエンジニアリングの最初の試みであり、実際、どうすればよいかわかりません。私には手続き的な考え方があり、一般的な暗号化方法に関する知識の基礎がありません。

しかし、正しい形式の最小限のデータがあり、特定の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に変換したいと思います。これにより、からの質問と回答を比較するプログラムを簡単に作成できます。複数の試験ファイル、追加、重複の削除、および新しいファイルの作成。*

19
Markus

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  :  ;  <

まだパターンを見ますか?

5
Ilmari Karonen

質問フィールド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?

2
Adam Reviczky

16進ファイルがあり、暗号化されていると思われる場合は、必ず最初にXOR(ビット演算)を試してください。
それには多くの理由があります。

  • XORで暗号化を適用したら、XORを再度適用することで、暗号化を解除できます。
  • したがって、何かを暗号化するのは非常に簡単な方法です。
    詳細については、次のwikiページを参照してください。
    XOR_wiki
    また、Art of Programmingにアクセスできる場合(およびそれを参照する時間もある場合:D)、ビット演算のセクションを実行してください。
    それは非常によく説明されています。読む価値のある仲間:)
1
kidd0