Files
notiMessage/docs/MariBank新加坡逆向.md
mars 81119e0ff9 feat(maribank): PH 注册 OTP 突破、SG bypass 与中文文档
菲律宾 SeaBank 在 Root+LSPosed+Shamiko 下 register 已通过并触发 OTP;扩展 SG 包名、加密前 Hook、Magisk 设备伪装脚本,并将 docs 整理为中文操作与风控说明。
2026-07-06 14:01:49 +08:00

7.3 KiB
Raw Blame History

MariBank 新加坡版逆向报告

日期2026-07-06
设备Pixel 6已 Root + LSPosed + ADB 开启)
APK 来源:从本机 pullreverse/apks/maribank_sg_*.apk


1. 基本信息

包名 sg.com.maribankmobile.digitalbank
显示名 MariBank新加坡
版本 3.2.2versionCode 30220
对比 PH 版 ph.seabank.seabank · v3.22.0 (32200)
API 域名 https://api.maribank.com.sgstaging: api.staging.maribank.com.sg
Application com.shopee.bke.digitalbank.BkeApplication(与 PH 相同

本地 APK

reverse/apks/maribank_sg_base.apk
reverse/apks/maribank_sg_arm64.apk   → SO 在 reverse/extracted/native/

2. 截图现象(你当前遇到的)

启动后出现 两层拦截

现象 类型 说明
全屏 「ADB/Wireless ADB Detected」 环境检测页 文案 keybke_title_adb_wirelessadb_controlbke_btn_turn_off_adb_wireless_adb
Toast 「Does not support root device」 Root 检测 SHPSSDK / SafeMode 典型提示

含义

  1. ADB 检测Root 检测独立项——新加坡版在 PH 版基础上 明显加强了 USB/无线调试检测
  2. 状态栏 VPN 小钥匙 可能额外触发 RISK_* 或网络风控(需 logcat 确认)。
  3. 当前 PH 版 Xposed Hook 未作用到 SG 包名(只 Hook ph.seabank.seabank),所以 SG 版 完全未 bypass

临时验证(无 Hook:关闭 USB 调试 + 无线调试 后冷启动,可确认 ADB 页是否消失Root Toast 仍会存在。


3. 技术栈对比SG vs PH

组件 SG 3.2.2 PH 3.22.0 结论
Shopee BKE 同框架
BkeApplication Hook 时机相同(attachBaseContext 后)
SafeMode com.shopee.bke.lib.safemode.b 相同 可复用 boolean Hook
SafeModeRecoverActivity Root 弹窗/恢复页
SHPSSDK Bank com.shopee.shpssdkbank.SHPSSDK 相同 可复用 riskToken / requestDefense 链
Native SO libshpssdk_bank.solibsdkutils.solibbkutils.so 相同 SG 额外有 libshpssdk.so
字符串解密 uvuwwuvwv.uvwwuuvvw 相同 混淆包名可能不同

结论SG 与 PH 是 同一套 Shopee 银行 SDKPH 上已写的 Hook 大部分可迁移,需改 包名补充 ADB 风控


4. 新加坡版新增ADB / 无线调试检测

4.1 SHPSSDK 风险常量DEX 内)

RISK_USB_ADB          ← USB 调试
RISK_WIFI_ADB         ← 无线调试
RISK_ADB
RISK_ROOT
RISK_HOOK
RISK_DEBUG
RISK_DEVELOPER_MODE
RISK_EMULATOR
...

与截图中 ADB 拦截页 + Root Toast 对应。

4.2 UI 字符串(资源 key

Key 用途
bke_title_adb_wirelessadb_control 标题「ADB/Wireless ADB Detected」
bke_btn_turn_off_adb_wireless_adb 按钮「Turn Off ADB/Wireless ADB」
bke_desc_explain_detect_adb_1/2 说明文案
bke_desc_safeguard_bank_app_from_adb_wirelessadb_1/2 安全说明
AdbDetected / WifiAdbDetected RN / 业务路由标识

4.3 检测思路(推断)

  1. Settings.Global / adb_enabled、无线调试相关属性
  2. SHPSSDK getRiskSync → 命中 RISK_USB_ADB / RISK_WIFI_ADB
  3. 进入 ADB 专用拦截 UI(非仅 SafeModeRecoverActivity
  4. Root 仍走 RISK_ROOT → Toast「Does not support root device」

5. API 与登录SG

PH 实测重点为 POST /uapi/v2/registerSG DEX 内可见:

类型 路径示例
登录 /v3/login/v4/login/v2/login/bke/linkage
注册 /v2/register
登录前 /v1/list/latest-notice/pre-login
人脸 /v3/login/facial/verification
DFP /dfp/(与 PH 同类)
通用 uapi /uapi/47 处引用)

Hosthttps://api.maribank.com.sg(非 PH 的 api.seabank.ph)。


6. Native 库arm64 split

已从 maribank_sg_arm64.apk 解出至 reverse/extracted/native/,与风控相关:

SO 大小(约) 作用
libshpssdk_bank.so 8.5 MB SHPSSDK 银行风控、riskToken
libshpssdk.so 6.3 MB SG 额外PH 侧以 bank 为主)
libsdkutils.so 789 KB 注册/body 加密
libbkutils.so 102 KB JNI 工具
libmemory_security.so 3.8 MB 内存/安全相关

7. 与现有 Xposed 模块的关系

当前 MariBankRootBypassHook / MariBankShpsNativeHook 仅绑定

public static final String PACKAGE = "ph.seabank.seabank";

SG 包名未纳入,因此截图中的拦截 预期行为

7.1 可复用(改包名即可试)

  • SafeMode boolean Hooksafemode.b 等)
  • Process.killProcess / finishAffinity 反自杀
  • /proc/self/maps 过滤、SystemProperties 伪装
  • SHPSSDK getRiskSync 清空、getRiskToken 净化
  • OkHttp 出站 riskToken 净化

已实现2026-07-06MariBankRootBypassHook 已支持 sg.com.maribankmobile.digitalbank,含 ADB Settings 伪装、ADB 全屏页 finish、Root/ADB Toast 拦截。

7.2 SG 专用(已部分实现)

状态
包名 MainHook + arrays.xml
ADB 风险 Settings.Global/Secure adb 键 → 0init.svc.adbd → stopped
ADB 拦截页 Activity.onResume 检测 ADB 文案后 finish()
Root Toast 「Does not support root device」

7.3 不建议照搬 PH 服务端结论

PH 的 4067012菲律宾服务端 结论SG 需单独测 api.maribank.com.sg


8. 逆向脚本

# 已从手机 pull APK 后可本地扫描
python reverse/scripts/scan_maribank_sg.py
python reverse/scripts/find_sg_adb_strings.py
python reverse/scripts/find_sg_adb_classes.py
python reverse/scripts/list_safemode.py reverse/apks/maribank_sg_base.apk

从手机 pull已执行过

adb shell pm path sg.com.maribankmobile.digitalbank
adb pull <base.apk> reverse/apks/maribank_sg_base.apk

9. 建议下一步2026-07-06 更新)

  1. LSPosed 增加 SG 包名 已完成
  2. 扩展 ADB bypass 已完成
  3. SGdiff PH/SG register 明文;修复 ProcessBuilder 异常;仍 3100012 则试干净机
  4. PH:走完 OTP → 开户全流程,确认稳定性
  5. logcatMariBankEncrypt in0 byte3100012OTP_SMS

10. 实测状态2026-07-06

注册 API 结果
ph.seabank.seabank api.seabank.ph/uapi/v2/register code=0 → OTP
sg.com.maribankmobile.digitalbank api.maribank.com.sg/uapi/v2/register 3100012

完整说明:MariBank_2026-07-06_菲律宾突破.md


11. 相关文档

文档 说明
MariBank_2026-07-06_菲律宾突破.md PH OTP 突破 + SG 现状 + 方案 B
MariBank实现说明.md PH Hook 实现与问题清单
工作日志_2026-07-03.md PH 版 7/3 工作记录

记录日期2026-07-06 · 最后更新:菲律宾 OTP 突破