kdbugk/game-of-kingshot-re
GitHub: kdbugk/game-of-kingshot-re
一个记录对《Game of Thrones: Conquest》Android 版本持续逆向工程研究的仓库,旨在解析其自定义网关协议与反调试机制。
Stars: 1 | Forks: 0
# got-re — 逆向工程:Game of Thrones: Conquest (Android)
## 这是什么
本仓库记录了对 **com.run.tower.defense**(Game of Thrones: Conquest)的持续逆向工程研究,该游戏使用 Unity 引擎、IL2CPP 运行时、多种原生保护 SDK,并采用自定义二进制网关协议。
不涉及作弊、不利用漏洞、不修改实时游戏数据。重点仅为理解内部架构。
## 我们发现了什么
| 领域 | 状态 | 关键发现 |
|---|---|---|
| 网关协议(端口 30101) | **已解码** | 自定义二进制,采用 `uint16_BE` 帧结构,varint 主体,无 TLS |
| 操作码 | **已映射** | `0x55` 握手,`0x5d` 游戏动作,`0x1d` 状态同步,`0x15` 心跳,`0x59` 客户端 ACK |
| 坐标编码 | **已解码** | 类似 ASCII85 的 4 字符 → uint32(x=王国,y=位置) |
| 分析 API | **已捕获** | `logagent-wf.centurygame.com` — JSON 事件,未固定 |
| SSL 绑定 | **部分绕过** | Java 层已绕过(OkHttp + TrustManager);原生 BestHTTP 层已识别 |
| 反篡改(libnesec) | **已识别** | 进程在 Frida 附加约 58 秒后被杀死;杀死函数与检测层级已映射 |
| libxt_a64.so | **已识别** | PLT 钩子 SDK 加载于隔离链接器命名空间,对 Frida/maps 不可见 |
| libNetHTProtect.so | **已分析** | 网络完整性 SDK;MD5 指纹;类 Protobuf 序列化 |
| IL2CPP 转储 | **部分完成** | 已恢复汇编列表;BestHTTP 证书值 RVA 已映射 |
## 仓库结构
```
got-re/
├── README.md ← this file
├── FLOW.md ← complete discovered data flow
├── SETUP.md ← environment setup guide
├── TOOLS_AND_COMMANDS.md ← all commands and tools reference
├── CLAUDE.md ← context for AI-assisted sessions
├── captures/
│ ├── battle.pcap ← gateway traffic sample (session 1)
│ └── battle2.pcap ← gateway traffic sample (session 2, richer)
└── scripts/
├── frida/
│ ├── certval_hook.js ← observe BestHTTP certificate validation
│ ├── button_hook.js ← hook Unity UI button events
│ ├── ssl_unpin.js ← SSL unpinning (Java + IL2CPP layers)
│ └── nesec_bypass.js ← neutralize libnesec anti-tampering
├── analysis/
│ ├── analyze_gateway.py ← parse and decode port 30101 pcap captures
│ ├── analyze_mitm.py ← read and filter mitmproxy .mitm files
│ ├── decode_1d_v2.py ← deep decode of 0x1d state-sync frames
│ └── deep_analysis.py ← coordinates, JSON fragments, opcode 0x59
└── proxy/
├── mitm_setup.py ← install mitmproxy CA on device
├── run_ssl_unpin.py ← mitmdump + Frida SSL unpin combined runner
└── run_button_hook.py ← mitmdump + Frida button hook combined runner
```
## 快速开始
```
# 在设备上启动 frida-server
adb shell "su -c '/data/local/tmp/fs17 -l 0.0.0.0:37555 &'"
adb forward tcp:37555 tcp:37555
# 捕获网关流量
adb shell "su -c 'tcpdump -i any -w /sdcard/session.pcap port 30101'"
# ... play the game ...
adb pull /sdcard/session.pcap captures/
# 分析它
python scripts/analysis/analyze_gateway.py captures/session.pcap
```
## 感兴趣参与贡献?
请参阅 [FLOW.md](FLOW.md) 获取完整协议地图与待解决问题。
请参阅 [SETUP.md](SETUP.md) 以配置运行环境。
如果你有 Ghidra 分析、il2cppdumper 输出或额外的 PCAP 捕获 — 欢迎提交 PR 与问题。
标签:Analytics 抓包, Android 逆向, BestHTTP, Docker支持, DOM解析, Frida, Hook 检测, IL2CPP, PCAP, SSL Pinning 绕过, Unity, 二进制协议, 云资产清单, 协议分析, 反篡改, 反调试, 坐标编码, 权限提升, 游戏逆向, 端口分析, 网关协议, 网络流量捕获, 逆向工具, 逆向工程