准备工作

  1. 安卓手机(无需Root,有root更好)
  2. mt管理器
  3. Microsoft Authenticator安装包
  4. 电脑:DB Browser for SQLite(下载地址:https://sqlitebrowser.org/dl/
  5. 支持2FA的第三方密码管理器,如bitwarden(推荐使用keyguard客户端

教程开始

访问 Authenticator 私有目录

无root的额外操作(有root的可以直接跳过)

  1. 打开MT管理器
  2. 找到Microsoft Authenticator的安装包
  3. 点击安装包→ 选择功能注入文件提供器→ 确定
  4. 注入完成后,mt管理器就能像 Root 一样直接访问
  5. 安装已注入文件提供器的安装包,并登录Microsoft账号(在此应用内登录Microsoft会自动开启两步验证)
  6. 打开MT管理器
  7. 点击左上角的图标,展开侧边栏,再点击侧边栏右上角的三个点,选择添加本地存储
  8. 点击左上角的图标,在侧边栏选择com.azure.authenticator
  9. 点击屏幕下方的使用此文件夹
  10. 然后我们就可以在mt管理器的侧边栏访问Authenticator的私有目录了,然后进入名字叫data的文件夹(注意不是进android-data),在文件夹内找到名为databases的文件夹,打开

访问 Authenticator 私有目录(已root)

  1. 在应用内登录Microsoft账号(在此应用内登录Microsoft会自动开启两步验证)
  2. 打开mt管理器,直接在mt管理器内跳转到/data/data/com.azure.authenticator/databases/

提取密钥文件

  1. 我们在databases内复制以下3个文件到手机存储,再传到电脑:PhoneFactorPhoneFactor-shmPhoneFactor-wal必须三个一起复制,缺一不可。将这3个文件放在同一个文件夹里,不要分开
  2. 电脑打开 DB Browser for SQLite
  3. 点击左上角 打开数据库 → 选择你复制的PhoneFactor文件(记得把查找的文件名后缀改成*所有文件不然搜不到)
  4. 打开数据库后点击浏览数据
  5. 你会看到这些关键字段: name / username:账户名(如 Microsoft/xxx@qq.com)、oath_secret_key:真正的 TOTP 密钥(Base64 格式)。大部分微软账户是8位验证码,30秒刷新。保存好这些数据对应的值。

Base64转换Base32

  1. 我们把oath_secret_key对应的值复制,访问这个转换网站将其转换成Base32,保存好转换后的值。

网址:https://the-x.cn/encodings/Base64.aspx

导入到第三方密码管理器中

  1. 在第三方密码管理器的验证器密钥(TOTP)中输入otpauth://totp/name名称:username账号?secret=转换后的Base32密钥&issuer=Microsoft&digits=8&period=30,缺失的部分需要用刚刚保存的值一一补充。保存后即可看到8位数的密码
  2. 核对第三方密码管理器显示的密码是否与Microsoft Authenticator显示的密码一致