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, 二进制协议, 云资产清单, 协议分析, 反篡改, 反调试, 坐标编码, 权限提升, 游戏逆向, 端口分析, 网关协议, 网络流量捕获, 逆向工具, 逆向工程