Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑 Day15 - 今天要介紹的不是 iPhone,也不是 iPad,而是 iButton!
iButton
圖片來源: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 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。
Menu
圖片來源:https://docs.flipper.net/ibutton
有 Read, Saved, Add Manually。
Hardware
圖片來源: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 會長這個形狀了~
Reading iButton keys
圖片來源:https://docs.flipper.net/ibutton
Flipper Zero 允許我們方便地使用 Dallas、Cyfral 和 Metakom 協議來讀取、儲存和模擬 iButton 門禁鑰匙。此外,我們還可以修改已儲存鑰匙的唯一識別碼(UID)。
How to read iButton keys
Flipper 支援下面這些類別的資料:
- Dallas DS1990: only the UID (the key has no memory)
- Dallas DS1992: the UID and data in memory
- Dallas DS1996: the UID and data in memory
- Dallas DS1971: the UID and data in memory
- Dallas, unsupported keys: only the UID
- Metakom: only the UID (the key has no memory)
- Cyfral: only the UID (the key has no memory)
步驟如下:
- Main Menu -> iButton -> Read.
- 然後把鑰匙放在正確的位置上:
圖片來源:https://docs.flipper.net/ibutton - 成功之後就可以看到鑰匙內的資料:
圖片來源:https://docs.flipper.net/ibutton
失敗的話,有可能有下列幾種原因:
- iButton 鑰匙可能沒有正確接觸到接點,確保如上面圖片所示連接鑰匙。
- iButton 鑰匙可能使用了 Flipper 不支持的協議。
- iButton 鑰匙可能已損壞。
- 如果在讀取 Dallas 鑰匙時出現 CRC 錯誤。再次讀取鑰匙並嘗試模擬它。如果還是不成功,則無法修復此錯誤。
Editing saved iButton keys
- Go to Main Menu -> iButton -> Saved.
- 選擇要修改的鑰匙和編輯
- 就可以如下圖方式修改:
圖片來源:https://docs.flipper.net/ibutton
Emulating saved iButton keys
模擬的話要確保 data 跟 ground pins 有正確的如下圖所示的接觸接收器:
圖片來源:https://docs.flipper.net/ibutton
失敗的話有可能是接觸不良,有可能是 ground pin 沒有正確接觸到接收器,我們可以另外接線如下圖所示:
圖片來源:https://docs.flipper.net/ibutton
- GPIO pin 17 (data)
- GPIO pin 8, 11, or 18 (ground)
CRC reading error
圖片來源: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 已損壞。
Adding iButton keys manually
圖片來源:https://docs.flipper.net/ibutton
我們可以透過下限的步驟手動添加鑰匙:
- Go to Main Menu -> iButton -> Add manually.
- 選擇 protocol (any iButton device using the Dallas protocol)
- 輸入 UID
圖片來源:https://docs.flipper.net/ibutton
這樣就可以添加成功了!
Writing data to iButton keys
圖片來源: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 |
然後按照下面的步驟就可以了:
- Go to Main Menu -> iButton -> Saved.
- 選擇要寫的資料
- 選擇要寫 UID 到空白的鑰匙或是完整複製到一樣類型的鑰匙
- 成功的話就會看到下面的樣子:
圖片來源:https://docs.flipper.net/ibutton
按讚訂閱收藏小鈴噹叮叮叮
今天跟大家介紹了 Flipper Zero 的 iButton 功能,想必很多人在接觸 Flipper 前應該很多人都沒有接觸過這個東西吧,之後我應該也會買來玩玩看,今天一樣不確定明天會介紹什麼XD
但一樣請各位敬請期待!明天見。
- Title: Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑 Day15 - 今天要介紹的不是 iPhone,也不是 iPad,而是 iButton!
- Author: kazma
- Created at : 2024-09-30 00:00:22
- Updated at : 2024-09-30 00:02:05
- Link: https://kazma.tw/2024/09/30/Flipper-Zero-宇宙最強攻略:30-天帶你從入門到入坑-Day15-今天要介紹的不是-iPhone,也不是-iPad,而是-iButton!/
- License: This work is licensed under CC BY-NC-SA 4.0.