المتشددين "تفعل ذلك بنفسك" - مدخل إلى نظام التشغيل لNFC خريطة
تفعل ذلك بنفسك / / December 19, 2019
حتى الآن، لم مستخدمي أنظمة تشغيل سطح المكتب الشعبية ليس لديها أي إمكانية أخرى في دخول OS، باستثناء كلمة المرور. بما فيه الكفاية لتحمل ذلك! لقد حان الوقت لالتقاط حام الحديد والقيام إجراءات التوثيق يماثل في البساطة مع التمسيد قطتها.
اليوم في فئة DIY، ونحن سوف نشارك في احت خيوط من فضة انستراكتابلز طريقة لإدخال كلمة المرور لتسجيل الدخول إلى نظام التشغيل باستخدام NFC بطاقة.
الخطوة 1: التفاصيل
نحن بحاجة إلى:
- اردوينو ليوناردو
- Adafriut NFC الدرع
- بطاقة NFC (يأتي الكامل مع Adafriut NFC درع)
- قطعة صغيرة من الأسلاك
- سكين حاد
- لحام
- أداة لقطع وتجريد الأسلاك
- الكمبيوتر
- كابل USB الصغير
الخطوة 2: الحديد
الإجراء لإنشاء وحدة الأجهزة بسيط جدا.
التعديل الوحيد المطلوب لتشغيل الجهاز لقطع الاتصال بين دبوس دبوس وIRQ 2. لهذا سكين في متناول يدي.
ثم تحتاج إلى ربط IRQ و 6 دبابيس مع سلك الطائر.
تحقق من غياب / وجود اتصال، يمكنك استخدام المتعدد، ولفهم أكثر وضوحا من عملية الإنشاء وليوناردو عرض NFC وحدة هنا هذا الفيديو القصير. ويرد كل شيء خطوة خطوة وبشكل واضح جدا:
الخطوة 3: البرمجيات
وفيما يلي التعليمات البرمجية التي يجب ملؤها في اردوينو. قبل البدء في تحميل تحتاج إلى التأكد من أن مكتبة Adafruit NFC. قراءة المزيد حول هذا الموضوع هنا.
تتضمن #
تتضمن #
يجب أن يكون رقم تعريف IRQ 6 // هذا التتبع قطع ومجدد أسلاك!
RESET تعريف # 8
Adafruit_NFCShield_I2C NFC (IRQ، RESET)؛
//////////////////////////////////// SETUP
الإعداد باطل () {
// انشاء مكتبة المسلسل في 9600 بت في الثانية
Serial.begin (9600)؛
// تجد Adafruit RFID / NFC الدرع
nfc.begin ()؛
uint32_t versiondata = nfc.getFirmwareVersion ()؛
إذا (! versiondata) {
Serial.print ( «لم تجد PN53x المجلس»)؛
في حين (1)؛ // وقف
}
// حصلت طيب البيانات، وطباعته!
Serial.print ( «العثور على رقاقة PN5»)؛ Serial.println ((versiondata >> 24) وعشرية 0xFF، HEX)؛
Serial.print ( «الثابتة الاصدار. «); Serial.print ((versiondata >> 16) وعشرية 0xFF، DEC).
Serial.print ( '.')؛ Serial.println ((versiondata >> 8) وعشرية 0xFF، DEC).
// مجلس تكوين لقراءة بطاقات RFID
NFC. SAMConfig ()؛
Keyboard.begin ()؛ // بدء لوحة المفاتيح
}
/////////////////////////////////// LOOP
أرقام غير موقعة = 0؛
حلقة باطل () {
نجاح uint8_t.
uint8_t رمز المستخدم [] = {0، 0، 0، 0، 0، 0، 0}؛ // مخزن لتخزين UID عاد
uint8_t uidLength. // طول UID (4 أو 7 بايت اعتمادا على نوع البطاقة ISO14443A)
// الانتظار للحصول على بطاقة RFID لتظهر!
Serial.println ( «الانتظار للحصول على بطاقة ISO14443A ...»)؛
// الانتظار للحصول على بطاقات نوع ISO14443A (MIFARE و، وما إلى ذلك). عندما تم العثور على أحد
// 'رمز المستخدم "سوف يتم ملؤها مع UID، وسيشير uidLength
// إذا كان رمز المستخدم هو 4 بايت (MIFARE والكلاسيكية) أو 7 بايت (MIFARE وخفيفة)
نجاح = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A، رمز المستخدم، وuidLength)؛
uint32_t cardidentifier = 0؛
إذا (النجاح) {
// العثور على بطاقة!
Serial.print ( «بطاقة الكشف عن #»)؛
// تحويل UID أربعة بايت من MIFARE الكلاسيكية في واحد متغير #
cardidentifier = رمز المستخدم [3].
cardidentifier << = 8؛ cardidentifier | = رمز المستخدم [2].
cardidentifier << = 8؛ cardidentifier | = رمز المستخدم [1]؛
cardidentifier << = 8؛ cardidentifier | = رمز المستخدم [0]؛
Serial.println (cardidentifier)؛
إذا (cardidentifier == 606061173) {
Keyboard.write ( 'م')؛
Keyboard.write ( 'ص')؛
Keyboard.write ( 'ص')؛
Keyboard.write (ع ')؛
Keyboard.write (الصورة ')؛
Keyboard.write (الصورة ')؛
Keyboard.write ( 'ث')؛
Keyboard.write ( 'س')؛
Keyboard.write ( 'ص')؛
Keyboard.write ( 'د')؛
تأخير (5000)؛ // يتأكد من عدم تكرار كلمة المرور
}
}
}
مرة واحدة يتم تحميل رمز، فتح مجموعة رصد المسلسل إلى 9600 بود. صينية الثانية NFC بطاقة للقارئ وإزالة. يجب عرض الشاشة رسالة «بطاقة الكشف عن عدد #card». استبدال «cardidentifier ==» العدد تلقى من رقم بطاقة الحالي في الخط.
الآن تغيير المقطع من التعليمات البرمجية التي هي المسؤولة عن كلمة السر. كما ترون، وكلمة السر الافتراضية هي مزيج من «mypassword». استبدال لدينا إدخال كلمة مرور الحالي في نظام التشغيل (يتم تغيير عدد الأحرف من كلمة السر ببساطة عن طريق إضافة / خارج خطوط مع فريق «Keyboard.write).
إعادة تشغيل رمز النهائية في اردوينو، والآن، فقط بأسرع ما جعل هذه البطاقة إلى NFC قارئ، وكلمة السر سيتم إدخال فورا في حقل الإدخال. هاهنا ونفرح.
وفي تصريحات لمشروع جدت الرجل الذي عرضت لاستكمال سلسلة من إدخال الأمر كلمة المرور نهائي Keyboard.write (KEY_RETURN)؛ للقضاء على الحاجة إلى اضغط Enter، ولكن لم يتم التحقق هذا القرار.