create: MuMu x86_64 上 Frida 无法 hook libc syscall wrapper
MemRelay-Operation: memory-save:rapdrama-exp-frida-libc-fail-20260925-0518 MemRelay-Resource: 52c0da1c-424b-4a77-8146-ed1190b4f20f
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: MuMu x86_64 上 Frida 无法 hook libc syscall wrapper
|
||||
type: experience
|
||||
permalink: main/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/mu-mu-x86-64-上-frida-无法-hook-libc-syscall-wrapper
|
||||
stable_id: 52c0da1c-424b-4a77-8146-ed1190b4f20f
|
||||
scope: project
|
||||
memory_type: experience
|
||||
project_id: 280dd2a0-d23d-4a71-91e1-dce4353163be
|
||||
usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998
|
||||
status: active
|
||||
revision: 1
|
||||
request_id: rapdrama-exp-frida-libc-fail-20260925-0518
|
||||
created_at: '2026-09-24T21:30:23.821540+00:00'
|
||||
updated_at: '2026-09-24T21:30:23.821540+00:00'
|
||||
tags:
|
||||
- frida
|
||||
- libc
|
||||
- mumu
|
||||
- x86_64
|
||||
- 卡点
|
||||
---
|
||||
|
||||
## 最终结论
|
||||
|
||||
在 MuMu 12 x86_64 模拟器上,Frida 17.18 的 Interceptor.attach 对 bionic libc 的短 syscall wrapper 函数(connect、read、write、send、recv、sendmsg、recvmsg、sendto、recvfrom)**全部无法触发**。甚至 Interceptor.replace 和对 libc 的 syscall() wrapper 的 hook 也不触发。但对 libflutter.so 内部的较大函数(如 SSL verify 偏移 0x8113ee)和 libc 的 getaddrinfo 能正常 hook。
|
||||
|
||||
原因推测:bionic libc 在 x86_64 上的 connect/read/write 实现只有几条指令,Frida 的 trampoline 无法安全插入。或者 MuMu 的虚拟化环境对内存写入保护有特殊处理。
|
||||
|
||||
libflutter.so 确实导入了 libc 的 connect,但 Dart VM 的网络调用不经过这些导入(可能是编译优化内联了 syscall,或者用了其他路径)。已确认 libflutter.so 中没有独立的 `0f 05` syscall 指令。socket() 能被捕获,connect() 不能。
|
||||
|
||||
mitmproxy 透明模式在 Windows 上会启用 WinDivert 拦截宿主机所有流量,曾导致用户电脑网络断开,重启才恢复。**绝对不要再用 mitmproxy transparent 模式。**
|
||||
|
||||
而且即使 mitmproxy 在 Windows 上跑得起来,模拟器内部的 iptables DNAT 到宿主机后,Windows 上的 mitmproxy 拿不到 SO_ORIGINAL_DST(这是 Linux 内核特性),无法知道原始目标。
|
||||
|
||||
## 可行方案
|
||||
|
||||
剩下唯一可靠的方案是 **reFlutter 重打包**:patch libflutter.so 内置代理地址并禁用 SSL 验证,重签 APK 后安装。缺点:签名变化可能影响谷歌登录,每次 App 更新要重做。
|
||||
Reference in New Issue
Block a user