Hardcore "do it yourself" - ieeja operētājsistēmas NFC-karti
Vai Tas Pats / / December 19, 2019
Līdz šim lietotājiem populāru galddatoru operētājsistēmām nebija nekādas citas iespējas šajā OS ierakstu, izņemot paroles. Pietiekami paciest to! Ir pienācis laiks uzņemt lodāmurs un darīt autentifikācijas procedūra ir salīdzināma vienkāršību ar glāstīja viņas kaķis.
Šodien kategorijā DIY mēs dalīties peeped at Instructables veids, kā ievadīt paroli, lai pieteiktos uz OS, izmantojot NFC karti.
Step 1: Detaļas
Mums ir nepieciešams:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC karte (nāk komplektā ar Adafriut NFC Shield)
- neliels gabals no stieples
- asu nazi
- lodēt
- instruments griešanai un izjaukšana vadiem
- dators
- micro-USB kabelis
Step 2: dzelzs
Par radot aparatūras modulis procedūra ir ļoti vienkārša.
Vienīgā modifikācija nepieciešams darbībai ierīce ir, lai izjauktu saikni starp tapu un pin IRQ 2. Par šo parocīgiem nazi.
Tad jums ir nepieciešams, lai savienotu IRQ un 6 piespraudes ar džemperis vadu.
Pārbaudiet neesamībai / klātbūtnei kontaktpersonas, varat izmantot multimetrs, un skaidrāku izpratni par veidot procesu un Leonardo NFC moduļa piedāvājumu šeit, šo īso video. Viss ir redzams soli pa solim, un ļoti skaidri:
3. solis: Software
Zemāk ir kods, kas jāaizpilda Arduino. Pirms sākt lejupielādi jums ir nepieciešams, lai pārliecinātos, ka Adafruit NFC bibliotēkā. Lasiet vairāk par to šeit.
#include
#include
#define IRQ 6 // šī trase ir jāsamazina un rewired!
#define RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, reset);
//////////////////////////////////// SETUP
neesošu iestatīšana () {
// izveidota Sērijas bibliotēkā 9600 bp
Serial.begin (9600);
// atrast Adafruit RFID / NFC vairogs
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Neatradāt PN53x dēli»);
while (1); // apturēt
}
// Got ok dati, izdrukājiet to!
Serial.print ( «Atrasts čips PN5»); Serial.println ((versiondata >> 24) un 0xFF, HEX);
Serial.print ( «programmaparatūras ver. «); Serial.print ((versiondata >> 16) un 0xFF, DEC);
Serial.print ( "."); Serial.println ((versiondata >> 8) un 0xFF, DEC);
// konfigurēt valdes lasīt RFID tagus
NFC. SAMConfig ();
Keyboard.begin (); // sākt Keyboard
}
/////////////////////////////////// LOOP
neparakstīts ciparu = 0;
neesošu cilpa () {
uint8_t panākumus;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer glabāt atpakaļ UID
uint8_t uidLength; // garums UID (4 vai 7 baiti atkarībā ISO14443A kartes veida)
// gaidīt RFID karšu parādās!
Serial.println ( «Waiting par ISO14443A Card ...»);
// gaidīt ISO14443A tipa kartēm (MIFARE uc). Kad viens ir atrasts
// 'uid' tiks aizpildīti ar UID, un uidLength norādīs
// ja uid ir 4 baiti (MIFARE Classic) vai 7 baiti (MIFARE Ultravieglā)
izdošanās = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
ja (panākumu) {
// Atrasts karti!
Serial.print ( «Card konstatēts #»);
// pagrieziet četru baitu UID par Mifare klasisko vienā mainīgo #
cardidentifier = uid [3];
cardidentifier << = 8; cardidentifier | = uid [2];
cardidentifier << = 8; cardidentifier | = uid [1];
cardidentifier << = 8; cardidentifier | = uid [0];
Serial.println (cardidentifier);
ja (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");
kavēšanās (5000); // nodrošina parole neatkārtojas
}
}
}
Kad kods tiek ielādēta, atveriet sērijas monitora iestatīts uz 9600 bodu. Otrs paplāte NFC-card lasītājam un noņemt. Monitors ir parādīt ziņu «Card konstatēti #card numurs». Nomainiet «cardidentifier ==» saņēmusi vairākas pašreizējās kartes numuru rindā.
Tagad mainīt koda daļu, kas ir atbildīga par paroli. Kā jūs varat redzēt, noklusējuma parole ir «mypassword» kombinācija. Nomainiet to ar mūsu pašreizējo paroli stāšanās operētājsistēmu (rakstzīmju skaits no parole mainīt, vienkārši pievienojot / out līnijām ar «Keyboard.write komandu).
Restartēšana galīgo kodu Arduino, un tagad, tāpat, tiklīdz mēs celt šo karti NFC-lasītājs, parole tiks nekavējoties ieraksta ievades laukā. Hit Enter un priecāties.
Komentāros uz projekta atrada vīrieti, kurš piedāvāja papildināt sērijas komandu ievades paroli galīgā Keyboard.write (KEY_RETURN); likvidēt vajadzība nospiediet Enter, bet šis lēmums nav ticis pārbaudīts.