将手机Steam令牌与交易确认迁移到PC端上!「安卓篇」
最近在Steam上各种倒货,经常需要把库存的里的东西在账号之间转移,并且还经常需要手机Steam来进行交易确认,加上一些众所周知的原因,手机交易确认经常会出现各种连接缓慢、无法加载等问题。于是我鼓捣了一下,将手机Steam令牌与交易确认迁移到PC上!
通常来说,安卓手机的应用数据受到了保护,不让恶意软件读取到应用存储的敏感信息,例如Steam的令牌数据就是如此。如果我们需要提取出它们的话,就必须要使用Root权限了。
注意,Steam令牌数据非常重要,泄露后很可能导致库存被盗取,请在完成全部操作后彻底删除所有未加密的文件!
前期准备
- 一台已经获得Root权限的安卓手机 (如果没有Root权限可以参见后文)
- 手机端安装一个可以访问根目录的文件管理器(例如Root Explorer)
- PC端安装WinAuth客户端
提取Steam文件并绑定WinAuth
- 首先,在手机上安装Steam客户端,并激活验证器。
如果需要同时在手机和电脑上使用Steam验证其的话,就直接在绑定好验证器的手机上操作即可。如果只需要在电脑上使用而不需要在手机上使用的话,请直接跳过本段内容。
- 提取Steam的应用数据
打开 Root 文件管理器后,前往 /data/data
文件夹。然后,找到 com.valvesoftware.android.steam.community
文件夹,将它复制到 /sdcard
文件夹,也就是手机的内置存储设备,接着再将这个文件夹拷贝到你的电脑中.
- 在PC端启动并配置WinAuth
解压并启动之前下载好的WinAuth(虽然不解压也不会怎么样),选择 Add→Steam→Inport Android
,打开刚刚拷贝好的Steam数据文件夹,使用文本编辑器打开 shared_prefs
目录中的 steam.uuid.xml
文件,里面的内容大致如下(部分敏感数据已替换)。
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="uuidKey">android:9caaaaaa-7fe5-aaaa-aaaa-aaaaaaaaaa9d</string>
</map>
将这段文本拷贝到WinAuth的第一个框中,接着使用文本编辑器打开 files
文件夹中的 Steamguard-NNNNNNNNNNNNNN
文件,里面的内容大致如下(部分敏感数据已替换)。
{
"steamguard_scheme":"2",
"steamid":"000000000000000",
"account_name":"paocai",
"status":1,
"shared_secret":"NNNNNNNNNNNNNNN",
"serial_number":"0000000000000000",
"revocation_code":"R0000",
"uri":"otpauth://NNNN/Steam:xxxxxx?secret=NNNNNNNNNNNNNNNNNNNNNNNNNNN&issuer=Steam",
"server_time":"000000000",
"token_gid":"0000000000000N",
"identity_secret":"NNNNNNNNNNNNNNNNNNNNNNN",
"secret_1":"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
}
再将这部分内容复制到WinAuth的第二个框中,点击 Add
。
- 设置WinAuth保护
由于Steam令牌密钥数据极为敏感,直接明文存放是非常危险的,所以WinAuth也自带了保护措施,在第一次添加令牌的时候会自动弹出这项设置
- Protect with my own password(推荐启用)
也就是使用密码对令牌密钥进行加密,每次启动WinAuth时都需要进行密码验证。
- Encrypt to only useable in this computer(推荐启用)
使用Windows密钥进行加密,如果把文件拷贝到其他电脑上或重装系统后,则无法再进行读取。开启后如果需要进行迁移操作,务必不要忘记先解除这项加密。
- And only by the currect user on this computer(推荐启用)
上一项的附加选项,开启后如果使用同一台电脑的其他User,也无法读取其中的数据。
- Lock with a YubiKey
一种实体2FA设备,没有买过所以不太了解。
设置完成后点击 OK
即可完成安全性设置,主界面会显示出刚刚添加的令牌,点击刷新按钮就可以显示目前的动态密码,此时本次存储的令牌数据是相对安全的,可以放心使用。
- 配置交易确认
右键点击刚刚绑定好的令牌,点击 Confirmations...
,进入交易确认页面。
登陆你的账户密码,就可以使用电脑来确认交易报价辣!
尝试确认交易报价
先在Steam上给司机先生发送一个交易报价!
Steam提示需要手机验证器确认
打开WinAuth的 Confirmations...
页面,就看到了刚刚发起的交易报价,点一下还能看到具体的交易信息,和在手机上确认一样。
点一下 Confirm
,交易就确认成功辣!
手机没有Root权限怎么办?
这几年手机的Root权限不像曾经那么好拿了,往往需要先解BL锁,再刷刷系统什么的,非常麻烦,包括我的手机也是如此,但我最后还是成功地绑定上去了,使用的方法很简单—————把Steam的数据转移到有Root权限的手机中。
我手头除了一台现在正在用的小米MIX2S外,还有一台以前用的小米5,并且因为以前比较喜欢鼓捣手机,这台米5是解BL锁+Root的。我使用MIUI自带的 本地备份
功能,将Steam数据打包,并把 /MIUI/Backup/AllBackup
目录中的文件拷贝到米5的对应文件夹中,再使用米5的本地备份进行恢复,再进行令牌提取就OK辣!
当然如果这样行不通的话,就只能放弃同时在手机和PC上绑定了,或者选择解绑手机上的令牌,然后绑定在电脑上。这种方法仅需要在添加令牌时选择 Login
选项卡,并按照提示登陆你的账户即可。
结语
除了WinAuth外,还有一款叫Steam Desktop Authenticator的软件也提供了相同功能,但是它要导入令牌必须使用ADB连接安卓的方法,但是这个软件有一些BUG,总是报错卡死,加上界面也没WinAuth好看,我比较推荐使用WinAuth进行操作。
很久之前就想这么搞了,可惜我的手机没Root权限,又没想到可以通过手机自带的备份恢复功能来搞,就一直拖到了现在。之后会尝试在iOS平台进行操作,思路大概是提取iTunes备份中的数据,并且还需要用到一款叫做ios SteamGuard Mobile Authenticator Data Extractor的小工具,那么就之后再说吧。
参考资料
ASFWiki : https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Two-factor-authentication-zh-CN