xChar
·10 months ago

Steam 的令牌本质是个 2FA(多因素验证),使用的 TOTP 算法,所以可以将手机端 TOTP 提取到 Bitwarden食用

:::deter{title="注意!"}
请不要随意露出或往网络放出任何 Steam TOTP 代码,除非你知道你做什么
:::

[!NOTE]
提取手机端 Steam TOTP 需要手机 ROOT 并安装 LSP

然后安装 SteamGuardExtractor 或者 SteamGuardDump LSP 模块并应用到 Steam后,进入 Steam 会自动复制令牌,如下方所示

{
    "accounts": {
        "xxxxxxxxxxxxxxxx": {
            "shared_secret": "xxxxx+testxxxxxxxxxxxxxx=",
            "identity_secret": "/xxxxxxxxxxxxxxxxxxxxx=",
            "secret_1": "xxxxxxxxxxxxxxxxxxx=",
            "serial_number": "xxxxxxxxxxxxxxxxxx",
            "revocation_code": "xxxxxx",
            "account_name": "xxxxx",
            "token_gid": "xxxxxxxxxxxx",
            "steamguard_scheme": 2,
            "steamid": "xxxxxxxxxxxxxxxxxx"
        }
    }
}

根据 SteamTools #2276 说明和提供的 Python 脚本,我们需要将 shared_secretBase64 转换为 Base32
也就是将 YOUR_SHARED_SECRET 替换为我上方提取出来的令牌示例中 shared_secret 的值

import base64
shared_secret = 'xxxxx+testxxxxxxxxxxxxxx='
print("Secret:", base64.b32encode(base64.b64decode(shared_secret)).decode())

运行这个 python 文件,如果你的电脑没有安装 Python,可以使用菜鸟工具的 Python3 在线工具 运行

运行后,终端输出 Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===
那么我的 Steam TOTP 就是 Base32 格式的 shared_secret 前面添加 steam://

steam://Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===

将这个 TOTP 添加到 Bitwarden 的 验证器密钥 (TOTP) 中,并确认下生成的 5 位校验码与手机端是否同步,如果同步即正确


*如果你的手机没有 Root 权限,可以参考下方的教程获取 shared_secret

Loading comments...