Files
notiMessage/docs/工作日志_2026-07-03.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

11 KiB
Raw Blame History

2026-07-03

本文档汇总 2026 年 7 月 3 日notiMessage 项目上围绕 MariBank / SeaBank PH 注册与风控绕过 所完成的分析、实现、测试与仓库整理工作。


1. 当日目标

在已 Root 的 Pixel 6Magisk + Zygisk + LSPosed对菲律宾 MariBank App 完成:

  1. 绕过本地 Root / 设备风控,进入注册流程;
  2. 输入手机号并点击 Next,完成 POST /uapi/v2/register 注册请求。

目标 App

包名 ph.seabank.seabank
显示名 MariBank
版本 3.22.0versionCode 32200

2. 核心结论(当日最终状态)

层级 状态 说明
本地 Root 弹窗 / 自杀 已基本绕过 可进入首页与手机号输入页
DFP 上报 成功 POST /dfp/v1/data/report 返回 code=0
riskToken 尾部净化 Hook 生效 `
注册接口 仍失败 POST /uapi/v2/register**4067012**(亦见 4067004
服务端文案 账户安全临时封锁 「For your account's security, this service has been temporarily blocked...」(+632) 8424 8050

判断:本地 bypass 已推进到 DFP 层,但 服务端仍拒绝注册。原因可能包括:加密 DFP 载荷校验、设备指纹黑名单、号码/设备组合风控,而非单纯 riskToken 尾部字段。改 token 尾部 不足以 通过注册。


3. Xposed 模块实现(xposed-module

3.1 新增 / 主要 Hook 文件

文件 作用
hook/MariBankRootBypassHook.java SafeMode、SHPSSDK、OkHttp 出站净化、4067 错误日志、Root 自杀拦截
hook/MariBankShpsNativeHook.java /proc 过滤、native-core、boot 属性伪装、requestDefense 等 native 层
hook/MariBankRiskTokenUtil.java riskToken / deviceToken 尾部 `
MainHook.java ph.seabank.seabank 加载上述 Hook先 early proc再 deferred

3.2 关键逆向结论(已写入 Hook

能力 真实类 / 库
riskToken 生成链 vvuuuuvvv.wwvuwuwvu(Context)classes11.dex
SoUtils com.shopee.bke.lib.jni.utils.flog tag SoUtils
Native 加密包装 com.shopee.bke.lib.jni.utils.d → native uvwuvwuv
SHPSSDK native libshpssdk_bank.sowvvvuwwu.vvuwuuvuuwwvwvwuvv
字符串解密 uvuwwuvwv.uvwwuuvvw.uvuwwwuwu(hex, key)

3.3 明确避免 Hook 的点(实测会崩)

  • **RealInterceptorChain.proceed**SO 硬编码检测Hook 后易触发风控或异常。
  • **ShpssInstall / vuvuwwwuw**:干扰 SoUtils.loadSoLibrary,导致 libsdkutils 加载死循环 白屏

3.4 注册请求体

  • register body 为 native 加密Java 层 Hook 常见日志:register request body unreadable (encrypted or one-shot)
  • 当日 在 logcat 中抓到 register 明文 JSON。

4. 逆向与静态分析(reverse/

4.1 已完成

  • 从设备 pull split APK / base APK提取 libsdkutils.solibshpssdk_bank.solibbkutils.so 等至 reverse/extracted/native/
  • 编写并运行大量 DEX/APK 扫描脚本scan / dump / find 系列),定位:
    • SHPSSDK、SafeMode、注册 API、4067 错误上下文;
    • JNI 目标与加密类继承关系。
  • 脚本:reverse/frida/pull_split_apk.ps1reverse/scripts/extract_all_so.py 等。

4.2 主要 native / 加密链路

register 请求
  → NativeEncryptUtilsWrapper (utils.d)
  → native uvwuvwuv (libsdkutils.so / libbkutils.so)
  → 加密 body + riskToken / deviceToken
  → POST https://api.seabank.ph/uapi/v2/register

5. Frida 动态分析

5.1 环境

  • PCFrida 17.15.3;手机:/data/local/tmp/frida-server
  • 脚本:reverse/frida/trace_maribank_register.js
  • 运行器:run_frida_trace.pyattach / spawnrun_spawn_trace.pystart-mari-trace.ps1

5.2 遇到的问题

模式 现象
attach 长时间 Java.available == falseJava Hook 无法安装;进程名需用 MariBank 而非包名查找
spawn native dlopen 可 hook但 Java 层 Java is not defined / 线程相关异常
CLI spawn --no-pause 时 session 立即退出;需 Python runner 保活

5.3 当日 Frida 结论

  • 未抓到 有效的 /register 明文 body 或完整 HTTP 链日志。
  • MariBank 对 Frida 有较强干扰;当日有效证据主要来自 LSPosed logcat,而非 Frida trace。

6. Logcat 实测摘要LSPosed 生效)

测试号码示例917885426691334777999171243667 等(均失败)。

典型成功链路

POST /dfp/v1/data/report → {"code":0,...}
riskToken sanitized ... -> |00|0

典型失败链路

POST /uapi/v2/register
→ {"code":4067012,"msg":"For your account's security, this service has been temporarily blocked..."}

其他日志

  • wvvvuwwu.vuwuuwvw native 实现未找到(可能与 LSPosed / 环境冲突有关)。
  • Root 检测触发 killProcess 时被 blocked finish 拦截,表现为短暂异常后仍可继续使用。

推荐 logcat 过滤

powershell -File scripts\logcat-maribank.ps1 -Follow
# 或
adb logcat -s notiMessageHook/MariBankRoot:V MB-TRACE:V

7. 构建与安装脚本

脚本 用途
scripts/build-debug.ps1 构建主 App + xposed-module debug APK
scripts/install-debug.ps1 安装双 APK
scripts/install-frida.ps1 PC + 手机 frida-server
scripts/start-mari-trace.ps1 启动 Frida attach + MariBank 相关 logcat
scripts/logcat-maribank.ps1 过滤 MariBank / Hook 日志
scripts/organize-reverse.ps1 整理 reverse/ 目录(可重复执行)

LSPosed 作用域需勾选:MariBank + notiMessage + xposed 模块


8. 仓库整理

8.1 问题

reverse/ 根目录堆积 70+ Python 脚本、临时 .dex、解压 APK2.2 GB / 7 万+ 文件IDE 与 git status 显得极乱。

8.2 新目录结构

reverse/
├── README.md
├── scripts/       # 逆向 Python 脚本71 个,含 _paths.py
├── frida/         # Frida 脚本与运行器
├── apks/          # APK / zip不入库
├── extracted/     # 解压、dex dump、.so不入库
├── output/        # 分析报告 *.txt
├── logs/          # 运行日志
│   └── frida/     # trace / logcat
└── tmp/           # 临时 *.dex不入库

8.3 同步修改

  • 44 个 脚本内路径改为相对 reverse/ 根(apks/extracted/tmp/output/)。
  • Frida 日志输出改到 reverse/logs/frida/
  • 更新 .gitignoredocs/银行逆向.mdpull_split_apk.ps1start-mari-trace.ps1
  • apk_extract/ 迁入 extracted/apk_extract/seabank.zip 迁入 apks/

9. 后续建议(未在当日完成)

优先级 方向
1 对照实验:未 Root 干净机 + 菲律宾 IP + 新号码,区分设备封禁 vs 号码封禁
2 Native 明文Hook libsdkutils / utils.d 包装层,抓 register 加密前 body
3 riskToken 全链:在 vvuuuuvvv.wwvuwuwvu 最早出口做更深层净化(含加密段)
4 Frida:换未被检测环境,或仅 attach 已运行进程;当前 MariBank 上 Java 桥不稳定
5 停试:已失败号码/设备冷却 2448h,避免加重 4067012
6 官方解封(+632) 8424 8050

10. 相关文档与路径索引

文档 / 路径 说明
docs/MariBank实现说明.md MariBank 实现细节与问题记录(专文)
docs/MariBank_2026-07-06_菲律宾突破.md PH OTP 突破 + SG 现状
docs/MariBank风控与载荷说明.md register 字段、afExtInfo、USB 调试
docs/手机操作手册.md Root 机部署与日常操作
docs/银行逆向.md 澳大利亚三家银行 HookUp / Suncorp / ubank
docs/Hook指南.md 通用 Hook 架构、Xposed/LSPosed、扩展
docs/更新说明.md 主 App / TG Hook 版本历史
reverse/README.md 逆向工作区目录说明
reverse/frida/jni_targets.md JNI Hook 目标备忘
xposed-module/.../MariBank*.java MariBank bypass 实现

11. 当日工作清单(摘要)

  • MariBank Root / SHPSSDK / SafeMode Xposed bypass 实现与迭代
  • riskToken 尾部净化与 OkHttp 出站拦截
  • DEX / SO / JNI 静态逆向与脚本沉淀
  • Frida trace 脚本与 attach/spawn 运行器(受 App 反 Frida 限制)
  • LSPosed logcat 分析,确认 4067012 为服务端拒绝
  • reverse/ 目录整理与 .gitignore 更新
  • 注册成功(未完成,阻塞于服务端风控)

记录日期2026-07-03