Hardcore "gjør det selv" - inngangen til operativsystemet for NFC-kartet
Gjør Det Selv / / December 19, 2019
Inntil nå har brukere av populære desktop operativsystemer ikke har noen annen mulighet i OS oppføring, unntatt passord. Nok til å tåle det! Det er på tide å plukke opp en loddebolt og gjøre godkjenningsprosedyren er sammenlignbare i enkelhet med stryke katten sin.
Dag i kategorien DIY, vil vi dele kikket på Instructables måten å angi et passord for å logge på OS ved hjelp av NFC-kort.
Trinn 1: Detaljer
Vi trenger:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC-kort (leveres komplett med Adafriut NFC Shield)
- en liten del av ledningen
- en skarp kniv
- lodde
- verktøy for kutting og stripping av ledninger
- datamaskin
- mikro-USB-kabel
Trinn 2: jern
Fremgangsmåten for å opprette en hardware-modulen er meget enkel.
Den eneste modifikasjon som kreves for drift av anordningen er å bryte forbindelsen mellom stiften og tappen IRQ 2. For denne hendige kniv.
Deretter må du koble IRQ og 6 pinner med en jumper wire.
Sjekk fravær / nærvær av en kontakt, kan du bruke et multimeter, og for en klarere forståelse av byggeprosessen og Leonardo NFC-modul tilbud her denne korte videoen. Alt er vist trinnvis og veldig tydelig:
Trinn 3: Programvare
Nedenfor er koden som må fylles ut Arduino. Før du starter nedlastingen må du sørge for at Adafruit NFC biblioteket. Les mer om det her.
#include
#include
#define IRQ 6 // dette sporet må kuttes og rewired!
#define RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, RESET);
//////////////////////////////////// OPPSETT
void setup () {
// sette opp serie bibliotek på 9600 bps
Serial.begin (9600);
// finne Adafruit RFID / NFC skjold
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Fant du ikke PN53x bord»);
mens (1); // stans
}
// Fikk ok data, skrive det ut!
Serial.print ( «Funnet chip PN5»); Serial.println ((versiondata >> 24) og 0xFF, HEX);
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) og 0xFF, desember);
Serial.print ( ''); Serial.println ((versiondata >> 8) og 0xFF, desember);
// konfigurere styret å lese RFID-brikker
NFC. SAMConfig ();
Keyboard.begin (); // initiere tastatur
}
/////////////////////////////////// LOOP
unsigned sifret = 0;
void sløyfe () {
uint8_t suksess;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // buffer for å lagre den returnerte UID
uint8_t uidLength; // Lengde på UID (4 eller 7 byter, avhengig av ISO14443A korttype)
// vente på RFID-kort til å dukke opp!
Serial.println ( «Waiting for en ISO14443A Card ...»);
// vente på en ISO14443A type kort (Mifare, etc.). Når en er funnet
// 'uid' vil bli fylt med UID, og uidLength vil indikere
// hvis uid er 4 byte (Mifare klassiske) eller 7 bytes (Mifare Ultra)
suksess = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, og uidLength);
uint32_t cardidentifier = 0;
if (suksess) {
// Fant et kort!
Serial.print ( «kort oppdaget #»);
// snu fire byte UID av et Mifare Classic i en enkelt variabel #
cardidentifier = uid [3];
cardidentifier << = 8; cardidentifier | = uid [2];
cardidentifier << = 8; cardidentifier | = uid [1];
cardidentifier << = 8; cardidentifier | = uid [0];
Serial.println (cardidentifier);
if (cardidentifier == 606,061,173) {
Keyboard.write ( 'm');
Keyboard.write ( 'y');
Keyboard.write ( 'p');
Keyboard.write ( 'a');
Keyboard.write ( 'r');
Keyboard.write ( 'r');
Keyboard.write ( 'w');
Keyboard.write ( 'o');
Keyboard.write ( 'r');
Keyboard.write ( 'd');
forsinkelse (5000); // gjør at passordet ikke gjentas
}
}
}
Når koden er lastet, åpner serie skjermen satt til 9600 baud. En annen brett NFC-kortet til leseren og fjerne. Skjermen skal vise en melding «kort oppdaget #card nummer». Bytt ut «cardidentifier ==» fikk nummeret til gjeldende kortnummer i kø.
Nå endre den delen av koden som er ansvarlig for passordet. Som du kan se, er standardpassordet en kombinasjon av «mittpassord». Erstatt det til vår nåværende passord i operativsystemet (antall tegn i passordet endres ved å legge / ut linjer med «Keyboard.write teamet).
Starte endelige koden i Arduino, og nå, like fort som vi bringer dette kortet til NFC-leser, passord vil bli umiddelbart inn i inntastingsfeltet. Trykk Enter og glede seg.
I kommentarer til prosjektet fant en mann som tilbød seg å utfylle serien av kommando skriv inn passord endelige Keyboard.write (KEY_RETURN); å eliminere behovet for å trykke på Enter, men denne avgjørelsen er ikke verifisert.