Emuliere Mifare-Karte mit Android 4.4

Ich habe Mifare und andere Kartenemulation recherchiert Ich habe sehr gute Kenntnisse in der Programmierung (nicht Android, aber C / C ++). Ich habe proxmark und ich habe mehrere Emulationscodes für proxmark gemacht, also weiß ich, wie die Karten kommunizieren.

Ich verstehe derzeit nicht, macht Android die volle Kartenemulation. Ich habe das seit etwa 3 Tagen recherchiert, und die Schlussfolgerung ist, dass es kein konstantes Muster gibt. Manche Leute sagen, es ist möglich, manche sagen es nicht. Ich schaute durch Android-API und die Host-basierte Karte Emulation scheint in der Lage, den Trick zu tun, aber wie ich verstehe es ist neu in 4.4 Kitkat, hat jemand eine Erfahrung mit dem?

  • Wie kann ich einen Klick auf eine bestimmte x, y-Koordinate testen?
  • Google Play Bedeutung von "Installiert"
  • Ermitteln Sie, ob TextView in ListView ausgewertet wird
  • Gruppenansichten in ConstraintLayout, um sie als Einzelansicht zu behandeln
  • Wie erstelle ich eine alphabetische Bildlaufleiste, die den ganzen Buchstaben in android anzeigt?
  • Wie könnte Absicht in onHandleIntent () sein?
  • Um die Dinge einfach zu machen, habe ich derzeit die grundlegendste Emulation für Mifare Ultralight untersucht. Diese Karte ist ein Sicherheits-Alptraum, es gibt keine Verschlüsselung und nur etwa 10 Funktionen, die es tut. Also bin ich interessiert, die Forschung mit dieser Karte zu beginnen, weil es das einfachste ist, das zu reproduzieren ist.

    So hat jeder irgendwelche Kenntnisse in der Kartenemulation auf Android. Vielleicht nicht mit dem Lager OS. Alles, was es wert ist, zu wissen, wäre sehr geschätzt.

    Vielen Dank.

  • Kann nicht installieren USB USB-Treiber auf Windows 7 Pro 64-Bit
  • Android Studio .2.2 und Gradle Paket existiert nicht
  • Wie bekomme ich Latenzinformationen von Android's AudioTrack Klasse?
  • Android: manuelle Bildschirmausrichtung ohne Neustart der Aktivität?
  • Wie man verschachtelte ArrayList zu jedem Layout bei TabLayout aufteilt
  • Lesen von Gmail-Mails mit Android SDK
  • 3 Solutions collect form web for “Emuliere Mifare-Karte mit Android 4.4”

    Mit Host-basierter Kartenemulation (HCE) in Android 4.4 kannst du nur das ISO / IEC 14443-4 Protokoll emulieren. Genauer können Sie nur Anwendungsstrukturen nach ISO / IEC 7816-4 emulieren (also müssen Kartenemulationsanwendungen durch eine AID ausgewählt werden). Darüber hinaus gibt Ihnen die API keine Möglichkeit, festzulegen, ob die Kartenemulation mit dem Protokoll Typ A oder Typ B durchgeführt werden soll.

    Also zur Emulation verschiedener MIFARE-Protokolle:

    • MIFARE Ultralight (und Derivate) Protokoll arbeitet oben auf ISO / IEC 14443-3. Es ist nicht möglich, Karten mit solchen Low-Layer-Protokollen mit Android HCE zu emulieren.
    • MIFARE Classic- Protokoll arbeitet teilweise oben auf ISO / IEC 14443-3 (mit einigen verschiedenen Framing). So ist es auch nicht möglich, MIFARE Classic mit Android HCE zu emulieren.
    • MIFARE DESFire Protokolle arbeiten nach ISO / IEC 14443-4. Es gibt drei Varianten des DESFire-Protokolls:

      1. Natives Protokoll : Da dieses Protokoll keine APDUs nach ISO / IEC 7816-4 verwendet, ist es nicht möglich, es mit Android HCE zu emulieren.
      2. Eingelegtes natives Protokoll : Dieses Protokoll verwendet APDUs nach ISO / IEC 7816-4, jedoch werden die Leser normalerweise keinen SELECT-Befehl mit dem DESFire AID ausgeben, wenn sie mit einer Karte im eingewickelten nativen Befehlsmodus kommunizieren. (Anmerkung: Neuere Leserimplementierungen sind eher ein SELECT-Befehl auszustellen, der mit Android HCE kompatibel ist, da dies auch für einige der neueren Smartcard-Produkte von NXP mit der DESFire-Protokoll-Emulation erforderlich ist.)
      3. ISO-Protokoll : Dieses Protokoll basiert auf ISO / IEC 7816-4 und nutzt die Anwendungsauswahl durch AID. So kann es möglich sein, dieses Protokoll mit Android HCE zu emulieren.

      Einige Leser können bestimmte Parameterwerte in niedrigeren Protokollschichten erfordern (z. B. eine spezifische UID-Kaskadenebene, einen bestimmten ATQA-Wert, einen bestimmten SAK-Wert oder einen bestimmten ATS). Android HCE hat keine Möglichkeit, diese Werte einzustellen. Siehe Bearbeiten der Funktionalität der Host-Karten-Emulation in Android für eine mögliche Annäherung, um diese Werte auf bestimmten verwurzelten Geräten zu modifizieren, und meine Antwort auf Host-basierte Kartenemulation mit fester Karten-ID für eine Strategie, um diese Werte programmgesteuert in einem benutzerdefinierten ROM zu ändern.

    Eine Anmerkung zur HCE-Funktion, die in CyanogenMod von Version 9.1 bis Version 10.2 verfügbar ist: Dies wird ein ISO / IEC 14443-4-basiertes Protokoll ohne die Anforderung einer Applikationsstruktur nach ISO / IEC 7816-4 emulieren. Sie können sogar wählen, ob Sie das Protokoll Typ A oder Typ B emulieren möchten. So sollte es möglich sein (obwohl ich nicht getestet habe), um eines der drei DESFire-Protokolle zu emulieren. Doch auch mit der HCE-Funktion von CyanogenMod ist es nicht möglich, MIFARE Ultralight oder Classic Protokolle zu emulieren. Darüber hinaus ist es auch nicht möglich, Low-Level-Protokollparameter wie UID, ATQA, SAK oder ATS zu beeinflussen.

    Ich habe schon Wochen verbracht, dieses Thema vor einem Jahr zu erforschen und meine Schlussfolgerung basiert auf der aktuellen Implementierung: Die Emulation von MIFARE Classic ist möglich, aber nur durch das Embedded Secure Element ist dieses Element in NXPs NFC-Chip eingebettet (PN65-Chip eingebaut Beispiel das Samsung I9300).

    Ich konnte eine Mifare Classic-Karte mit versteckten Funktionen in der android_external_libnfc-nxp-Bibliothek vollständig emulieren. Obwohl ich die Karte nur lesen konnte und dafür nützlich sein musst, brauchst du Zugriff auf das Secure Element, wo ein Applet von NXP in den meisten Fällen existiert, diese Applet-Server als Front-End für die Verwaltung der emulierten Karten.

    Ein guter Weg, um diese Suche fortzusetzen wäre durch Reverse Engineering Google's Brieftasche Anwendung.

    Der MIFARE Ultralight Chip MF0ICU1 (16 Seiten x 4 Bytes) ist in der Tat ein Alptraum, kann aber nicht auf irgendwelchen NXP Schnittstellen einschließlich PN53x emuliert werden, weil sie das erste UID Byte ( UID0 ) auf UID0 verdrahtet haben, also bedeutet das, dass das Tag zufällig ist UID (nach NXP-Standards). Du brauchst UID0 = 0x04 , um MIFARE Ultralight zu emulieren.

    Es gibt einen eigenständigen MIFARE Ultralight Emulator, der jeden Wert für UID0 erlaubt, hat rückstellbare UID0 , Sperr- und Block- UID0 . Weitere Informationen finden Sie im Handbuch.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.