
Educational reverse engineering study of a Unity/IL2CPP Android game. Documents gateway protocol decoding, native anti-tampering SDK analysis, SSL pinning bypass, and Frida-based dynamic analysis techniques.
教育性质项目。 目标是理解一款现代 Unity/IL2CPP Android 游戏如何通信,其原生保护 SDK 如何工作,以及如何对真实 APK 应用静态 + 动态分析技术。
本仓库记录了对 com.run.tower.defense(权力与纷争)进行的持续逆向工程研究。这是一款采用 IL2CPP 运行时、集成多种原生保护 SDK 并使用自定义二进制网关协议的 Unity 游戏。
不涉及作弊、利用漏洞或修改游戏实时数据。重点纯粹在于理解内部架构。
| 领域 | 状态 | 关键发现 |
|---|---|---|
| 网关协议(端口 30101) | 已解码 | 自定义二进制,uint16_BE 帧头,变长主体,无 TLS |
| 操作码 | 已映射 | 0x55 握手,0x5d 游戏动作,0x1d 状态同步,0x15 心跳,0x59 客户端确认 |
| 坐标编码 | 已解码 | 类似 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 ← 本文件
├── FLOW.md ← 完整的已发现数据流
├── SETUP.md ← 环境搭建指南
├── TOOLS_AND_COMMANDS.md ← 所有命令和工具参考
├── CLAUDE.md ← 用于 AI 辅助会话的上下文
├── captures/
│ ├── battle.pcap ← 网关流量样本(会话 1)
│ └── battle2.pcap ← 网关流量样本(会话 2,更丰富)
└── scripts/
├── frida/
│ ├── certval_hook.js ← 观察 BestHTTP 证书验证
│ ├── button_hook.js ← 挂钩 Unity UI 按钮事件
│ ├── ssl_unpin.js ← SSL 证书固定绕过(Java + IL2CPP 层)
│ └── nesec_bypass.js ← 中和 libnesec 反篡改
├── analysis/
│ ├── analyze_gateway.py ← 解析并解码端口 30101 的 pcap 捕获
│ ├── analyze_mitm.py ← 读取并过滤 mitmproxy .mitm 文件
│ ├── decode_1d_v2.py ← 深度解码 0x1d 状态同步帧
│ └── deep_analysis.py ← 坐标、JSON 片段、操作码 0x59
└── proxy/
├── mitm_setup.py ← 在设备上安装 mitmproxy CA 证书
├── run_ssl_unpin.py ← mitmdump + Frida SSL 固定绕过组合运行器
└── run_button_hook.py ← mitmdump + Frida 按钮挂钩组合运行器
# 1. 在设备上启动 frida-server
adb shell "su -c '/data/local/tmp/fs17 -l 0.0.0.0:37555 &'"
adb forward tcp:37555 tcp:37555
# 2. 捕获网关流量
adb shell "su -c 'tcpdump -i any -w /sdcard/session.pcap port 30101'"
# ... 进行游戏 ...
adb pull /sdcard/session.pcap captures/
# 3. 分析捕获的数据
python scripts/analysis/analyze_gateway.py captures/session.pcap
查看 FLOW.md 了解完整协议映射和未解决问题。
查看 SETUP.md 搭建你的环境。
如果你有 Ghidra 分析结果、il2cppdumper 输出或其他 pcap 捕获文件 — 欢迎提交 PR 和 issue。