目录
实现原理
mitmproxy介绍
功能简介
安装
脚本示例
如何使用
解释
注意事项
QT工具实现
其他资源
实现原理
使用WebView组件造一工具,工具可输入网页地址并显示网页内容及播放视频。把工具的代理设置指向mitmproxy的端口服务。配合使用mitmproxy的MITM技术,监听和拦截用户在短视频平台上发起的网络请求。MITM技术允许应用程序在数据包从客户端到服务器的传输过程中进行干预,从而捕获和分析请求和响应数据,从响应数据中提取视频的真实下载链接。
在微信小程序等环境中,并不能直接在WebView中配置代理。小程序的WebView组件直接使用的是微信小程序、支付宝小程序等平台提供的WebView实现,这些平台并不直接支持在WebView内设置代理。但在在QT或Android等环境中,WebView组件支持设置代理。这样就可以实现在不改变系统全局代理的情况下,直接造一工具实现对短视频的解析和下载。
注:(以下介绍仅限技术学习和交流,禁止用于其他非法用途。)
mitmproxy介绍
mitmproxy又名中间人攻击代理,是一个抓包工具,类似于WireShark、Filddler,并且它支持抓取HTTP和HTTPS协议的数据包,只不过它是一个控制台的形式操作。另外,它还有两个非常有用的组件,一个mitmdump,它是mitmproxy的命令行接口,可以直接抓取请求数据;另一个是mitmweb,它是一个web程序,通过它可以清楚的观察mitmproxy抓取的请求数据。
为什么选择 mitmproxy
1. 相对于我们常用的 fiddle 代理工具,它是可以跨平台。
2. 相对于跨平台的 charles 代理工具,它是开源免费的。
3. 最重要的一点,也是为什么我们采用 mitmproxy 来进行做 Mock,它支持使用 Python 进行二次开发,这样就可以结合业务进行灵活拓展了。
官方文档
https://docs.mitmproxy.org/stable/
功能简介
- 实时拦截、修改 HTTP/HTTPS 请求和响应
- 可保存完整的 http 会话,方便后续分析和重放
- 支持反向代理模式将流量转发到指定服务器
- 支持 macOS 和 Linux上的透明代理模式
- 支持用 Python 脚本对 HTTP 通信进行修改
安装
pip install mitmproxy
查看是否安装成功
# 使用以下三个命令中的任意一个即可,这三个命令返回的结果均一致
mitmproxy --version
mitmdump --version
mitmweb --version
mitmproxy默认只能拦截http,想要拦截https那就需要安装证书。
首先到$PYTHON_HOME/Scripts目录下运行一下mitmdump,完成之后在用户家目录下的.mitmproxy文件夹下即会生成的有证书,点击安装即可。
mitmproxy-ca.p12----PKCS12格式证书私钥
mitmproxy-ca.pem----PEM格式证书私钥
mitmproxy-ca-cert.cer----PEM格式证书,与mitmproxy-ca-cert.pem相同只是改变了后辍,适用于部分Android。
mitmproxy-ca-cert.p12----PKCS12格式证书,适用于Windows
mitmproxy-ca-cert.pem----PEM格式证书,适用于大多数非Windows平台