Files
notiMessage/docs/TNG_自杀链逆向笔记.md
mars 13e407623b feat(tng): TNG eWallet Promon bypass、Zygisk 信号守卫与注册链保护
新增 TngRootBypassHook 与 tng_exit_guard 模块,修复 BAL 强拉、SIGABRT/pc==lr SEGV 崩溃,验证可进入注册页。
2026-07-31 17:55:13 +08:00

3.6 KiB
Raw Blame History

TNG eWallet 逆向笔记 — 自杀链2026-07-31

运行时铁证

现象 含义
Fatal signal 6 (SIGABRT), code 0 (SI_USER) 用户态 kill(pid, SIGABRT)不是 exit_group,也不是 abort()SI_TKILL
PLT hook kill/raise 从不打日志 Promon 走 内联 SVC,不经 PLT
E Report : Exiting: + xwwqazamx.W: 16 + bl.a Java 层检测入口仍是 xwwqazamx.bl#a/#b
Displayed ...UserLoginActivity UI 能到登录页;随后数秒内被杀
Lcom/aliyun/TigerTally/t/B 反射 Thread.dispatchUncaughtException 另有一套阿里 TigerTally SDK

自杀阶梯(当前理解)

Promon native 检测 (Thread-N 扫 /proc、selinux、wifi prop…)
    → xwwqazamx.bl#a / #b
        → 抛 W:16Report 打 Exiting
        → 同时/随后 inline kill(SIGABRT, SI_USER)
    → KillApplicationHandlerXposed 可拦)
    → 若 ABRT 被 ignore可能改 SIGKILL / BRK待证

并行:

  • AppSecurityManager.handle*CallbackXposed 已拦)
  • openSecurityUrl Root FAQ已拦
  • UnhandledEventfinishAllActivityAndKillApp(已 hook
  • ForceExitCountdown已 hook
  • TigerTally / SecurityGuard JNICLibrary.doCommand(当前 stub可能过度

静态 SO

libtngdigital_ewallet.so~7.7MB,打包态):

  • brk 假阳性/加密指令很多imm 离散)
  • 真实 svc #0 极少;运行时解密后才出现 exit 序列
  • 禁止JNI_OnLoad 前/中 patch SO会 Bad JNI / SIGILL

已验证无效/有害手段

  • seccomp 拦 exit_group → Promon 改 UDF/SIGILL
  • 改 libc exit SVC→RET → 同上
  • 改 Promon SO 字节 → Bad JNI / SIGILL
  • 高频 sigaction 重装 → 易被当成 hook 指纹

较有效手段

  • Xposed拦 FAQ / KillApplicationHandler / handle*Callback / ForceExit / UnhandledEvent
  • Xposedbl#a/#b beforeHook short-circuit(避免跑进 native 杀进程)
  • ZygiskPLT 观察 + SIGABRT ignore对 SI_USER 理论有效Promon 可能复位 handler

新发现2026-07-31 续)

libtiger_tally.so~4.6MB

  • 与 Promon libtngdigital_ewallet.so 并行加载
  • 动态依赖:abort@LIBCsignal@LIBC走 PLT,可被 Zygisk PLT hook
  • 内嵌少量 syscall stubopenat/read/faccessat… kill/exit stub
  • BIND_NOW

打包态 SO

  • libtngdigital_ewallet.so / libtiger_tally.so 静态 0movz x8,#129 + svc
  • 自杀用的 inline kill 仍可能在 运行时解密 后出现 → Zygisk 延迟 2s 扫描 patch

日志结论2026-07-31 11:3711:47

现象 含义
exited cleanly (1) inline exit_group(1)PLT 拦不住)
kill SVC→RET 后 signal 9 SO 完整性/备用路径 → SIGKILL
过早 patch exit_group 启动即崩CEM
seccomp 拦 exit+exit_group ~1s 死(误伤线程 exit
seccomp 只拦 exit_group 存活 ~16s,随后 SIGILL 风暴count 7000+
caught sig=4 si_code=1 Promon UDF 兜底;+4 skip 无效

Rest 配置2026-07-31 12:55已装机

策略
Zygisk PLT 拦 exit/abort/killexit_group-only seccomp @2s禁止改 SO会 SIGKILL
信号 ABRT ignoreSEGV/ILL +4 skip freeze 线程freeze 会 ANR
Xposed Splash reportFullyDrawn + 2.5s 强拉 UserLogin + finish Splashbl SC / 自杀 Java / JNIC stub

实测:进程 ≥40s 存活,焦点 UserLoginActivityphase done seccomp=1 caught=0
注意:点亮屏幕后再开 Appsvc power stayon true);勿把 TNG 放进 Magisk DenyList。