2013-01-31 34 views
6

Mifareのクラシック1kタグのセクタ1ブロック7を誤って上書きしました。これは、テストのために意図されたと私はブロック7の上に書いた16バイトのデータを以下に示す:Mifare Classic 1kのセクタを上書きされたパーミッションビットで復旧します

 
0xaa 0xaa 0xaa 0xaa 
0xbb 0xbb 0xbb 0xbb 
0xcc 0xcc 0xcc 0xcc 
0xdd 0xdd 0xdd 0xdd 

間違っていない場合は、そうすることによって、自分のアクセスキーとパーミッションビットは、以下のようになってきた:

  • キーA:0xaa 0xaa 0xaa 0xaa 0xbb 0xbb
  • キーB:0xcc 0xcc 0xdd 0xdd 0xdd 0xdd
  • Permisssionビット: - >0xbb 0xbb 0xcc

Key-AKey-Bを上記のように使用して、block 7sector 1に読み書きしようとしました。しかし、私はもはやsector 1のブロックにアクセスすることはできません(読み書きはできません)。

他のすべてのセクタのキー(たとえばsector 0およびsectors 2-15)を知り、アクセスできます。

状況を考えて、sector 1またはblock 7をリセットしてアクセスを回復する方法があるかどうかをご確認したいと思います。どうもありがとう。

アップデート:私はキーAと上記のようにキーBの両方が正しいと私はそれらの両方を持つカードに認証できることを確認している

。また、Mifare Classic specificationscreenshot)ごとに、次のように私のアクセスビットは、次のとおりです。仕様/スクリーンショットを考慮し、C1_3C2_3C3_3ビットが読ま有効に今

 
Byte 6 = 0xbb = 0b10111011 
-------------------------- 
C2_3 C2_2 C2_1 C2_0 C1_3 C1_2 C1_1 C1_0 
    1 1 0 1 1 1 0 1 

Byte 7 = 0xbb = 0b10111011 
-------------------------- 
C1_3 C1_2 C1_1 C1_0 C3_3 C3_2 C3_1 C3_0 
    1 1 0 1 1 1 0 1 

、/ sector-trailerへの書き込みアクセスを。私の場合、ブロック7(セクター7のトレーラー)については、すべて1に設定されています。私はこのブロックへの書き込みアクセス権を持っていないはずですか?

答えて

3

あなたがリンクは言う:

備考:各メモリアクセスの内部ロジックは、アクセス条件のフォーマット を検証します。フォーマット違反が検出された場合は、 セクタ全体が不可逆的にブロックされます。

あなたのアクセスバイトはフォーマットを確認しません。 folowingテーブルで〜だから

Byte 6 
-------------------------- 
~C2_3 ~C2_2 ~C2_1 ~C2_0 ~C1_3 ~C1_2 ~C1_1 ~C1_0 
    1  0  1  1  1  0  1  1 

Byte 7 
-------------------------- 
C1_3 C1_2 C1_1 C1_0 ~C3_3 ~C3_2 ~C3_1 ~C3_0 
    1  0  1  1  1  0  1  1 

Byte 8 
-------------------------- 
C3_3 C3_2 C3_1 C3_0 C2_3 C2_2 C2_1 C2_0 
    1  1  0  0  1  1  0  0 

を反転を意味し、例えば、= 1、〜C 2-3 = 1 C 2-3彼らは相補的ではありません。フォーマットは検証されず、セクタは不可逆的にブロックされます。

同じ文書には、keyAを常に読み取ることができることを示すテーブル(表7)があります。おそらくこれがあなたが認証できる理由です。

+1

ありがとうございました。私はすでに結論を出しました。あなたの答えはそれをより明確にします。 – gsbabil

6

アクセス制御ビットが正しく構成されていないと(たとえば、お互いの補数であると思われるビットが、あなたの場合のように補完的ではない)、セクタにはもうアクセスできません。

のMifareクラシックな仕様で