BeyondDimension / BeyondDimension/SteamTools

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

Open
#2,598 48 comments 45 reactions 0 assignees View on GitHub
documentation
Dominant language
C#
Stars
26.8k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

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

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](https://github.com/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信息(就不需要去手动找文件了)

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue describes an external Xposed module, YifePlayte/SteamGuardDump, and Steam 3.x version-specific token extraction, but names no SteamTools files or tests. Start by reading the issue thread and the referenced module; a concrete change and verifiable completion condition are not specified.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, react-native
Domain
authentication, mobile-dev, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.