mitmproxy 抓包教程:Mac / Windows / App 全平台配置指南

6 阅读15分钟

mitmproxy 是一套开源的 HTTP/HTTPS 交互式抓包代理工具,支持请求拦截、修改、回放等功能,适用于接口调试、协议分析等场景。本文按 macOSWindowsApp(Android 模拟器) 三大平台,分别介绍从环境搭建到抓包使用的完整流程。

官方文档:docs.mitmproxy.org/stable/


工具概览

mitmproxy 安装后提供三个命令行工具:

工具说明
mitmproxy终端交互界面(类 vim 操作)
mitmwebWeb 图形界面(推荐),浏览器可视化查看请求
mitmdump命令行模式,适合脚本自动化和流量导出

三者共享同一套核心代理功能,只是前端展示不同,根据自身需求选择即可。


一、macOS 平台

1.1 安装 Python

mitmproxy 和后续的 Frida 等工具依赖 Python 环境。mitmproxy 12.x 要求 Python ≥ 3.12(11.x 支持 Python 3.10+),建议直接安装 Python 3.12+

方式一:pyenv 多版本管理(推荐)

通过 pyenv 可以方便地管理多个 Python 版本,避免与系统自带版本冲突。

详细安装教程请参考:Mac pyenv 多版本管理

# 安装 pyenv(如果还没有)
brew install pyenv

# 安装指定 Python 版本
pyenv install 3.12.0

# 设置全局版本
pyenv global 3.12.0

# 验证
python --version
pip --version

方式二:Homebrew 直接安装

brew install python

# 验证
python3 --version
pip3 --version

1.2 安装 mitmproxy

方式一:Homebrew 安装

brew install mitmproxy

方式二:pip 安装

pip install mitmproxy

网络慢可使用国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mitmproxy

验证安装:

mitmproxy --version

1.3 启动代理服务

# Web 图形界面(推荐)
mitmweb -p 8888

# 或终端界面
mitmproxy -p 8888

mitmweb 启动后会自动打开浏览器访问 http://127.0.0.1:8081,可在网页上实时查看所有请求和响应。

1.4 配置系统代理

打开 系统设置 → 网络 → Wi-Fi → 详细信息 → 代理

  1. 勾选 Web 代理(HTTP)安全 Web 代理(HTTPS)
  2. 代理服务器地址填 127.0.0.1,端口填 8888
  3. 点击「好」保存

也可通过命令行快速设置:

# 开启代理
networksetup -setwebproxy Wi-Fi 127.0.0.1 8888
networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 8888

# 关闭代理(抓包结束后)
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off

1.5 安装 CA 证书(HTTPS 明文抓包需要)

没装证书也能拦截到接口吗? 可以。HTTP 请求正常抓取,HTTPS 请求也会出现在 mitmweb 中,但由于客户端不信任 mitmproxy 的 CA 证书,TLS 握手会失败,终端会报 Client TLS handshake failed 错误,无法查看 HTTPS 的明文请求和响应内容。安装证书后即可正常解密 HTTPS 流量。

方式一:通过 mitm.it 安装(推荐)

http://mitm.it 是 mitmproxy 内置的证书分发页面,仅在流量正常通过 mitmproxy 时才能访问(否则会显示 "traffic is not passing through mitmproxy")。页面上提供了所有平台的证书下载,每个平台都附带 Show Instructions 按钮,点击可查看对应平台的详细导入步骤。

  1. 确保代理已开启且 mitmproxy 正在运行
  2. 浏览器打开 http://mitm.it(注意是 http 不是 https)
  3. 点击 macOS 图标,下载 mitmproxy-ca-cert.pem
  4. 双击打开证书,macOS 会弹出「钥匙串访问」
  5. 在「钥匙串访问」中找到 mitmproxy 证书 → 双击 → 展开「信任」
  6. 将「使用此证书时」改为 「始终信任」
  7. 关闭窗口,输入密码确认

方式二:命令行安装

# 首次启动生成证书(启动后 Ctrl+C 退出即可)
mitmproxy

# 将证书添加到系统钥匙串并设为信任
sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain \
  ~/.mitmproxy/mitmproxy-ca-cert.pem

验证证书安装

打开 钥匙串访问 → 搜索 mitmproxy,确认证书存在且显示「此证书已标记为受所有用户信任」。

配置完代理和证书后,浏览器访问任意网页,mitmweb 界面就能看到完整的 HTTPS 请求了。

1.6 抓包结束后清理

# 关闭系统代理(重要!否则关掉 mitmproxy 后无法正常上网)
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off

二、Windows 平台

2.1 安装 Python

推荐方式:Python 官方安装包

mitmproxy 12.x 要求 Python ≥ 3.12(11.x 支持 Python 3.10+)。如果 Python 版本低于 3.12,pip install --upgrade mitmproxy 会静默停留在 11.x 而不会升级到 12,请注意安装对应版本。

详细安装教程请参考:Windows Python 安装教程

  1. 前往 Python 官网 下载安装包(建议 3.12+
  2. 安装时务必勾选 「Add Python to PATH」
  3. 安装完成后打开终端验证:
python --version
pip --version

Python 安装支持所有系统环境(macOS / Windows / Linux),上述两篇教程分别针对 Mac 和 Windows 提供了更详细的安装步骤。

2.2 安装 mitmproxy

方式一:官方安装包(推荐)

  1. 前往 mitmproxy 官网 下载 Windows Installer(.exe
  2. 安装完成后 mitmproxymitmdumpmitmweb 自动加入 PATH
  3. 推荐安装 Windows Terminal 改善终端显示效果

方式二:pip 安装

pip install mitmproxy

网络慢可使用国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mitmproxy

验证安装:

mitmproxy --version

2.3 启动代理服务

打开 CMD 或 PowerShell:

# Web 图形界面(推荐)
mitmweb -p 8888

# 或终端界面
mitmproxy -p 8888

启动后浏览器自动打开 http://127.0.0.1:8081

2.4 配置系统代理

打开 设置 → 网络和 Internet → 代理 → 手动设置代理

  1. 开启「使用代理服务器」
  2. 地址填 127.0.0.1,端口填 8888
  3. 点击「保存」

排除列表中默认的 localhost;127.* 等是正常的,不影响外部网站抓包。如果需要抓本地服务的请求,需要从排除列表中移除对应地址。

2.5 安装 CA 证书(HTTPS 明文抓包需要)

没装证书也能拦截到接口吗? 可以。HTTP 请求正常抓取,HTTPS 请求也会被拦截到,但由于客户端不信任 mitmproxy 的 CA 证书,TLS 握手会失败,终端会看到 Client TLS handshake failed. The client disconnected during the handshake... the client does not trust the proxy's certificate 的错误,无法查看 HTTPS 的明文内容。安装证书后即可正常解密。

方式一:通过 mitm.it 安装(推荐)

http://mitm.it 是 mitmproxy 内置的证书分发页面,仅在流量正常通过 mitmproxy 时才能访问。页面上提供所有平台的证书下载和导入教程,点击 Show Instructions 可查看对应平台的详细步骤。

  1. 确保代理已开启且 mitmproxy 正在运行
  2. 浏览器打开 http://mitm.it(注意是 http 不是 https)
  3. 点击 Windows 图标,下载 mitmproxy-ca-cert.p12
  4. 双击下载的 .p12 证书文件
  5. 点击「安装证书」
  6. 选择 「本地计算机」 → 下一步
  7. 选择 「将所有证书放入以下存储」 → 浏览 → 选择 「受信任的根证书颁发机构」
  8. 完成安装

方式二:PowerShell 命令行安装

管理员身份运行 PowerShell:

# 首次启动生成证书(启动后 Ctrl+C 退出即可)
mitmproxy

# 导入证书到系统受信任根证书存储(Windows 使用 .p12 格式)
Import-PfxCertificate -FilePath "$env:USERPROFILE\.mitmproxy\mitmproxy-ca-cert.p12" -CertStoreLocation cert:\LocalMachine\Root

验证证书安装

Win + R 输入 certlm.msc 打开证书管理器 → 展开「受信任的根证书颁发机构」→「证书」→ 能找到 mitmproxy 即安装成功。

配置完代理和证书后,浏览器访问任意网页,mitmweb 界面就能看到完整的 HTTPS 请求了。

浏览器注意事项

  • Chrome / Edge:使用系统代理和系统证书存储,配置完即可直接使用
  • Firefox:默认不走系统代理,也有独立的证书存储。需要在 Firefox 中设置:设置 → 常规 → 网络设置 → 选择「使用系统代理设置」;同时在 设置 → 隐私与安全 → 证书 → 查看证书 → 导入 mitmproxy-ca-cert.pem

2.6 抓包结束后清理

回到 设置 → 代理,将「使用代理服务器」关闭。不关的话,停止 mitmproxy 后将无法正常上网。


三、App 抓包(Android 模拟器)

App 抓包需要将 mitmproxy 的 CA 证书安装到 Android 系统级信任存储中,并可能需要通过 Frida 绕过 App 的 SSL Pinning(证书锁定)。本节以 MuMu 模拟器为例。

3.1 环境准备

安装 MuMu 模拟器

  1. 下载安装 MuMu 模拟器 12(基于 Android 12)
  2. 设置中心 → 其他设置 → 开启 Root 权限
  3. 建议配置:4 核 CPU / 4GB 内存 / 分辨率 1080×1920

安装 Python 和 mitmproxy

根据你的电脑系统(macOS 或 Windows),参考上面对应平台的 Python 和 mitmproxy 安装步骤。

安装目标 App

  • 建议安装较低版本的目标 App(越新版本反抓包策略越强)
  • 可从 APKPure / APKMirror 等平台下载历史版本 APK
  • 通过 adb 或直接拖拽安装到模拟器

3.2 生成 mitmproxy CA 证书

首次启动 mitmproxy 会自动在用户目录下生成 CA 根证书:

# 启动一次即可生成证书,Ctrl+C 退出
mitmproxy

证书生成路径:

系统路径
macOS~/.mitmproxy/
WindowsC:\Users\你的用户名\.mitmproxy\

目录下包含以下证书文件(不同平台使用不同格式):

证书文件适用平台
mitmproxy-ca-cert.pemmacOS / Linux / Firefox
mitmproxy-ca-cert.cerAndroid
mitmproxy-ca-cert.p12Windows
mitmproxy-ca.pem完整 CA(含私钥,一般不需要直接使用)

也可以通过 http://mitm.it 下载对应平台的证书(需要代理已开启且流量正在通过 mitmproxy),该页面同时提供每个平台的证书导入教程。

3.3 安装系统级 CA 证书到模拟器(Root 必需)

不装证书能抓包吗? 能拦截到接口请求,但 HTTPS 请求会 TLS 握手失败,无法查看明文内容。安装证书后即可正常解密。

为什么要装到模拟器? mitmproxy 作为中间人代理会用自己的 CA 重新签发证书,模拟器中的 App 需要信任这个 CA 才能正常解密 HTTPS。

为什么必须装到系统级? Android 7.0+ 应用默认只信任系统级证书,用户手动安装的证书不被信任。必须借助 Root 权限将证书写入系统目录 /system/etc/security/cacerts/

步骤 1:计算证书哈希文件名

Android 系统证书目录中的文件以哈希值命名,需要用 openssl 计算:

macOS / Linux:

openssl x509 -inform PEM -subject_hash_old -in ~/.mitmproxy/mitmproxy-ca-cert.cer | head -1

Windows(Git Bash 或 WSL):

openssl x509 -inform PEM -subject_hash_old -in "$USERPROFILE/.mitmproxy/mitmproxy-ca-cert.cer" | head -1

假设输出 c8750f0d,则证书文件需要重命名为 c8750f0d.0

请以你本机实际输出为准,不要直接复制示例值。

步骤 2:连接 MuMu 模拟器 ADB

# MuMu 12 默认 ADB 端口为 16384
adb connect 127.0.0.1:16384

# 确认连接成功
adb devices

端口不对?打开 MuMu 多开器 → 右上角 ADB 图标可查看实际端口。

步骤 3:推送证书到系统证书目录

macOS / Linux:

# 复制并重命名证书(替换 c8750f0d 为你的实际哈希值)
cp ~/.mitmproxy/mitmproxy-ca-cert.cer c8750f0d.0

Windows(Git Bash 或 WSL):

cp "$USERPROFILE/.mitmproxy/mitmproxy-ca-cert.cer" c8750f0d.0

Windows(PowerShell):

Copy-Item "$env:USERPROFILE\.mitmproxy\mitmproxy-ca-cert.cer" -Destination "c8750f0d.0"
# 推入模拟器,使用 PowerShell 完成,不要用 GitBash
adb push c8750f0d.0 /sdcard/

# 获取 root 权限(必须,否则无法挂载系统分区)
adb root

# 进入 adb shell
adb shell

# 挂载系统分区为可写(二选一,哪个成功用哪个)
mount -o remount,rw /system
# 如果上面报错,MuMu 12 尝试:
# mount -o remount,rw /

# 复制证书到系统证书目录
cp /sdcard/c8750f0d.0 /system/etc/security/cacerts/

# 设置正确的文件权限
chmod 644 /system/etc/security/cacerts/c8750f0d.0

# 退出 shell
exit

# 重启模拟器使证书生效
adb reboot

步骤 4:验证证书安装

模拟器重启后:设置 → 安全 → 加密与凭据 → 信任的凭据 → 系统 标签页 → 能看到 mitmproxy 证书即安装成功。

3.4 配置代理

查看电脑局域网 IP

# macOS
ifconfig | grep "inet " | grep -v 127.0.0.1

# Windows
ipconfig

记下本机 IP(如 192.168.1.100)。

启动 mitmproxy

mitmweb -p 8888

模拟器设置代理

  1. 模拟器 → 设置 → WLAN → 长按已连接的网络 → 修改网络
  2. 展开高级选项
  3. 代理选 手动
  4. 主机名填写电脑 IP(如 192.168.1.100),端口填 8888

设置好后可打开模拟器内浏览器访问 http://mitm.it,如果能看到证书下载页面,说明代理已生效。

3.5 Frida 绕过 SSL Pinning

为什么需要这步? 许多 App 使用了 SSL Pinning(证书锁定)技术,即使安装了系统证书,App 仍会校验证书指纹并拒绝连接。必须通过 Frida 在运行时 Hook 掉校验逻辑。

如果你的目标 App 没有做 SSL Pinning,可以跳过此节,直接抓包。

电脑安装 Frida

pip install frida-tools

# 记住版本号,frida-server 必须与此版本一致
frida --version

网络慢可使用:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple frida-tools

模拟器安装 frida-server

# 查看模拟器 CPU 架构(MuMu 12 一般是 x86_64)
adb shell getprop ro.product.cpu.abi

如果不确定模拟器的 CPU 架构,可以参考:查看安卓模拟器设备 CPU 架构

前往 Frida Releases 下载对应版本:

  • 文件名格式:frida-server-{版本号}-android-{架构}.xz
  • 例如 frida 版本 16.5.6 + x86_64 架构 → 下载 frida-server-16.5.6-android-x86_64.xz

frida-tools 和 frida-server 版本必须完全一致,这是最常见的报错原因。

Release 页面资源文件很多(200+),默认不会全部展示。点击页面底部 "Show all xxx assets" 展开全部资源,然后用浏览器 Ctrl+F(Mac 为 Cmd+F)搜索 frida-server 即可快速定位。注意只需下载 frida-server 开头的文件,不要下载 frida-core-devkit 等其他文件。

# 解压(macOS / Linux)
xz -d frida-server-*.xz

# 解压(Windows 可使用 7-Zip 解压 .xz 文件)

# 推入模拟器并赋权(Windows 用户请在 CMD 或 PowerShell 中执行)
adb push frida-server /data/local/tmp/frida-server
adb shell chmod 755 /data/local/tmp/frida-server

启动 frida-server

# 以后台方式运行(macOS / Linux / Git Bash)
adb shell /data/local/tmp/frida-server &
# PowerShell 中 & 是特殊符号,需要改用以下方式后台运行
adb shell /data/local/tmp/frida-server
# 新开一个终端,验证是否启动成功(能列出模拟器中的进程列表即成功)
# 注意哦,如果 frida 是装在 python 虚拟环境中,需要再虚拟环境中执行才可以 
frida-ps -U

获取目标 App 包名

objection 和 Frida 注入都需要指定 App 包名,以下方式可快速获取:

# 方法 1:先在模拟器中打开目标 App,然后执行(推荐,最快)
# macOS / Linux / Git Bash
adb shell dumpsys window | grep mCurrentFocus

# Windows PowerShell / CMD
adb shell dumpsys window | findstr mCurrentFocus

输出示例:mCurrentFocus=Window{... com.ss.android.ugc.aweme/com.ss.android.ugc.aweme.splash.SplashActivity}

其中 / 前面的部分就是包名,即 com.ss.android.ugc.aweme

# 方法 2:列出所有第三方 App 包名,按关键词搜索
# macOS / Linux / Git Bash
adb shell pm list packages -3 | grep 关键词

# Windows PowerShell / CMD
adb shell pm list packages -3 | findstr 关键词

运行 SSL Pinning 绕过

方法一:使用 objection(推荐,一行命令搞定)

pip install objection

# ⚠️ 执行前确保模拟器中目标 App 已关闭(不是在后台运行,而是彻底关掉)
# objection 会自动启动 App 并注入,无需手动打开 App

# 新版写法(推荐)
objection -n com.example.app start

# 旧版写法(objection v1.x 仍可用,但会提示 deprecated)
# objection -g com.example.app explore

# 进入交互界面后执行:
android sslpinning disable

方法二:使用 Frida 脚本(更灵活,适合定制)

保存以下内容为 ssl_bypass.js

Java.perform(function () {
    var TrustManagerImpl = Java.use('com.android.org.conscrypt.TrustManagerImpl');
    TrustManagerImpl.verifyChain.implementation = function (untrustedChain, trustAnchorChain, host, clientAuth, ocspData, tlsSctData) {
        return untrustedChain;
    };

    try {
        var CertificatePinner = Java.use('okhttp3.CertificatePinner');
        CertificatePinner.check.overload('java.lang.String', 'java.util.List').implementation = function (hostname, peerCertificates) {
            return;
        };
    } catch (e) {}
});

执行注入(两种模式二选一):

spawn 模式(推荐):Frida 自动启动 App 并在第一个网络请求发出之前完成注入,成功率更高。

# ⚠️ 执行前确保模拟器中目标 App 已彻底关闭,不能在前台或后台运行
# Frida 会自动启动 App,无需手动打开
frida -U -f com.example.app -l ssl_bypass.js

# Frida 15 及以下版本需要加 --no-pause 参数,16+ 已移除(默认不暂停)
# frida -U -f com.example.app -l ssl_bypass.js --no-pause

attach 模式:对已经在运行的 App 注入,部分请求可能在注入前就已发出,适合调试但绕过不够彻底。

# ⚠️ 执行前确保模拟器中目标 App 已打开且正在运行
frida -U com.example.app -l ssl_bypass.js

不同 App 可能使用不同的 SSL Pinning 实现,如果上述通用脚本无效,需要针对目标 App 的具体实现编写定制脚本。常见的还有 TrustKit、自定义 X509TrustManager 等方式。

部分 App(如抖音等)有反 Frida 检测机制,注入后 App 会直接崩溃(报 Process crashed: SIGSEGV)。这类 App 需要使用更高级的方案,如 LSPosed + JustTrustMe 模块(不依赖 Frida,不易被检测),或安装更低版本的 App 来降低检测强度。

3.6 开始抓包

每次抓包操作顺序

步骤操作终端
1启动 mitmweb -p 8888终端 1
2模拟器 WLAN 设置代理指向电脑 IP:8888模拟器
3启动 frida-server终端 2
4Frida 注入并启动目标 App终端 3
5浏览器打开 http://127.0.0.1:8081 查看请求浏览器

完整命令

# 终端 1:启动 mitmweb
mitmweb -p 8888

# 终端 2:连接模拟器并启动 frida-server
adb connect 127.0.0.1:16384
adb shell /data/local/tmp/frida-server &

# 终端 3:注入并启动目标 App
frida -U -f com.example.app -l ssl_bypass.js

成功后在 mitmweb 网页界面即可看到目标 App 的 HTTPS 明文请求和响应。


四、mitmproxy 实用技巧

4.1 过滤请求

在 mitmweb 页面顶部 Search 搜索框中输入过滤表达式:

表达式说明
~d example.com只显示指定域名的请求
~u /api/只显示 URL 包含指定路径的请求
~m POST只显示 POST 请求
~c 200只显示状态码为 200 的响应
~b keyword请求或响应 body 包含关键词
~bs keyword响应 body 包含关键词(需要 v12.1.0+
~bq keyword请求 body 包含关键词(需要 v12.1.0+
~d example.com & ~m POST组合过滤:指定域名 + POST 请求

启动时也可以直接指定过滤规则:

mitmweb -p 8888 --set view_filter="~d example.com"

完整的过滤表达式语法参考:Filter expressions

Body 搜索(响应/请求体内容过滤)

在 mitmweb 中搜索接口返回的响应体内容(如搜索中文关键词),需要使用 ~bs(response body)或 ~bq(request body)过滤表达式:

~bs "要搜索的中文关键词"

⚠️ 版本要求:mitmproxy v12.1.0+

~bs / ~bq 在 mitmweb 中的 body 过滤功能在 v12.1.0 之前未实现,使用时会提示 body filters are not implemented yet(参考 GitHub Issue #3609)。该功能已在 v12.1.0 中正式发布,升级即可使用。

升级 mitmproxy:

# 查看当前版本
mitmproxy --version

# pip 升级
pip install --upgrade mitmproxy

# 或 macOS Homebrew 升级
brew upgrade mitmproxy

如果 pip 升级时报 Cannot connect to proxy 错误,是因为系统代理指向了 mitmproxy 自身,需要先关闭系统代理再执行升级,详见常见问题。

低版本替代方案(v12.1.0 以下):

如果无法升级,可通过加载 Python 脚本实现 body 过滤。创建 filter_body.py

import re
from mitmproxy import ctx

KEYWORD = "要搜索的关键词"

def response(flow):
    try:
        text = flow.response.get_text()
    except:
        return
    if text and KEYWORD in text:
        ctx.log.alert(f"[匹配] {flow.request.url}")
        flow.marked = ":red_circle:"

启动时加载脚本,匹配到的请求会在界面中被标记为红色圆点:

mitmweb -p 8888 -s filter_body.py

4.2 保存和回放流量

# 保存所有流量到文件
mitmdump -p 8888 -w traffic.mitm

# 后续加载查看
mitmweb -r traffic.mitm

# 只保存符合过滤条件的流量
mitmdump -p 8888 -w traffic.mitm "~d example.com"

4.3 用 Python 脚本自动处理请求

# addon.py
from mitmproxy import http

def response(flow: http.HTTPFlow):
    if "example.com" in flow.request.pretty_host:
        print(f"[请求] {flow.request.method} {flow.request.pretty_url}")
        print(f"  状态码: {flow.response.status_code}")
        print(f"  响应大小: {len(flow.response.content)} bytes")
mitmdump -p 8888 -s addon.py

4.4 修改请求/响应

# modify.py
from mitmproxy import http

def request(flow: http.HTTPFlow):
    if "example.com" in flow.request.pretty_host:
        flow.request.headers["X-Custom-Header"] = "test"

def response(flow: http.HTTPFlow):
    if "example.com" in flow.request.pretty_host:
        flow.response.headers["X-Modified"] = "true"
mitmdump -p 8888 -s modify.py

五、常见问题

问题解决方案
mitmweb 页面显示「目前尚未记录到水流」系统代理未正确配置,或浏览器未使用系统代理(如 Firefox 需单独配置)
终端出现 Client TLS handshake failedCA 证书未安装或未正确信任,HTTPS 请求虽能拦截到但无法查看明文,安装证书后解决
其他代理软件冲突(Clash / V2Ray 等)先退出其他代理软件,再启动 mitmproxy
adb 连不上 MuMu 模拟器确认端口 adb connect 127.0.0.1:16384,或在 MuMu 多开器查看 ADB 端口
mitmweb 只看到 CONNECT 没有明文证书没装到系统目录,或 App 使用了 SSL Pinning 未绕过
Frida 报版本不匹配frida-tools 和 frida-server 版本必须完全一致
Frida unable to find process-f 参数让 Frida 主动启动 App,而不是 attach 已运行的进程
模拟器 App 闪退尝试安装更低版本的 App,检查模拟器内存配置是否充足
App 检测到 Root / 模拟器可搭配 Magisk Hide 或 LSPosed + 隐藏 Root 模块
mount: '/system' not in /proc/mountsMuMu 12 使用 mount -o remount,rw / 代替
pip install 速度慢使用国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
关闭 mitmproxy 后无法上网忘记关闭系统代理了,去系统设置中关闭代理
mitmweb 搜索 ~bs 提示 body filters are not implemented yetmitmproxy 版本低于 v12.1.0,该版本才正式支持 body 过滤。升级:pip install --upgrade mitmproxy
pip install --upgradeCannot connect to proxy系统代理指向 mitmproxy 自身导致循环。先关闭系统代理(或 set HTTP_PROXY= / export HTTP_PROXY=),再执行升级命令

六、相关链接

资源地址
mitmproxy 官网mitmproxy.org
mitmproxy 官方文档docs.mitmproxy.org/stable/
mitmproxy 过滤表达式docs.mitmproxy.org/stable/conc…
Python 官网www.python.org/downloads
Mac pyenv 多版本管理教程blog.csdn.net/zz00008888/…
Windows Python 安装教程blog.csdn.net/zz00008888/…
Frida Releasesgithub.com/frida/frida…
MuMu 模拟器mumu.163.com
APKPure(下载历史版本 APK)apkpure.com