11.1 Charles的使用
电脑win10安装Charles,安装受信任的证书;
替换安装目录的charles.jar,得到破解版;
为解决乱码问题,网上一些做法:
将SSL代理设置里add,Host填 * ,port填443;
Charles.ini加上UTF-8;
Tools里Rewrite 设置application/jaon;charset=UTF-8
然而一些结果仍是乱码,此问题待考虑
索尼xzp G8142,安卓版本8.0.0,打开并点击所连接的wifi,高级选项,手动代理,设置电脑ip和Charles默认的8888port,浏览器中打开证书地址安装。
测试结果:
微信公共号评论可以查看,微信和qq图片可以查看,证明是连通的!
打开京东APP时弹出提示 "证书长度为1,是否继续" ,出现很多次!估计是安卓版本问题。(貌似安装7以上不信任证书)
原书中的jd商品评论压根就没看到,然后换成索尼Z3,安卓4.4.4后成功!
11.2 mitmproxy的使用
下载mitmproxy win.exe
要查找到.mitmproxy文件夹(因不在安装目录下),安装mitmproxy-ca-cert.p12证书
复制mitmproxy-ca-cert.pem证书到手机(在设置-安全-从SD卡安装),设置WiFi的IP/Port(类似Charles)
打开mitmweb.exe或mitmdump.exe可以监控,但不能操作修改Query(书中示例)
6.mitmdump的使用
为方便,使用pycharm编辑脚本,脚本在pycharm打开的Terminal路径下运行mitmdump -s Scripts.py
实例重写了http中的request、response方法
import mitmproxy.http
from mitmproxy import ctx
def request(flow:mitmproxy.http.HTTPFlow):
# flow是mitmproxy.http.HTTPFlow对象
# 改请求头
flow.request.headers['User-Agent'] = 'MitmProxy'
print(flow.request.headers)
ctx.log.info('info')
ctx.log.warn('warn')
ctx.log.error('error')
# request功能
# request = flow.request
# info = ctx.log.info
# info(request.url)
# info(str(request.headers))
# info(str(request.cookies))
# info(request.host)
# info(request.method)
# info(str(request.port))
# info(request.scheme)
# 修改url,转发假cookies(此处为baidu),被吓到了。。。。
flow.request.url = 'https://www.baidu.com'
def response(flow: mitmproxy.http.HTTPFlow):
response = flow.response
info = ctx.log.info
info("status_code $$"+str(response.status_code))
info("headers $$"+str(response.headers))
info("cookies $$"+str(response.cookies))
info("text $$"+str(response.text))