HerrErde/SubwaySurfersCity-Api
GitHub: HerrErde/SubwaySurfersCity-Api
该项目提供了与 Subway Surfers City 手游内部 API 交互的 Python 工具集,支持通过 gRPC 和 JSON 方式调用账号认证、玩家管理、排行榜等功能接口。
Stars: 0 | Forks: 0
# SubwayCity API
您可以与 [Subway City](https://play.google.com/store/apps/details?id=com.sybogames.subway.surfers.game) 游戏应用所使用的内部 API 进行交互。
您还可以查看 [Subway Surfers API](https://github.com/HerrErde/SubwaySurfers-API)
[RPC 文档](./grpc_docs.md) \
[Json 文档](./json_docs.md)
## 环境要求
- 已安装 `grpcio` 和 `protobuf` Python 包
- 已安装 Protocol Buffers Compiler (`protoc`) 并且可以通过命令行访问
## 设置与使用
```
pip install -r requirements.txt
cd send
protoc -I=protos --python_out=. protos\*.proto
python -m grpc_tools.protoc -I=protos --python_out=. --grpc_python_out=. protos\*.proto
```
```
python player.py
python abtesting.py
python leaderboard.py
python sendjson.py
```
## 使用方法
### 1. 注册新账号(可选)
- 运行脚本:
python send/auth.py
- 这将生成两个 token:
- `identityToken`
- `refreshToken`
- 或者您可以手动请求这些 endpoint
- 最简单的方法是将其与 .env 文件以及变量 `IDENTITYTOKEN` 结合使用
### 2. 创建玩家(仅在您注册了新账号的情况下)
- 注册之后,您必须先创建一个玩家资料,然后才能使用大多数 API endpoint。(在使用 `auth.py` 时不需要)
### 3. 获取您的 `identityToken`
- **如果您已经拥有 Subway Surfers City 账号:**
1. 打开您游戏目录下的 `auth/prod/identity` 文件。
2. 该文件为 JSON 格式。复制 `"identityToken"` 的值。
- **如果您注册了一个新账号:**
使用 `python send/auth.py` 返回的 `identityToken`。
### Token 刷新
- `identityToken` 的有效期为 **7 天**。
- 在过期时使用您的 `refreshToken` 来请求新的 `identityToken`。
- 务必在所有使用到该 token 的地方替换旧 token。
## API 文档
- [RPC 文档](./grpc_docs.md) – gRPC endpoint、请求/响应格式、示例
- [JSON 文档](./json_docs.md) – JSON endpoint、请求/响应格式、示例
### 开发说明
如果您想自行解码请求,请对您的手机进行 root、使用模拟器,或者破解该应用。
然后使用 **PCAPdroid** 捕获流量并将其导出为 PCAP 文件。在 **Wireshark** 中打开该文件,找到 gRPC 请求(通过搜索 "gprc" 进行过滤),并检查 **Protocol Buffer** 部分。接下来,复制相关 `Field()` 内部的 `value`。然后您可以使用类似 [protobuf-decoder](https://good.tools/protobuf-decoder) 的工具来解码 Protobuf。对响应也可以采取同样的操作。
标签:gRPC, Protocol Buffers, Python, Python工具, 接口交互, 无后门, 游戏API, 移动应用接口, 逆向工具