SteamTools icon indicating copy to clipboard operation
SteamTools copied to clipboard

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

Open YifePlayte opened this issue 1 year ago • 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信息(就不需要去手动找文件了)

YifePlayte avatar Mar 05 '23 04:03 YifePlayte

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

dianliao avatar Mar 17 '23 15:03 dianliao

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

Bin2450 avatar Mar 18 '23 08:03 Bin2450

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

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

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

~uuidKey还是从/data/data/com.valvesoftware.android.steam.community/shared_prefs/steam.uuid.xml里手动拿。~ 新版模块已支持同时导出uuidKey

YifePlayte avatar Mar 18 '23 13:03 YifePlayte

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

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

红线划掉的部分要删掉

JerryHan3 avatar Apr 09 '23 09:04 JerryHan3

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

yorshkas avatar May 06 '23 17:05 yorshkas

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

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

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

H2Sxxa avatar May 07 '23 01:05 H2Sxxa

厉害老哥

1814239758 avatar May 13 '23 13:05 1814239758

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

NinnKaShinn avatar May 19 '23 04:05 NinnKaShinn

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

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

YifePlayte avatar May 19 '23 04:05 YifePlayte

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

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

dianliao avatar May 20 '23 04:05 dianliao

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

NinnKaShinn avatar May 20 '23 05:05 NinnKaShinn

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

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

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

NinnKaShinn avatar May 20 '23 05:05 NinnKaShinn

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

Bin2450 avatar Jun 22 '23 08:06 Bin2450

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

Nighting0518 avatar Jun 26 '23 18:06 Nighting0518

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

MuelNova avatar Jul 12 '23 09:07 MuelNova

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

ghost avatar Jul 17 '23 11:07 ghost

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

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

dangehub avatar Aug 06 '23 07:08 dangehub

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

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

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

Nighting0518 avatar Aug 06 '23 09:08 Nighting0518

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

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

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

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

dangehub avatar Aug 07 '23 02:08 dangehub

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

Nighting0518 avatar Aug 07 '23 04:08 Nighting0518

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

geziyin avatar Sep 08 '23 17:09 geziyin

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

cangming99 avatar Sep 11 '23 07:09 cangming99

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

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

YifePlayte avatar Sep 12 '23 17:09 YifePlayte

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

w2546868666 avatar Sep 13 '23 17:09 w2546868666

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

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

YifePlayte avatar Sep 16 '23 04:09 YifePlayte

非常好用!感谢

qaq112233 avatar Sep 16 '23 08:09 qaq112233

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

VictoireWood avatar Oct 20 '23 13:10 VictoireWood

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

CSSZYF avatar Nov 30 '23 22:11 CSSZYF

Thank you very much!

UjuiUjuMandan avatar Jan 28 '24 11:01 UjuiUjuMandan

好东西 感谢大佬的贡献

misaka10384 avatar Mar 23 '24 11:03 misaka10384