TngRootBypassHook 增强 captcha 诊断、TigerTally/JNIC 分层与 HWUI 策略;新增逆向脚本、Frida 工具与 UI dump;同步 MariBank SG hook 与 tng_exit_guard 更新。
5.0 KiB
5.0 KiB
MariBank 新加坡注册突破计划(2026-07-06)
现状:PH ✅ OTP(
code=0);SG ❌ 3100012(api.maribank.com.sg)
关联:MariBank_2026-07-06_菲律宾突破.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 前(降低黑名单概率)
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。
- LSPosed:模块启用,作用域含
sg.com.maribankmobile.digitalbank - 软重启 MariBank SG(不是只杀进程)
- Shamiko + DenyList 勾选 SG 全部进程,Enforce=OFF
- (建议)关闭 VPN
- Sign up → 新加坡手机号 → Next
4.3 抓 log
.\scripts\maribank-sg-register.ps1 -CaptureLog -KeepAdb
注意:旧版脚本默认会关 USB 调试,导致 PC 立刻
no devices。抓 log 必须加-KeepAdb,或先在手机上重新打开 USB 调试。
关注:
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. 成功标准
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