# 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*