• 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 (应该) 也清除数据.
  • 相关阅读:
    pyftpdlib 搭建FTP服务器
    numpy 解一道简单数学题
    python 实现词云
    个人的毕业长足---- 暴走北京
    Tensorflow of GPU, hello fish by version 0.8.
    图像识别
    用一个Inception v3 架构模型实现简单的迁移学习(译:../tensorflow/tensorflow/examples/image_retraining/retrain.py)
    19.液晶屏的原理
    18.DMA-6410
    17.DMA-2440
  • 原文地址:https://www.cnblogs.com/ubospica/p/13425542.html
Copyright © 2020-2023  润新知