圖片來源:https://docs.flipper.net/ibutton
今天要介紹的是 iButton,這是一個我認識 Flipper Zero 後才知道的功能。
iButton 是一種使用 1-Wire 通訊協議的小型電子鑰匙,常用於門禁控制、溫度測量、濕度測量以及存儲加密鑰匙等應用。每個 iButton 都具有獨特的序列號,可以進行身份認證或數據儲存。Flipper Zero 具備內建的 iButton 模組,支援讀取、寫入及模擬多種 iButton 鑰匙,包括 Dallas、Cyfral 和 Metakom 等協議。這使得 Flipper Zero 可以用於與這些鑰匙互動,例如門禁系統的破解或模擬。
iButton 長得像是下面這樣:
圖片來源:https://www.amazon.com/iButton-Rewritable-Touch-Memory-Electronic/dp/B07THKGP7N
請注意,透過 Flipper Zero 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。
圖片來源:https://docs.flipper.net/ibutton
有 Read, Saved, Add Manually。
圖片來源:https://docs.flipper.net/ibutton
首先不是所有的 ibutton 都可以被 Flipper Zero 偵測的,只有 access control 的是可以被偵測的。
Flipper 有內建的 iButton 模組,該模組包含一個 iButton 觸控板和位於 iButton PCB 上的三個彈簧式 pogo pin,如上圖。
圖片來源:https://docs.flipper.net/ibutton
其中兩個引腳被指派用於數據傳輸,並連接到 GPIO 的 17 號引腳。剩下的中間引腳是接地,如上圖。
圖片來源:https://docs.flipper.net/ibutton
平面部分的墊子讓 iButton 鑰匙(從屬設備)可以與 Flipper Zero(主設備)連接。左側的數據引腳和中間的接地引腳用於讀取和寫入 iButton 鑰匙,如上圖。
圖片來源:https://docs.flipper.net/ibutton
突出的墊子部分允許將 Flipper Zero(從屬設備)與 iButton 讀卡器(主設備)連接。右側的數據引腳和中間的接地引腳用於模擬 iButton 鑰匙。
看了 hardware 的介紹後,想必大家也知道為什麼 Flipper 會長這個形狀了~
圖片來源:https://docs.flipper.net/ibutton
Flipper Zero 允許我們方便地使用 Dallas、Cyfral 和 Metakom 協議來讀取、儲存和模擬 iButton 門禁鑰匙。此外,我們還可以修改已儲存鑰匙的唯一識別碼(UID)。
Flipper 支援下面這些類別的資料:
步驟如下:
失敗的話,有可能有下列幾種原因:
模擬的話要確保 data 跟 ground pins 有正確的如下圖所示的接觸接收器:
圖片來源:https://docs.flipper.net/ibutton
失敗的話有可能是接觸不良,有可能是 ground pin 沒有正確接觸到接收器,我們可以另外接線如下圖所示:
圖片來源:https://docs.flipper.net/ibutton
圖片來源:https://docs.flipper.net/ibutton
Dallas 鑰匙的 UID 結構包含 8 個字節,其中包括 family code byte 和循環冗餘檢查(CRC)字節。CRC 字節通過檢測在數據傳輸或存儲過程中可能發生的錯誤來幫助確保數據完整性。
圖片來源:https://docs.flipper.net/ibutton
每當你讀取一個 iButton 鑰匙時,Flipper Zero 會通過重新計算來檢查 CRC 字節的正確性。如果捕獲的 CRC 字節與計算出的 CRC 字節不匹配,則會發生 CRC 錯誤,表明 UID 已損壞。
圖片來源:https://docs.flipper.net/ibutton
我們可以透過下限的步驟手動添加鑰匙:
這樣就可以添加成功了!
圖片來源:https://docs.flipper.net/ibutton
Blanks 和 iButton 鑰匙允許寫入不同數據。iButton 鑰匙有固定的 UID,不能更改,但您可以重寫其記憶體。相比之下,空白鑰匙可以重寫 UID 和記憶體。然而,Flipper Zero 目前還不支持重寫空白鑰匙的記憶體。
以下是與 Flipper Zero 兼容的空白鑰匙,這些鑰匙只允許重寫 UID:
Blank type | Compatible with | Comment |
---|---|---|
RW1990 | DS1990 | Writes only the UID |
TM1990 | DS1990 | Writes only the UID |
TM08v2 | DS1990 | Writes only the UID |
RW2004 | DS1990, DS1992 | Writes only the UID even though the blank has memory |
然後按照下面的步驟就可以了:
今天跟大家介紹了 Flipper Zero 的 iButton 功能,想必很多人在接觸 Flipper 前應該很多人都沒有接觸過這個東西吧,之後我應該也會買來玩玩看,今天一樣不確定明天會介紹什麼XD
但一樣請各位敬請期待!明天見。