Hardcore "seda ise teha" - sissepääs operatsioonisüsteemi NFC-kaarti
Kas Ta Ise / / December 19, 2019
Seni kasutajate populaarne töölaua operatsioonisüsteemidest ei olnud muud võimalust OS kanne, välja arvatud parool. Piisavalt, et taluda seda! On aeg kiirenemist jootekolb ja teha autentimise protseduur on võrreldav lihtsuse paitab oma kassi.
Täna kategoorias DIY jagame peeped juures Instructables viis sisestada parool login OS NFC abil kaardi.
Etapp 1: detailid
Peame:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC-kaardi (tuleb koos Adafriut NFC Shield)
- tükikese traati
- terava noaga
- jootma
- vahend lõikamine ja lammutamine juhtmed
- arvuti
- mikro-USB kaabel
Etapp 2: raua
Kord luua riistvara moodul on väga lihtne.
Ainus muudatus vajalik seadme töö on murda seost sõrm ja pin IRQ 2. Sel mugav nuga.
Siis tuleb ühendada IRQ ja 6 nööpnõelad sillaga.
Kontrollige puudumist / olemasolu Kontakti saate testri ja selgemat arusaamist ehitamisel ja Leonardo NFC-mooduli pakutakse siin selle lühikese video. Kõik on näidatud samm-sammult ja väga selgelt:
Samm 3: Tarkvara
Allpool on kood, mis tuleb täita Arduino. Enne allalaadimist peate veenduge, et Adafruit NFC raamatukogu. Loe selle kohta siin.
#include
#include
#define IRQ 6 // see jälg peab olema lõigatud ja rewired!
#define RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, RESET);
//////////////////////////////////// SETUP
void setup () {
// loodud Serial raamatukogu 9600 bps
Serial.begin (9600);
// leida Adafruit RFID / NFC kilp
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Kas te ei leia PN53x pardal»);
while (1); // peatada
}
// Sai ok andmed, printida välja!
Serial.print ( «Leitud kiip PN5»); Serial.println ((versiondata >> 24) ja 0xFF, HEX);
Serial.print ( «püsivara versioonile. «); Serial.print ((versiondata >> 16) ja 0xFF, DEC);
Serial.print ( '.'); Serial.println ((versiondata >> 8) ja 0xFF, DEC);
// seadistamine pardal lugeda RFID
NFC. SAMConfig ();
Keyboard.begin (); // algatada Keyboard
}
/////////////////////////////////// LOOP
signeerimata kohaline = 0;
tühine loop () {
uint8_t edu;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer salvestada tagasi UID
uint8_t uidLength; // pikkus UID (4 või 7 baiti sõltuvalt ISO14443A kaardi tüüp)
// ootama RFID kaardi näidata üles!
Serial.println ( «Ootan ISO14443A Card ...»);
// ootama ISO14443A tüüpi kaardid (Mifare jne). Kui üks on leitud
// "uid" siis asustatakse UID ja uidLength näitab
// kui uid on 4 baiti (Mifare Classic) või 7 baiti (Mifare ülikerglennukile)
edu = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
if (edu) {
// Leitud kaardi!
Serial.print ( «Card avastatud #»);
// omakorda neli bait UID on MIFARE klassikaline ühte muutuja #
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');
viivitus (5000); // tagab parool ei kordu
}
}
}
Kui kood on sisestatud, avada seerianumber monitor seatud 9600 boodi. Teine salve NFC-kaardi lugeja ja eemalda. Monitor tuleks kuvada teade «Card avastatud #card number». Vahetage «cardidentifier ==» sai mitmed praegused kaardi number joon.
Nüüd muuta koodi osa, mis on vastutav parool. Nagu näete, vaikimisi parool on kombinatsioon «minuparool». Vahetage see meie praegune parool sisenemist operatsioonisüsteemi (märkide arvu parool on muutunud lihtsalt lisades / välja read «Keyboard.write meeskond).
Taaskäivitamist lõplik kood Arduino, ja nüüd, just nii kiiresti kui me toome selle kaardi NFC-lugeja, parool kohe kantud väljale. Vajuta Enter ja rõõmustada.
Kommentaarides projekti leitud mees, kes pakkus, et täiendada rea käsk sisend parooli lõplik Keyboard.write (KEY_RETURN); kõrvaldada vajadust vajutage Enter, kuid see otsus ei ole kinnitatud.