TngRootBypassHook 增强 captcha 诊断、TigerTally/JNIC 分层与 HWUI 策略;新增逆向脚本、Frida 工具与 UI dump;同步 MariBank SG hook 与 tng_exit_guard 更新。
140 lines
5.0 KiB
Markdown
140 lines
5.0 KiB
Markdown
# MariBank 新加坡注册突破计划(2026-07-06)
|
||
|
||
> **现状**:PH ✅ OTP(`code=0`);SG ❌ **3100012**(`api.maribank.com.sg`)
|
||
> **关联**:[`MariBank_2026-07-06_菲律宾突破.md`](MariBank_2026-07-06_菲律宾突破.md) · [`MariBank新加坡逆向.md`](MariBank新加坡逆向.md) · [`MariBank风控与载荷说明.md`](MariBank风控与载荷说明.md)
|
||
|
||
---
|
||
|
||
## 1. 问题定位
|
||
|
||
| 层级 | SG 状态 | 说明 |
|
||
|------|---------|------|
|
||
| 本地 Root / ADB 页 | ✅ 可 bypass | 能进注册页、点 Next |
|
||
| DFP 上报 | ✅ 通常 `code=0` | 只表示收到,不等于注册过 |
|
||
| `deviceFingerprint` 尾部 | ✅ 已 `\|00\|0` | Java 层净化生效 |
|
||
| **`rdVerifyInfo.data` / `dataKey`** | ❌ 服务端拒 | **3100012 主因** |
|
||
| 干净机 `25078RA3EY` | ✅ 关 USB 调试可 OTP | 无 LSPosed |
|
||
|
||
**结论**:SG 卡在 **native attestation 密文 + 区域风控**,不是再堆本地弹窗拦截。
|
||
|
||
---
|
||
|
||
## 2. 与 PH 的差异(实测 + 逆向)
|
||
|
||
| 维度 | PH | SG |
|
||
|------|----|----|
|
||
| API | `api.seabank.ph` | `api.maribank.com.sg` |
|
||
| 错误码 | 4067012 | **3100012** |
|
||
| App 版本 | 3.22.0 | 3.2.2 |
|
||
| 国家码 `cyCode` | 63 | **65** |
|
||
| 本地 ADB 检测 | 较弱 | **RISK_USB_ADB / RISK_WIFI_ADB** |
|
||
| 服务端 strictness | 7/6 已通过 | **更严** |
|
||
| 设备黑名单 | 较少 | Pixel 6 多次测 SG 可能已标记 |
|
||
|
||
---
|
||
|
||
## 3. 本轮代码改动(2026-07-06)
|
||
|
||
| 改动 | 目的 |
|
||
|------|------|
|
||
| **`ProbeGuard`** | `ProcessBuilder` / `Runtime.exec` 返回假进程,**不再抛 SecurityException**(避免 SHPSSDK 记 tamper) |
|
||
| **`MariBankAttestationHook`** | 增加 `vvuuuuvvv`、`uvuwwuvwv.uvwwuuvvw` attestation 类 Hook |
|
||
| **`MariBankShpsNativeHook`** | native-core 增加 `vvuuuuvvv` |
|
||
| **`MariBankRegisterPayloadUtil`** | 加密前 log:`cyCode`、`dataLen`、`dataKeyLen`、`fpTail` |
|
||
|
||
---
|
||
|
||
## 4. 推荐测试流程(Root 机)
|
||
|
||
### 4.1 每次测 SG 前(降低黑名单概率)
|
||
|
||
```powershell
|
||
cd C:\Users\Administrator\Desktop\notiMessage
|
||
|
||
# 1. 编译安装最新 Hook
|
||
.\scripts\build-debug.ps1
|
||
.\scripts\install-debug.ps1
|
||
|
||
# 2. 新设备 ID(保持 USB 调试,便于继续 adb)
|
||
.\scripts\maribank-sg-register.ps1 -NewIdentity -KeepAdb
|
||
|
||
# 3. 上机测 SG 前再关 USB 调试(会断开 PC adb,属预期)
|
||
.\scripts\maribank-sg-register.ps1 -DisableUsbDebug
|
||
```
|
||
|
||
### 4.2 手机侧
|
||
|
||
> **LSPosed 里两个都叫「MariBank」**:菲律宾 `ph.seabank.seabank`(v3.22.0)与新加坡 `sg.com.maribankmobile.digitalbank`(v3.2.2)桌面名相同,从 LSPosed 作用域点开会容易进错。**请认包名**,或 PC 执行 `.\scripts\launch-maribank-sg.ps1` 直接打开新加坡版。log 里应出现 `api.maribank.com.sg`,若全是 `api.seabank.ph` 说明开的是菲律宾 App。
|
||
|
||
1. LSPosed:模块启用,作用域含 **`sg.com.maribankmobile.digitalbank`**
|
||
2. **软重启** MariBank SG(不是只杀进程)
|
||
3. Shamiko + DenyList 勾选 SG 全部进程,**Enforce=OFF**
|
||
4. (建议)**关闭 VPN**
|
||
5. Sign up → 新加坡手机号 → **Next**
|
||
|
||
### 4.3 抓 log
|
||
|
||
```powershell
|
||
.\scripts\maribank-sg-register.ps1 -CaptureLog -KeepAdb
|
||
```
|
||
|
||
> **注意**:旧版脚本默认会关 USB 调试,导致 PC 立刻 `no devices`。抓 log 必须加 **`-KeepAdb`**,或先在手机上重新打开 USB 调试。
|
||
|
||
关注:
|
||
|
||
```text
|
||
MariBankRegister: register summary cy=65 scene=REGISTRATION step=BE fpTail=00|0 dataLen=... dataKeyLen=...
|
||
MariBankRoot HTTP .../uapi/v2/register ... code=0 ← 成功
|
||
MariBankRoot HTTP .../uapi/v2/register ... code=3100012 ← 仍失败
|
||
ProbeGuard: fake probe process ← 探针已静默拦截
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 若仍 3100012 — 按优先级排查
|
||
|
||
| 优先级 | 动作 | 原因 |
|
||
|--------|------|------|
|
||
| P0 | **换新 serial + android_id**(`-NewIdentity`) | SG 可能设备级黑名单 |
|
||
| P0 | **关 USB 调试 + 无线调试** | 干净机对照:开调试本地 ADB 页;服务端 SG 更严 |
|
||
| P0 | **关 VPN** | 截图曾见 VPN 图标,可能进 risk |
|
||
| P1 | diff PH vs SG 同机 `register summary` | 对比 `dataLen`、fingerprint 段 |
|
||
| P1 | 用 **未测过 SG 的干净机** 注册一次 | 分离「设备黑」vs「Root 载荷不可过」 |
|
||
| P2 | Play Integrity / PIF 模块是否生效 | SG 可能校验 attestation 内 integrity |
|
||
| P3 | native hook `libshpssdk_bank.so` 生成链 | Java 层改不了 `data` 密文内容 |
|
||
|
||
---
|
||
|
||
## 6. 成功标准
|
||
|
||
```json
|
||
POST https://api.maribank.com.sg/uapi/v2/register
|
||
→ {"code":0,"msg":"success","data":{"scene":"REGISTRATION","step":"BSO",...}}
|
||
```
|
||
|
||
随后 App 进入 **OTP 短信** 步骤(与 PH 相同 step 流转)。
|
||
|
||
---
|
||
|
||
## 7. 禁止操作
|
||
|
||
与 PH 相同,会导致白屏 / RN 崩溃:
|
||
|
||
- Hook `System.loadLibrary`
|
||
- Hook `RealInterceptorChain.proceed`
|
||
- 过早 Hook `ShpssInstall` / `vuvuwwwuw`
|
||
|
||
---
|
||
|
||
## 8. 相关脚本
|
||
|
||
| 脚本 | 用途 |
|
||
|------|------|
|
||
| `scripts/maribank-sg-register.ps1` | SG 测前准备 + 抓 log |
|
||
| `scripts/maribank-spoof-device.ps1 -NewIdentity` | 换 serial / android_id |
|
||
| `scripts/maribank-scheme-b-finish.ps1` | LSPosed 作用域 + pm clear |
|
||
|
||
---
|
||
|
||
*最后更新:2026-07-06*
|