再这篇文章开始以前,我先向以前一直关注个人人道个歉,以前写的两篇文章『iOS概念性解说』有人吐槽,写的有问题,我认可,iOS个人确是初学,我也找了一个作iOS的朋友看了一下,确实写的有些问题,以后关于iOS的文章我会请他审审稿,不会这样轻易发出。javascript
好了,言归正传,说说mitmproxy,其实以前我抓包一直使用的是Charles,有可视化界面,方便快捷,可是不能抓到https的包,虽然也有说能够抓的,可是按照网上的方法来,并无成功,并且,因为如今须要测试thrift,Charles就更显得力不从心了。java
首先你能够经过brew或者pip来进行安装:android
sudo easy_install pip
sudo pip install mitmproxy
sudo brew install mitmproxy复制代码
安装完毕以后就可使用了,可是若是须要解析thrift,须要安装对应的插件ios
sudo pip install flask
sudo pip install lxml
sudo pip install thrift
sudo pip install passlib
sudo pip install pycrypto
sudo pip install protobuf
sudo pip install pyparsing
sudo pip install six==1.10.0复制代码
若是报错还须要装一下libtiff libjpeg webp little-cms2 pillow
若是出现UBInt16错误
能够下降一下版本web
sudo pip install construct==2.5.2复制代码
切换到命令行:flask
而后打开手机浏览器输入mitm.it
进入该网址:浏览器
在后面输入你想拦截的网址便可(不用输入全,能够匹配便可):网络
被拦截的网址为红色,选择该条,点a,进行放行。测试
或者能够选择编辑再发送:
进入详情页,点击e进行编辑:spa
前面说到了thrift的解析,若是你发送的请求使用了thrift,你看不到请求体中的实际内容,都是乱码,这时候在详情页中点击m:
选择对应的模式便可,android是m,ios解析是o。
总的来讲mitmproxy是一款很方便的软件,几乎能知足咱们开发的全部需求(有的须要安装插件),惟一的缺点就是界面不如Charles方便美观,可是已经很是不错了。
有疑问的朋友欢迎给我留言指正,或者关注个人公众号留言: