MIUI 鎖屏密碼破解


背景

MI 8, 已解 Bootloader 鎖

前幾天刷開發版同時更新到 Android 10, 大約刷后兩天發現屏幕無法解鎖, 懷疑是系統本身 / 密碼驗證過程中存在 Bug. 售后表示只能清除全部數據以解鎖. 於是自己搞一搞 >_<

這是嘗試過程和一種(很)可能的思路. 然鵝由於實在不會 Java 沒有進行下去.

由於twrp不提供截圖功能, 所以手機截圖略......

刷 Twrp

注意各個 Android 大版本的 Twrp 不能通用, 需下載對應的 (例如我的是 Android 10).

網上有大量的 Twrp 教程, 例如這個: http://bbs.ydss.cn/thread-1481180-1-1.html

會下載一個壓縮包, 點擊 recovery-twrp一鍵刷入工具.bat 之后幾乎是傻瓜式的操作, 跟隨指引即可~

刷后在關機狀態下 音量上 + 電源鍵 長按進入 Twrp.

查看文件

進入 Twrp 后會要求解鎖 Data 分區, 跳過.

進入高級功能 -> 文件管理, 發現:

/data/data 目錄和 /sdcard 目錄已被加密, 文件名顯示為字母串;
其他目錄保持正常.

看起來MIUI會強制對用戶數據加密... (我說怎么開機要五分鍾) 這對保護用戶數據是很好的設計, 但是對於蜜汁無法解鎖的手機就相當不友好.

點擊掛載 -> 解鎖 Data 分區, 發現加密的密鑰就是鎖屏的九宮格密碼. (回到了原點:P)

暴力破解

然鵝 MIUI 並沒有加密其他的目錄. 我們知道密碼保存在 /data/system 目錄下的 locksettings.dbaccess_control.key 中.

利用 adb pull 獲取這兩個文件.

之后可以看這里: https://www.cnblogs.com/tlbb/p/7197371.html

鎖屏密碼的算法大約是: 把九宮格轉換為數組, 加 salt, sha1, 再存儲起來. 應該就是 access_control.key 中的內容.

sqlite expert 查看 locksetting.db 可以獲取 salt; 再枚舉九宮格的密碼 (只有 $ \sum_{i=3}^{9} i! $ 個), 利用該算法算出sha1值, 與 access_control.key 對比即可.

但是不會寫 Java

這提供了一種破解的思路, 主要原理是: 刷入recovery后, 系統相當於已經完全暴露了, 做什么都可以.

說不定哪天學會了java就來填坑了

一點補充

  1. 小米手機在上鎖 / 解鎖過程中自動清除用戶數據.
  2. 在刷入 recovery 的過程不需清除.
  3. 線刷 ROM (應該) 也清除數據.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM