FlipperDroid 開源手機資安工具,裝之前先看清哪些模組能用

FlipperDroid 是一款 MIT 開源的 Android 應用程式,想把口袋裡的手機變成 Flipper Zero 式的隨身資安工具箱。翻開原始碼逐模組檢視:NFC 讀卡與模擬最完整,BadUSB 在架構上走不通,RFID 只存在於文件,WiFi 模組其實只是掃描器。裝之前先看清代價:網路工具需要 root,測試行為也有法律邊界。

用 AI 摘要這篇文章:

Flipper Zero 這台掌上型多協議安全測試裝置走紅之後,「能不能直接用手機做到一樣的事」就一直有人嘗試。FlipperDroid 是其中一個答案:一款 MIT 授權的開源 Android 應用程式,用 Kotlin 寫成,主畫面排著 NFC 讀卡、BadUSB、藍牙、網路工具、WiFi、紅外線與密碼產生器等模組入口,擺明想把已經在你口袋裡的手機,變成一台隨身安全測試箱。

先把最想知道的答案講清楚:它能不能取代 Flipper Zero?以這篇文章攤開檢視的原始碼、權限宣告與官方文件來看,答案是「一小部分可以」。真正完整的是 NFC 與 EMV 這一段,讀感應卡、模擬卡片,走的都是 Android 原生就支援的標準 API;藍牙廣播與網路診斷的程式碼也寫得齊,但前者有明顯的法律紅線,後者要 root 才動得起來。至於名聲最響的 BadUSB,實作方向在架構上就走不通;README 與條款裡寫的 RFID,整個專案找不到一行對應的程式碼。

所以真正值得問的問題剩下兩個:哪些模組在你的手機上真的動得起來,以及為了這些功能要先付出什麼。下面逐模組攤開來看,依據都是專案自己公開的東西:原始碼、權限宣告、App 內建法律文件,以及 GitHub 上的發布紀錄與 issue。

FlipperDroid 的 GitHub 專案頁:MIT 授權標章、五百多顆星,README 列出 NFC、藍牙、BadUSB 與網路工具等功能項目Pin
官方 GitHub 專案頁(2026 年 8 月):MIT 授權、525 顆星,README 條列的功能就是本文逐項對照的來源。

九個模組入口,兌現程度差很大

主畫面的程式(HomeScreen.kt)列出九個入口:NFC Reader、BadUSB、Bluetooth、Network Tools、Wifi Deauther、Infrared、Password Generator、Settings、About,NFC 底下再分出 EMV 讀卡與卡片模擬兩個子頁。入口看起來很熱鬧,但逐個翻進對應的程式碼之後,落差就浮出來了。

模組程式碼實況需要 root額外前提
NFC 讀卡+EMV最完整:讀卡、Mifare 工具、HCE 模擬服務都有手機要有 NFC
藍牙廣播完整:三種廣告封包產生器僅限自有設備與授權測試
網路工具有實作:nmap 執行檔直接綁在 App 資產裡root 過的手機
WiFi 掃描只有掃描列表,沒有斷線測試的程式碼
紅外線走標準 ConsumerIrManager API手機要有紅外線發射器
BadUSB實作方向錯誤,無法讓手機扮成鍵盤這條路走不通
RFID原始碼裡找不到對應實作無從談起手機也沒有這種硬體
QR 掃描空殼畫面,程式註解標著 TODO尚未實作
密碼產生器一般小工具,正常
FlipperDroid 各模組在原始碼層的兌現情況,依 2026 年 8 月檢視的主分支程式碼整理。

整張表看下來有一個規律:模組名稱的氣勢與程式碼的完成度不成比例。名稱最聳動的兩個(BadUSB、Wifi Deauther)恰恰是兌現最差的兩個;不怎麼起眼的 NFC 子頁反而是整個專案最扎實的部分。挑工具時把功能表當採購清單,通常要到這種逐行看程式碼的時候才會發現落差在哪。

NFC 與 EMV:唯一可以放心期待的部分

這個專案花最多力氣的地方明顯是 NFC。讀卡端有 EmvCardReader.kt 處理銀行感應卡的 EMV 協定,另有 MifareClassicUtils.kt 處理 Mifare Classic 卡的結構;模擬端是一個掛在系統上的主機卡模擬服務(EmvCardEmulationService),並在 AndroidManifest 裡正式註冊。這些全部走 Android 原生標準 API,換句話說不需要 root,一般有 NFC 的手機就能跑這一段。

把這一段拆開看會更清楚它的完成度。讀卡流程照著 EMV 標準走:先對卡片送出 PPSE 選擇指令,接著拿一份已知 AID 清單逐一嘗試,比對出卡片類型之後,再從 EMV 紀錄裡抽出卡號(tag 5A)與有效日期(tag 5F24)。模擬端則是在服務設定檔裡註冊了一個 AID 過濾器:Visa 的支付應用 AID(A0000000031010),也就是說模擬功能只會在讀 Visa 卡的讀卡機前有反應,範圍拿捏得比名稱保守。

對讀者的實際意義在這裡:如果你想研究自己手上那張感應支付卡或門禁卡會回應哪些欄位,這個 App 提供了一個免費、不用另外採購硬體的起點。它能讀到的是卡片依標準協定主動回應的內容,與破解加密金鑰是兩回事。把讀到的資料用在別人的卡上,同樣落在後面會談的法律界線內。

BadUSB:名字最響,實作卻走反方向

BadUSB 是 Flipper 家族最有名的演示:裝置插上電腦就被認成一個鍵盤,接著自動打字。要在 Android 手機上做到這件事,手機必須以 USB 裝置的身分對電腦枚舉出一個 HID 鍵盤介面,這需要核心支援 USB gadget 模式,通常還要 root 另行設定。

FlipperDroid 的 BadUsbViewModel.kt 走的是另一條路:它用 UsbManager 的 host 模式,去尋找「接上手機的外接 USB 裝置」上的 HID 介面與輸出端點,再把按鍵碼用 bulkTransfer 送出去。說白了,它準備對一台「接在手機上的鍵盤」送按鍵碼,與「讓電腦把手機當鍵盤」要走的路完全相反。程式裡宣稱能讓手機充當鍵盤的註解,跟在它下面的實作對不起來。

這個判斷有使用者端的佐證。GitHub issue #4(2026 年 4 月)標題就在問 BadUSB 怎麼讓它動起來,發問者說已經接上電腦並開了 USB 偵錯,到本文查核時這個問題仍開著,討論串裡沒有任何回應。想要手機 BadUSB 功能的人,這個模組可以直接跳過。

RFID 只存在於文件裡,WiFi 模組其實是掃描器

README 的功能列表寫著 RFID 與紅外線模組,App 內建的使用條款甚至逐條替 RFID 寫了法律警告。但在整個專案的原始碼裡搜尋 RFID,結果是零。對照硬體現實這不意外:Flipper Zero 的 RFID 能力來自機身上專屬的 125kHz 射頻電路,而一般 Android 手機根本沒有這種讀寫硬體。功能表上的 RFID 比較接近一份願景,而非現有功能。

名稱最駭人的「Wifi Deauther」是另一種名實不符。翻開 WifiDeautherViewModel.kt,它做的全部事情是呼叫系統的 WiFi 掃描(startScan),把周邊網路的 SSID、MAC 位址、訊號強度與頻道整理成清單,僅此而已。程式碼裡找不到任何發送管理訊框或影響他人連線的實作。有趣的是 App 內建條款反而煞有介事地寫著這個模組會送出斷線封包並附上罰則,條款比程式碼先走到了終點。

issue #5(2026 年 8 月)回報的使用者經驗也一樣:掃得到網路、看得到頻道與訊號強度,但整個畫面沒有任何可以互動的功能。把它當一個簡單的 WiFi 觀測列表可以,期待任何滲透測試能力就是誤會一場。

藍牙廣播與網路工具:能動的模組,紅線也畫在這裡

藍牙模組分兩半。掃描端用系統 API 列出周邊裝置;廣播端(BleSpam)內建三種低功耗藍牙廣告封包產生器:Apple 裝置的接續互通配對彈窗、三星 EasySetup 耳機、三星手錶。這正是 Flipper Zero 藍牙轟炸演示在 Android 上的對應實作,對應 AndroidManifest 裡申請的 BLUETOOTH_ADVERTISE 權限。這一段的程式碼是完整的。產生器裡蘋果的製造商識別碼與型號清單的寫法,程式註解直接標明取材自 Bluetooth-LE-Spam 這個知名開源專案;這類偽裝廣告最早多在 ESP32 開發板與 Flipper Zero 上演示,Bluetooth-LE-Spam 已經把它帶進一般 Android 手機,FlipperDroid 等於再把這套廣告封包產生器收進自己的模組。

完整,也就代表法律風險是真的。對不屬於你的手機持續發送這類偽裝的配對廣告,讓別人的螢幕不停彈出配對視窗,在台灣可能落入刑法第 360 條無故以電腦程式或其他電磁方式干擾他人電腦或其相關設備的範圍,條文並且要求致生損害於公眾或他人。觀測與干擾是兩件事:想找單純看網路狀況的工具,可以參考我們介紹過的Sniffnet 開源網路流量監控,那類觀測不對他人設備發送任何東西。

網路工具模組(nmap、ping、traceroute、埠掃描、DNS 查詢)是整個 App 對 root 依賴最重的一段。NetworkToolsViewModel.kt 會用 su 指令把包在 App 資產裡的 nmap 執行檔與八個共享函式庫複製到系統暫存目錄再執行。開發者在已 root 的 Pixel 7(刷 LineageOS)上測試並寫進 README,代表沒有 root 的手機這一段連啟動都有困難。nmap 綁進 App 的做法本身也留著一個問號:專案上線第一天的提交訊息就自承這顆 nmap 執行檔還不太能用,之後也沒有再發過新的正式版本。

掃描別人的網路與主機同樣有授權前提。在未經同意的情況下對他人主機做埠掃描,即使只是看看開了哪些門,在台灣也可能觸犯刑法妨害電腦使用罪章的相關規定。這類工具的正確使用場景是自己的設備、自己的網路,或取得書面授權的滲透測試環境。

把法律條款寫進 App 是加分題,但寫的是法國法

這個專案有一個同類工具裡少見的設計:第一次打開 App 會跳出一個關不掉的法律確認對話框,要求先看過使用條款、MIT 授權與法律聲明並按下接受,才進得了主畫面。使用條款也不是敷衍兩句,而是逐模組列出法國刑法條文與刑度:RFID 存取最高二年徒刑併科 6 萬歐元罰金、藍牙干擾最高五年與 15 萬歐元、BadUSB 條目最高七年與 30 萬歐元,並明定法國法管轄、法國法院裁判。紅外線條目也寫得明白:只能用在自己的設備上,拿去控制別人家的電視或智慧家庭裝置,在法國法下是侵犯隱私的罪名。

開發者把濫用後果直接寫進產品,這個誠意值得肯定。但在台灣,該換算的是自己腳下的法律:在台灣對應的是刑法妨害電腦使用罪章的各條構成要件,罰則與法國不同。條款裡那串歐元數字對你沒有直接拘束力,真正有拘束力的原則兩邊的法律都寫得一致:只用在自有設備與取得授權的環境。

想讀自己的感應卡可以裝,想要 Flipper 全套的人跳過

適合的人輪廓其實很清楚。想用手上既有的 NFC 手機讀自己的感應卡、看看卡片回應了哪些欄位的人,這個 App 免費可用;教資安課或寫教材需要一個「手機硬體能力邊界」具體案例的人,它提供的正反面教材都很豐富;想讀一份真實的 Kotlin 加 Compose 工具型 App 原始碼的開發者,也看得到值得參考的寫法。

該跳過的人更明確。想要 Flipper Zero 完整能力(sub-GHz、RFID、能真正運作的 BadUSB)的人,這個 App 給不了;不願意 root 手機的人,網路工具整段用不了;任何想在別人設備上試試看的人,上面的法律段落已經把後果講完了。對於使用界線敏感的偵測類工具,我們在Image Provenance 一文也談過類似的分寸。

想確認的話,成本最低的驗證方式

不必先刷機,也不必先 root。打開專案的 GitHub 頁面,Releases 分頁能看到唯一的正式版本 V1.0(2025 年 7 月發布),內附一個約 23MB 的 APK。下載安裝前先看一眼 README 的功能列表,再回頭對照上面的模組表,落差在哪裡一目了然。NFC 讀卡是不需要 root 的部分,拿一張自己的感應卡試讀,就是成本最低的功能驗證。

FlipperDroid 的 GitHub Releases 頁面:唯一的正式版本 V1.0,發布於 2025 年 7 月,內附一個 22.1MB 的 APK 安裝檔Pin
官方 Releases 頁(2026 年 8 月):唯一的正式版本 V1.0 於 2025 年 7 月發布,附一個 22.1MB 的 APK。

如果對這篇文章的說法有疑慮,幾個關鍵檔案都在 repo 裡:HomeScreen.kt 看模組入口、AndroidManifest.xml 看權限申請、WifiDeautherViewModel.kt 與 BadUsbViewModel.kt 看兩個名實不符的模組。安裝前也可以看一眼權限清單:這個 App 申請了 NFC、藍牙掃描連線與廣播、WiFi 狀態、鄰近裝置等權限,與模組表對得起來;清單裡也有精確定位權限,那是 Android 把藍牙掃描歸在定位底下的歷史包袱,安裝時看到定位提示不必太意外。花十分鐘就能自己核對完。

授權與專案活躍度

專案以 MIT 授權釋出,LICENSE 檔案完整存在,修改與再散布沒有額外限制,GitHub 上有五百多顆星。但要把它當日常工具的人需要知道現實:整個專案主要由一位開發者維護,網路工具模組來自另一位早期貢獻者的提交(程式註解多為法文),主分支最後一次提交停在 2025 年 8 月底(那次提交的標題寫的就是調整授權與關於頁),文前提到的兩個 2026 年 issue 到查核時仍開著且無人回應,正式版本也只有一個。對一般工具這叫停滯;對資安工具,停滯還多一層意義,沒有人修 bug,也沒有人幫你盯安全問題。同樣是單人維運的開源 Android 專案,我們在OpenCyvis 也提過類似的活躍度風險。把 FlipperDroid 當參考實作與教材很合適,當長期倚賴的隨身工具箱,風險要自己承擔。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 952

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...