APDU Write block commands on mifare classic

℡╲_俬逩灬. 提交于 2020-01-13 20:27:53

问题


I have been trying to write some data to my mifare classic cards. first I send these two commands which returns 90 00:

Load Mifare Keys:

FF 82 20 01 06 FF FF FF FF FF FF

Authenticate:

FF 86 00 00 05 01 00 01 60 01

now I can write commands to sector 0 and block 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

i mistakenly overwritten block 3 a few times rendering this sector unreadable it seems:

if I send the command ff d6 00 04 10 I get return error 69 82 which i googled as authentication error

do I need to authenticate to every sector? if so what is the command to do this for the next and following sectors?


回答1:


yes, You have to authenticate every sector before read/write on the block of that sector.Now you have execute Authentication command and you overwrite the block 3(sector trailer) that means the keys and access right has been change.

APDU For Authenticate a Block:-

The APDU format for Authenticate a block should be in following format.

CLA+ INS+ P1+ P2+ Lc+ (Version + AddMSB + AddLSB + KeyID + KeyNumber)

For Example :-

CLA = FF

INS = 86

P1 = 00

P2 = 01 (Block Number for Authentication)

Lc = 05 (Length of Data Field)

Data Field = Version + AddMSB + AddLSB + KeyId + KeyNumber

Version=01

AddMSB=00

AddLSB=05 (Block Number)

KeyID=60/61 (60 for keyA and 61 for keyB)

KeyNo= 00 (Key Slot number of reader)

FF 86 00 00 05 01 00 05 60 00



来源:https://stackoverflow.com/questions/16957538/apdu-write-block-commands-on-mifare-classic

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!