Mifare Karte Schlüssel

Gast #3010106
Lesenswert?

Guten Morgen,
ich arbeite zur Zeit mit den MiFare Karten Classic und scheitere dabei 
die Keys zu setzten.
Weiß einer zufällig wie man die Keys da setzten kann ?
Ich arbeite mit Arduino MEGA 2560 und Adafrut NFC Shield PN532 i2c.


Danke schon mal im voraus falls ihr mehr information braucht sagt 
bescheid :P


MFG
Gast #3011950
Lesenswert?

Okey also zu nächst kann ich ja durch
nfc.mifareclassic_WriteDataBlock (block, daten); in ein Block der Mifare 
Karte reinschreiben. Doch als ich es versucht habe den key mit zu 
übergeben konnte ich den Block nicht mehr auslesen.
Kurz ich versuche mit dieser Methode auf den Sector Trailer die keys 
reinzuschreiben
z.B
                         KeyA    | Acces Bit | KeyB
uint8_t data = {x1,x2,x3,x4,x5,x6,ff,07,80,69,x5,x4,x3,x2,x1,x0};
nfc.mifareclassic_WriteDataBlock (7, data);
x habe ich gewählt da ich selbstverständlich nicht die richtigen Keys 
hier veröffentliche ;)
Aufjedenfall übergebe ich dann data mit WriteDataBlock an den 
SektorTrailer aber falls ich den Block wieder auslesen will funktioniert 
es mit den keys nicht, verständlich ?^^


Danke schon im voraus
Gast #3012009
Lesenswert?

> verständlich ?
Nein, weil keiner weiss woher die Funktionen kommen. Und ich werd jetzt 
nicht die NxP- bzw. Mifare-Seite nach dem Stack für den PN532 
durchsuchen ;)

Also gib uns erstmal die Grundlage: Zeig die Doku des verwendeten Stacks 
und auch mal den kompletten relevanten Codefetzen (der obige Einzeiler 
kann kaum alles nötige sein, oder?).

Ralf
Gast #3012110
Lesenswert?

1
 success = nfc.mifareclassic_AuthenticateBlock(uid, uidLength, 7, 0, keya);
2
    
3
      if (success)
4
      {
5
        uint8_t data = {x1,x2,x3,x4,x5,x6,ff,07,80,69,x5,x4,x3,x2,x1,x0};
6

7
       success = nfc.mifareclassic_WriteDataBlock (t, data);

Mehr brauch man nicht um sich mit dem Block zu authentifizieren und dann 
in einem Block zu schreiben.
Also damit habe ich das beschreiben geschaft und dann versucht eben die 
Keys zu setzten aber danach habe ich kein Zugriff mehr auf den 
jeweiligen Sektor.
Gast #3012162
Lesenswert?

Vielleicht einfach nur so:

uint8_t data = 
{x1,x2,x3,x4,x5,x6,0xff,0x07,0x80,0x69,x5,x4,x3,x2,x1,x0};

Deine Zeile

uint8_t data = {x1,x2,x3,x4,x5,x6,ff,07,80,69,x5,x4,x3,x2,x1,x0};

sollte sich so gar nicht übersetzen lassen...
Gast #3012342
Lesenswert?

Habs herausgefunden wie es funktioniert und  ich hatte es natürlich mit 
0x geschrieben aber ich habe mich doch mit den Accessbits vertan und aus 
den jeweiligen Sektoren gekickt :P Aber danke euch trozdem.
Gast #3025413
Lesenswert?

Hey, also ich habe nur die ganze Zeit irgendwie die falschen Accesbits 
gesetzt und dem entsprechend mich aus den Sektoren gekickt und darauf 
muss man eben acht geben und sich mal von Intel die App mifare access 
condition calculator und damit kann man sich errechnen welche Rechte man 
auf die jeweiligen Blöcke im jeweiligen Sektor haben soll.


mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren