BeyondDimension/SteamTools

[Rooted Android] 3.x 新版导出令牌的另另一种思路

YifePlayte opened this issue · 42 comments

事先说明,我对安卓开发了解尚浅,有些描述可能有误,请大佬们轻喷

Steam 3.x 使用加密存储 SteamGuardInfo,那我就直接利用Xposed模块拿他解密后的数据不就行了。在这之前没有了解过 React Native,所以我的想法很直接:

  • 大概找到了其存储位置在/data/data/com.valvesoftware.android.steam.community/shared_prefs/SecureStore.xml
  • 在 Steam 的 dex 中搜索哪个方法读取了此 SharedPreferences,顺藤摸瓜找到了几个加解密实现expo.modules.securestore.SecureStoreModule$HybridAESEncrypter expo.modules.securestore.SecureStoreModule$AESEncrypter expo.modules.securestore.SecureStoreModule$LegacySDK20Encrypter
  • 对其中所有的decryptItem方法进行hook,在被调用完毕后分析其调用栈进行筛选,并将所获取到的已解密数据写入到剪切板中并通过Toast进行提示

非常流畅的就获取到了我们所需的 SteamGuardInfo。

我已将此Xposed模块开源至 YifePlayte/SteamGuardDump ,以供使用、参考。
测试环境:LSPosed 1.8.6(6712),MIUI 14 (Android 13),Steam 3.5


补充:Steam 3.7.0 修改了获取解密数据的方式,通过回调函数。模块已更新以适应此变化。
测试环境:LSPosed 1.9.1(6990),MIUI 14 (Android 13),Steam 3.7.0


补充:Steam 3.9.0 使用的 Expo SecureStore 又一次更改了调用方式,模块已更新适配,并通过模块向导出内容中自动补充了uri信息,方便各位使用。
测试环境:LSPosed 1.9.2(7058),HyperOS (Android 14),Steam 3.9.0


补充:从模块的1.2.0版本开始,模块会对获取到的令牌信息做些许修改(完全本地处理),在1.3.2版本及以后,模块将会对令牌信息做如下处理:

  • 若令牌信息缺失uri,则给令牌信息生成一份uri(生成的uri格式未经测试,需要反馈)
  • 向导出的令牌信息中添加uuidKey信息(就不需要去手动找文件了)

老哥 这个弄出来之后,该怎么排序才能直接贴到steam++里面导入的手机导入呀QWQ

我也想问,这个怎么导入到steam++里面😇

老哥 这个弄出来之后,该怎么排序才能直接贴到steam++里面导入的手机导入呀QWQ

我也想问,这个怎么导入到steam++里面😇

用模块拿到的数据是放在第三个空里的,格式大概如下:

uuidKey还是从/data/data/com.valvesoftware.android.steam.community/shared_prefs/steam.uuid.xml里手动拿。

感谢大佬的模块!两个小坑帮大家避开:

  1. 请将LSPosed升级到最新版。
  2. 直接把模块复制出来的东西粘贴到Steam++里面是不行的,需要去掉最外面两层大括号。

红线划掉的部分要删掉

没有root的手机怎么整 emmm......

H2Sxxa commented

没有root的手机怎么整 emmm......

可以参考此模块的安装方式修补Steam

https://github.com/yujincheng08/BiliRoaming/wiki#未root用户

厉害老哥

我希望能够从之前的雷电模拟器上导出桌面令牌,我的版本是3.5,所以需要用到您的方法。但是我本人是学习经济的,对安卓程序开发知之甚少。我目前已经成功安装了Magisk和LSPosed(显示已激活1.8.6(6712)),但是我应该如何安装您开源的SteamGuardDump模块并使用呢?我在Magisk里导入本地模块提示Unzip Error。希望能够得到您的指导和帮助,付费咨询也是可以的,谢谢!

我希望能够从之前的雷电模拟器上导出桌面令牌,我的版本是3.5,所以需要用到您的方法。但是我本人是学习经济的,对安卓程序开发知之甚少。我目前已经成功安装了Magisk和LSPosed(显示已激活1.8.6(6712)),但是我应该如何安装您开源的SteamGuardDump模块并使用呢?我在Magisk里导入本地模块提示Unzip Error。希望能够得到您的指导和帮助,付费咨询也是可以的,谢谢!

我的模块不是Magisk模块,请直接下载Release里的apk文件,直接以普通应用的方式安装,然后在LSPosed里激活模块即可。

我希望能够从之前的雷电模拟器上导出桌面令牌,我的版本是3.5,所以需要用到您的方法。但是我本人是学习经济的,对安卓程序开发知之甚少。我目前已经成功安装了Magisk和LSPosed(显示已激活1.8.6(6712)),但是我应该如何安装您开源的SteamGuardDump模块并使用呢?我在Magisk里导入本地模块提示Unzip Error。希望能够得到您的指导和帮助,付费咨询也是可以的,谢谢!

老哥,你会了吗?我也是直接从雷电模拟器上导出的,你要是不会我可以教你。

问题已经解决啦,成功导出了

我希望能够从之前的雷电模拟器上导出桌面令牌,我的版本是3.5,所以需要用到您的方法。但是我本人是学习经济的,对安卓程序开发知之甚少。我目前已经成功安装了Magisk和LSPosed(显示已激活1.8.6(6712)),但是我应该如何安装您开源的SteamGuardDump模块并使用呢?我在Magisk里导入本地模块提示Unzip Error。希望能够得到您的指导和帮助,付费咨询也是可以的,谢谢!

我的模块不是Magisk模块,请直接下载Release里的apk文件,直接以普通应用的方式安装,然后在LSPosed里激活模块即可。

感谢帮助,问题已经解决了

没有root的手机怎么整 emmm......
用虚拟框架就行了,把steam和楼主的模块都添加进去。

我的是旧版令牌导出的数据保存下来一直用到了现在
换了手机以后想要恢复令牌就只能用
https://note.youdao.com/ynoteshare/index.html?id=094893f1c3df46c2400dc4fcf6c7597c&type=note#/
中提到的办法先安装旧版本恢复在更新
看了这个以后在想到是不是可以有什么办法可以直接把数据加密然后写进新版本的配置文件里

谢谢分享,这正是我原来想做的,但是由于没有 Android / XPosed 编程经验久久没有实现

我日居然能这么简单,老哥你这实用性已经独领风*了

我的是旧版令牌导出的数据保存下来一直用到了现在 换了手机以后想要恢复令牌就只能用 https://note.youdao.com/ynoteshare/index.html?id=094893f1c3df46c2400dc4fcf6c7597c&type=note#/ 中提到的办法先安装旧版本恢复在更新 看了这个以后在想到是不是可以有什么办法可以直接把数据加密然后写进新版本的配置文件里

朋友,这个办法现在还有效吗,我刚刚试了,但是steam 2.x的app好像已经不能用了。

我的是旧版令牌导出的数据保存下来一直用到了现在 换了手机以后想要恢复令牌就只能用 https://note.youdao.com/ynoteshare/index.html?id=094893f1c3df46c2400dc4fcf6c7597c&type=note#/ 中提到的办法先安装旧版本恢复在更新 看了这个以后在想到是不是可以有什么办法可以直接把数据加密然后写进新版本的配置文件里

朋友,这个办法现在还有效吗,我刚刚试了,但是steam 2.x的app好像已经不能用了。

啊确实是不能用了 操作我记不清了 反正是这两种中的一种:
1先用新版本的登录上然后手机装了核心破解直接降级安装应用 修改文件导入数据后再升级回来
2直接安装老版本应用 打开一次后不需要登录直接去修改相对应的文件 修改成功后打开一次app就可以看到令牌了 然后直接升级成新版就可以正常使用了

我的是旧版令牌导出的数据保存下来一直用到了现在 换了手机以后想要恢复令牌就只能用 https://note.youdao.com/ynoteshare/index.html?id=094893f1c3df46c2400dc4fcf6c7597c&type=note#/ 中提到的办法先安装旧版本恢复在更新 看了这个以后在想到是不是可以有什么办法可以直接把数据加密然后写进新版本的配置文件里

朋友,这个办法现在还有效吗,我刚刚试了,但是steam 2.x的app好像已经不能用了。

啊确实是不能用了 操作我记不清了 反正是这两种中的一种:
1先用新版本的登录上然后手机装了核心破解直接降级安装应用 修改文件导入数据后再升级回来
2直接安装老版本应用 打开一次后不需要登录直接去修改相对应的文件 修改成功后打开一次app就可以看到令牌了 然后直接升级成新版就可以正常使用了

我试了下两种办法,发现即便修改了文件再升级到3.x,还是读不到安全令。不清楚是什么问题。现在是比较眼馋3.x的app扫描登录功能。

没理由啊 会不会是文件位置或者名字错了 一个月前我弄得时候可以用啊

老哥 问下 多个steam账号怎么弄

steam3.7,模块好像不能正常工作,没有任何反应

steam3.7,模块好像不能正常工作,没有任何反应

已尝试修复,请下载新版本模块使用。

问下大佬,怎么提取出像旧版令牌一样的包含uri和server_time字段的令牌呢,SDA的mafile需要这些字段

问下大佬,怎么提取出像旧版令牌一样的包含uri和server_time字段的令牌呢,SDA的mafile需要这些字段

uri参考:#2276
server_time不是很清楚。

非常好用!感谢

太牛了太牛了,提醒大家开Steam之打开加速器,安装完一打开Steam就粘贴到剪切板上了,配合根目录里的steam.uuid.xml就可以用了。感谢dalao!

非常好模块 使我的令牌旋转

Thank you very much!

好东西 感谢大佬的贡献

亲测可以使用lspatch免root

HyperOS 1.0.13
Android/data/com.valvesoftware.android.steam.community/shared_prefs/ 目录下找不到 steam.uuid.xml

HyperOS 1.0.13 Android/data/com.valvesoftware.android.steam.community/shared_prefs/ 目录下找不到 steam.uuid.xml

目录不对,不在/sdcard/Android里,在/data/data/com.valvesoftware.android.steam.community/shared_prefs/steam.uuid.xml

3.7.7好像没用

3.7.7好像没用

还是可以用的 我刚又倒了一遍数据 虽然提示框什么都不会显示 但是粘贴出来就还会有那些数据的

亲测可以使用lspatch免root

哥们 没有root的手机该怎么办呢? lspatch怎么用呢

亲测可以使用lspatch免root

哥们 没有root的手机该怎么办呢? lspatch怎么用呢

用lspatch修补3.5版本的steam,我已经成功了

亲测可以使用lspatch免root

哥们 没有root的手机该怎么办呢? lspatch怎么用呢

用lspatch修补3.5版本的steam,我已经成功了

兄弟,能整个简单的教程么 lspatch是用手机上的还是电脑上的?

亲测可以使用lspatch免root

哥们 没有root的手机该怎么办呢? lspatch怎么用呢

用lspatch修补3.5版本的steam,我已经成功了

兄弟,能整个简单的教程么 lspatch是用手机上的还是电脑上的?

手机上安装lspatch,下载3.5或者3.7的steam,修补模式可以选择集成模式,嵌入SteamGuardDump模块,打开可调试,覆写版本号可选,修补完成后就安装,登录,绑定令牌,重启steam就能获取到了我们所需的SteamGuardInfo,uuidKey可以看这个从第2步开始,修补后的steam和原版签名不一致,会安装不上原版,安装最新的3.9嵌入模块后,就不会有弹窗了

我把3.5、3.7、3.9的steam原版和修补版,模块,lspatch,shizuku都打包了,有需要可以自取,密码1234

安装最新的3.9嵌入模块后,就不会有弹窗了

模块对3.9的Steam的支持已修复。

亲测可以使用lspatch免root

哥们 没有root的手机该怎么办呢? lspatch怎么用呢

用lspatch修补3.5版本的steam,我已经成功了

兄弟,能整个简单的教程么 lspatch是用手机上的还是电脑上的?

手机上安装lspatch,下载3.5或者3.7的steam,修补模式可以选择集成模式,嵌入SteamGuardDump模块,打开可调试,覆写版本号可选,修补完成后就安装,登录,绑定令牌,重启steam就能获取到了我们所需的SteamGuardInfo,uuidKey可以看这个从第2步开始,修补后的steam和原版签名不一致,会安装不上原版,安装最新的3.9嵌入模块后,就不会有弹窗了
我把3.5、3.7、3.9的steam原版和修补版,模块,lspatch,shizuku都打包了,有需要可以自取,密码1234

模块对3.9的Steam的支持已修复。

爱你兄弟!我一会儿试试