打造個人NFC密碼解碼器

六月 29, 2015
Facebook
Twitter

輸入密碼不正確快把你搞瘋了嗎?每次登入都要輸入20幾個落落長的密碼?這個專題將用Adafriut NFC(近距離無線通訊技術)擴充板偵測NFC感應器,並用Arduino Leonardo破解NFC感應器,自動輸入你的密碼。
這個專題的材料花費約75USD,製作時間約半天。

材料

  • Arduino Leonardo (1)
  • NFC擴充板(1)
  • NFC標籤(1),NFC擴充板已經附了一個標籤,如果想要更多標籤,可以自行添購。
  • 電線
工具

  • 烙鐵
  • 筆刀
  • 剪線鉗/剝線鉗
  • Micro USB連接線

步驟一:修改擴充板

  • 去除頂部的針腳,以連接Arduino的針腳。將擴充板裝在Arduino模組的針腳上。 
  • 將擴充板裝在頂部的針腳上並用烙鐵焊接固定。 
  • 在IRQ和第二針腳中間有一條跨接電線,但是第二針腳要連接Arduino Leonardo的I2C,因此請用筆刀將跨接線切斷。以萬用表測量銜接度。 
  • 最後將一條IRO線與第六針腳焊接在一起。 

步驟二:安裝函式庫

  • 軟體部分則需要下載對應的函式庫。 
  • 首先下載Adafruit的NFC函式庫。解壓縮檔案並複製「Adafruit-PN532-master」資料夾至Arduino的函式庫資料夾,重新命名為「NFC」。 
  • 接著下載AES函式庫。解壓縮檔案並複製「AESLib-master」到Arduino的函式庫資料夾,重新命名為AES。

步驟三:偵測NFC卡號

图片

  • 開啟這個密碼並將它上傳至你的Arduino Leonardo。 
  • 接著開啟序列顯示器,設定至9600鲍率(baud rate)。 
  • 在模組上方揮舞一下NFC感應器,序列顯示器應該會顯示出類似「偵測到卡片#1392502292」(Card Detected #1392502292)一類的訊息,卡號應該就是你手上的號碼。 
  • 將號碼記下,並依照你想要設定的密碼組數重複這個程序。 

步驟四:編碼NFC卡

  • 下載這個密碼並在Arduino IDE中開啟。 
  • 找出以下序列:

    if(tagID == 123456789) {
      
    用之前記下的卡號取代 123456789 。 

  • 並找出以下序列:

    int32_t passwordLength = 11;

    將11改為你的密碼長度。 

  • 找出以下序列:

    //char password[] = “secretpass!”; //printEncryptedPasswordByKey(password, passwordLength, key);

    取消這兩個指令。 

  • 把「secretpass!」改成你想要NFC卡輸入的密碼。 
  • 接著上傳密碼至Arduino,開啟序號顯示器,設定至9600鲍率。將卡片刷過模組。 
  • 複製編碼過的密碼,類似以下型態。

    char chunks[1][16] ={{69,231,233,4,229,39,188,190,57,88,6,94,118,197,215,18} }; 

  • 刪除你的密碼並取消指令:

    //char password[] = “”; //printEncryptedPasswordByKey(password, passwordLength, key); 

  • 重新上傳密碼到Arduino就大功告成。現在只要你每刷一次卡,密碼就會自動輸入一次。 

Lewis Callaway
Make it Great影集的製作人兼主持人。他喜歡製作影片與酷炫的專題。興趣是旅遊跟足球。

原文
(譯:張雅涵)

Social media & sharing icons powered by UltimatelySocial