charles 是非常好用的网络抓包工具,之前推荐过,但不得不提的是它是收费的,而且学习本成比较高,不支持编程来抓包。想充分驾驭 charles 还要折腾一会儿。
直到我发现了 anyproxy,立即放弃了 charles ,anyproxy 是阿里开源功能强大的代理服务器,可用于网络测试抓包等操作。启动 anyproxy 后,在界面上可以看到代理服务器的 ip ,端口默认为 8001,手机 wifi 上设置手动代理后,在电脑上(同一 wifi 的电脑上)打开 ip:8002 的网址,可以看到通过此代理的手机端上的发包情况,每点击一个软件,都可以看到此软件的发包收包情况,也就是一些 get 或 post 请求,爬虫工程师必备工具。
第一次看到时惊呆了,我什么都没有操作,怎么会有网络请求? 原来是一些流氓软件正在偷偷的采集我的数据。
如果你会 javascript ,可以编写 javascript 程序来控制收发包情况。非常灵活。详细使用方法见官方 github 链接:https://github.com/alibaba/anyproxy
当然,你可能问了,如果不会 javascript 怎么办,我只会 python,没关系,轮子早有人造好,请移步 mitmdump :https://mitmproxy.org/#mitmdump
你又问了 mitmdump 是个什么鬼?
mitmproxy 是一个免费的开源交互式 HTTPS 代理,提供命令行操作,web 界面, Python 接口。
命令行
mitmproxy 用于调试,测试,隐私测量和渗透测试。它可用于拦截,检查,修改和重放 Web 流量,例如 HTTP / 1,HTTP / 2,WebSockets 或任何其他受 SSL / TLS 保护的协议。您可以对从 HTML 到 Protobuf 的各种消息类型进行美化和解码,即时拦截特定消息,在到达目的地之前对其进行修改,稍后将它们重播到客户端或服务器。
Web界面
在图形界面中使用 mitmproxy 的主要功能 mitmweb。你喜欢 Chrome浏览器的开发者工具吗?mitmweb 为您提供与类似的体验,以及请求拦截和重播等其他功能。
Python API
编写强大的插件和脚本mitmproxy mitmdump。脚本API提供对mitmproxy的完全控制,可以自动修改消息,重定向流量,可视化消息或实现自定义命令。
(完)
网友评论