4

mifare クラシック カードにデータを書き込もうとしています。まず、90 00 を返す次の 2 つのコマンドを送信します。

Mifare キーをロードします。

FF 82 20 01 06 FF FF FF FF FF FF

認証する:

FF 86 00 00 05 01 00 01 60 01

これで、コマンドをセクター 0 とブロック 1 + 2 に書き込むことができます

ff d6 00 01 10 14 01 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1

ff d6 00 02 10 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1

誤ってブロック 3 を数回上書きして、このセクターを読み取り不能にしているようです。

コマンド ff d6 00 04 10 を送信すると、認証エラーとしてググったエラー 69 82 が返されます。

すべてのセクターに対して認証する必要がありますか? もしそうなら、次のセクターとそれに続くセクターに対してこれを行うコマンドは何ですか?

4

1 に答える 1

11

はい、そのセクターのブロックで読み取り/書き込みを行う前に、すべてのセクターを認証する必要があります。認証コマンドを実行し、ブロック 3 (セクター トレーラー) を上書きします。これは、キーとアクセス権が変更されたことを意味します。

ブロックを認証するための APDU:-

ブロックを認証するための APDU 形式は、次の形式である必要があります。

CLA+ INS+ P1+ P2+ Lc+ (バージョン + AddMSB + AddLSB + KeyID + KeyNumber)

例えば ​​:-

CLA = FF

イン=86

P1 = 00

P2 = 01 (認証用ブロック番号)

Lc = 05 (データフィールドの長さ)

データ フィールド = バージョン + AddMSB + AddLSB + KeyId + KeyNumber

バージョン=01

AddMSB=00

AddLSB=05 (ブロック番号)

KeyID=60/61 (keyA は 60、keyB は 61)

KeyNo= 00 (リーダーのキースロット番号)

FF 86 00 00 05 01 00 05 60 00

于 2013-06-06T08:56:59.593 に答える