这几天在利用mitmdump抓取手机app包的时候,一直连接不上去,非常坑,首先我是在window平台,只能使用mitmdump,当时找主机的ip的时候,没有找到我主机的ip。后来才知道怎么找到,然后找到正确的主机ip之后,要将防火墙关闭,并在手机上配置相应的信息。
1.寻找正确的ip
打开控制面板:
(1)直接点击图标打开(普通程序员)
(2)在cmd中输入control(屌丝程序员)
点击网络和Intenet
点击网络和共享中心,这就是你连接的wifi,你需要手机配置当前的wifi的ip,点击右侧的wlan
点击详细信息,这一项就是你主机的ip
2 关闭防火墙
找到主机真正的ip之后,将防火墙进行关闭,打开window defender,
点击防火墙,将你正在使用中的网络的防火墙关闭
3 配置手机
这个就省略了,最后访问mitm.it这个网站,选择安卓,下载相应的证书,这样就可以。
脚本可以参考这个https://yq.aliyun.com/articles/603782?utm_content=m_1000003864
以及官网github的例子:https://github.com/mitmproxy/mitmproxy/tree/master/examples/simple
下面在一些简介的例子:
(1) 将请求的连接的代码进行更改,下面是对css更改,将字体进行相反
from mitmproxy import http
def response(flow: http.HTTPFlow) -> None:
reflector = b"<style>body {transform: scaleX(-1);}</style></head>"
flow.response.content = flow.response.content.replace(b"</head>", reflector)
(2) 将你请求的网址进行更改:
def request(flow: http.HTTPFlow) -> None:
# pretty_url takes the "Host" header of the request into account, which
# is useful in transparent mode where we usually only have the IP otherwise.
ctx.log.info(str(flow.request.pretty_url))
if "m.baidu.com" in flow.request.pretty_url :
flow.response = http.HTTPResponse.make(
200, # (optional) status code
b"Hello World", # (optional) content
{"Content-Type": "text/html"} # (optional) headers
)
当你请求的url含有baidu时,就会返回兹定于的内容