前言
在之前的文章中介绍了通过dns的方式来提供链接用来上网的方法,现在这个方法还可以用于安装软件
材料准备
硬件
软件
- mitmproxy
- docker
- via浏览器
- NP管理器
1.构建镜像
编写插件
新建一个名为proxy.py的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import json from mitmproxy import http from mitmproxy import ctx class brower():
def response(self,flow:http.HTTPFlow): if flow.request.url.startswith("http://api.ets100.com/client/mobile-update?sn="): with open("./data.json","rb") as f: res = json.load(f) flow.response.set_text(json.dumps(res)) ctx.log.info("Edited") if flow.request.url == "http://www.ets100.com/[via].com.up366.mobile-5.2.0.apk": with open("./via.apk","rb") as f: file = f.read() flow.response = http.Response.make(200,file) ctx.log.info("download request") if flow.request.url.startswith("https://xxxx"): flow.kill() addons = [brower()]
|
编写修改后的data.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [ { "code": 0, "msg": "via brower", "body": { "client_version": 503, "client_verions_name": "5.0.3", "text": "via", "link": "http://www.ets100.com/[via].com.up366.mobile-5.2.0.apk", "force": 1, "sn": "16669626423" } } ]
|
制作可以安装的apk
同时使用np管理器将via改包,并上传到统一文件夹
将包名改为com.up366.mobilenp

更改版本号为5.2.0
!!注意这个可能会在未来随版本更新而变

编写Dockerfile 并构建
1 2 3
| mkdir build cd build vim Dockerfile
|
输入以下内容
1 2 3 4 5
| FROM mitmproxy/mitmproxy
WORKDIR /usr/src/app
COPY . .
|
检查文件目录

确保名称与proxy.py中的一致
构建镜像
1
| sudo docker build -t mitm_demo:v1 .
|
2.启动容器
1
| sudo docker run --restart always -it -d -p 62348:8081 mitm:v1 mitmdump -p 8081 -s ./proxy.py --set block_global=false
|
其中62348可以是其他的端口,(推荐使用较少见的,防止被扫)
1 2 3
| ubuntu@VM-8-5-ubuntu:~$ sudo docker logs 91 [14:51:25.343] Loading script ./proxy.py [14:51:25.346] HTTP(S) proxy listening at *:8081.
|
enjoy it.