Hardcore "doe het zelf" - de ingang van het besturingssysteem voor de NFC-kaart
Doe Het Zelf / / December 19, 2019
Tot nu toe heeft de gebruikers van de populaire desktop-besturingssystemen geen andere mogelijkheid in het besturingssysteem binnenkomst, met uitzondering van het wachtwoord. Genoeg om het te verduren! Het is tijd op te halen een soldeerbout en doe de authenticatie procedure is vergelijkbaar in eenvoud met streelde haar kat.
Vandaag in de categorie DIY, zullen we delen peeped bij Instructables manier om een wachtwoord in te voeren om in te loggen op de OS met behulp van NFC-kaart.
Stap 1: Details
We hebben nodig:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC-kaart (geleverd met Adafriut NFC Shield)
- een klein stuk draad
- een scherp mes
- soldeer
- gereedschap voor het snijden en strippen van draden
- computer
- micro-USB-kabel
Stap 2: ijzer
De procedure voor het maken van een hardware-module is zeer eenvoudig.
De enige modificatie nodig voor de werking van de inrichting is de verbinding tussen pen en IRQ pin 2 breken. Voor deze handige mes.
Dan moet je de IRQ en 6 pins te verbinden met een hulpdraad.
Controleer de afwezigheid / aanwezigheid van een contact, kunt u een multimeter gebruikt, en voor een beter begrip van het bouwproces en Leonardo NFC-module hier aangeboden deze korte video. Alles wordt getoond stap voor stap en heel duidelijk:
Stap 3: Software
Hieronder is de code die moet worden ingevuld Arduino. Voordat u begint met het downloaden moet u ervoor zorgen dat de Adafruit NFC bibliotheek. Lees er meer over hier.
#include
#include
#define IRQ zes // dit spoor moet knippen en bedrading zijn!
#define RESET 8
Adafruit_NFCShield_I2C nfc (IRQ, RESET);
//////////////////////////////////// SETUP
void setup () {
// opgericht Serial bibliotheek 9.600 bps
Serial.begin (9600);
// vinden Adafruit RFID / NFC shield
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Niet gevonden PN53x boord»);
while (1); // halt
}
// Got ok data, print het uit!
Serial.print ( «Gevonden chip PN5»); Serial.println ((versiondata >> 24) & 0xFF, HEX);
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) & 0xFF, DEC);
Serial.print ( ''); Serial.println ((versiondata >> 8) & 0xFF, DEC);
// configure boord om RFID-tags te lezen
nfc. SAMConfig ();
Keyboard.begin (); // inleiding van de Keyboard
}
/////////////////////////////////// LOOP
unsigned cijfer = 0;
void lus () {
uint8_t succes;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer om de geretourneerde UID te slaan
uint8_t uidLength; // Lengte van de UID (4 of 7 bytes afhankelijk ISO14443A kaarttype)
// wachttijd voor RFID-kaart te laten zien!
Serial.println ( «Wachten op een ISO14443A Card ...»);
// Wacht op een soort ISO14443A kaarten (Mifare, etc.). Wanneer iemand gevonden
// 'uid' zal worden gevuld met de UID en uidLength zal aangeven
// als de uid 4 bytes (Mifare Classic) of 7 bytes (Mifare Ultralight)
success = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, en uidLength);
uint32_t cardidentifier = 0;
if (succes) {
// Vond een kaart!
Serial.print ( «Card gedetecteerd #»);
// zet de vier byte UID van een Mifare Classic in een enkele variabele #
cardidentifier uid = [3];
cardidentifier << = 8; cardidentifier | uid = [2];
cardidentifier << = 8; cardidentifier | uid = [1];
cardidentifier << = 8; cardidentifier | uid = [0];
Serial.println (cardidentifier);
if (== cardidentifier 606061173) {
Keyboard.write ( 'm');
Keyboard.write ( 'y');
Keyboard.write ( 'p');
Keyboard.write ( 'a');
Keyboard.write ( 's);
Keyboard.write ( 's);
Keyboard.write ( 'w');
Keyboard.write ( 'o');
Keyboard.write ( 'r');
Keyboard.write (d ');
delay (5000); // zorgt ervoor dat het wachtwoord wordt niet herhaald
}
}
}
Nadat de code is geladen, opent u de seriële-monitor ingesteld op 9600 baud. Een tweede bak NFC-kaart aan de lezer en verwijderen. De monitor moet een boodschap te tonen «Card gedetecteerd #card nummer». Vervang «cardidentifier ==» ontvangen nummer van het huidige kaartnummer in de rij.
Verander nu het deel van de code die verantwoordelijk is voor het wachtwoord. Zoals u kunt zien, het standaard wachtwoord is een combinatie van «mypassword». Vervang het aan onze huidige wachtwoord toegang tot het besturingssysteem (het aantal tekens van het wachtwoord wordt veranderd door simpelweg het toevoegen van / uit te lijnen met «Keyboard.write team).
Het opnieuw starten van de laatste code in de Arduino, en nu, net zo snel als we deze kaart om de NFC-lezer te brengen, zal het wachtwoord worden direct in het invoerveld ingevoerd. Druk op Enter en verheugen.
In reacties op het project vond een man die aangeboden aan de reeks commando ingevoerde wachtwoord finale Keyboard.write (KEY_RETURN) aan te vullen; te elimineren de noodzaak om druk op Enter, maar deze beslissing is niet geverifieerd.