Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
YifePlayte opened this issue Mar 5, 2023 · 46 comments
Open

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

YifePlayte opened this issue Mar 5, 2023 · 46 comments
Labels
documentation Improvements or additions to documentation

Comments

@YifePlayte
Copy link

YifePlayte commented Mar 5, 2023

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

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信息(就不需要去手动找文件了)
@dianliao
Copy link

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

@Bin2450
Copy link

Bin2450 commented Mar 18, 2023

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

@YifePlayte
Copy link
Author

YifePlayte commented Mar 18, 2023

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

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

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

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

@rmbadmin rmbadmin added the documentation Improvements or additions to documentation label Mar 29, 2023
@rmbadmin rmbadmin pinned this issue Mar 29, 2023
@JerryHan3
Copy link

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

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

红线划掉的部分要删掉

@yorshkas
Copy link

yorshkas commented May 6, 2023

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

@H2Sxxa
Copy link

H2Sxxa commented May 7, 2023

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

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

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

@1814239758
Copy link

厉害老哥

@NinnKaShinn
Copy link

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

@YifePlayte
Copy link
Author

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

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

@dianliao
Copy link

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

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

@NinnKaShinn
Copy link

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

@NinnKaShinn
Copy link

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

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

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

@Bin2450
Copy link

Bin2450 commented Jun 22, 2023

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

@Nighting0518
Copy link

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

@MuelNova
Copy link

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

@ghost
Copy link

ghost commented Jul 17, 2023

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

@dangehub
Copy link

dangehub commented Aug 6, 2023

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

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

@Nighting0518
Copy link

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

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

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

@dangehub
Copy link

dangehub commented Aug 7, 2023

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

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

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

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

@Nighting0518
Copy link

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

@geziyin
Copy link

geziyin commented Sep 8, 2023

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

@cangming99
Copy link

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

@YifePlayte
Copy link
Author

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

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

@CU2Mor0
Copy link

CU2Mor0 commented Sep 13, 2023

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

@YifePlayte
Copy link
Author

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

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

@qaq112233
Copy link

非常好用!感谢

@VictoireWood
Copy link

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

@CSSZYF
Copy link

CSSZYF commented Nov 30, 2023

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

@UjuiUjuMandan
Copy link

Thank you very much!

@misaka10384
Copy link

好东西 感谢大佬的贡献

@lwb-2021
Copy link

lwb-2021 commented Apr 4, 2024

亲测可以使用lspatch免root

@lb-fes
Copy link

lb-fes commented May 11, 2024

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

@YifePlayte
Copy link
Author

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

@Lihuayy
Copy link

Lihuayy commented May 11, 2024 via email

@NatsumiXD
Copy link

3.7.7好像没用

@dianliao
Copy link

dianliao commented Jun 3, 2024

3.7.7好像没用

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

@liuzhiyuan562
Copy link

亲测可以使用lspatch免root

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

@felix-ls
Copy link

felix-ls commented Jul 2, 2024

亲测可以使用lspatch免root

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

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

@liuzhiyuan562
Copy link

亲测可以使用lspatch免root

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

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

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

@felix-ls
Copy link

felix-ls commented Jul 2, 2024

亲测可以使用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

@YifePlayte
Copy link
Author

YifePlayte commented Jul 2, 2024

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

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

@liuzhiyuan562
Copy link

亲测可以使用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的支持已修复。

爱你兄弟!我一会儿试试

@huangxiaojun1996
Copy link

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

我正在使用夜神模拟器,我配置了kitsune Mask,以及1.9.2的LSposed。能否告知如何使用该SteamGuardDump。感谢大佬们!!!!

@YifePlayte
Copy link
Author

能否告知如何使用该SteamGuardDump。感谢大佬们!!!!

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

@huangxiaojun1996
Copy link

能否告知如何使用该SteamGuardDump。感谢大佬们!!!!

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

搞定!搞定!感谢大佬!!!

@huangxiaojun1996
Copy link

各位大佬们,我通过上述的方法可以成功的获取3.5-3.9各大版本的加密。Magisk版本使用最新的,LSPosed版本LSPosed 1.8.6和1.9.1;但是该方法在steam3.4版本上失效了,不知道要如何处理

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests