免Python环境运行mitmdump:PyInstaller打包exe实战 – 实现http/https接口监听和参数修改
本文最后更新于4 天前

开发环境

(.venv) PS D:\work\project\20250913-mitmproxy> mitmproxy --version
Mitmproxy: 11.0.2
Python:    3.10.3
OpenSSL:   OpenSSL 3.4.1 11 Feb 2025
Platform:  Windows-10-10.0.26100-SP0

说明

写好了抓包的脚本proxy.py,内容如下:

# -*- coding:utf-8 -*-
import json
import requests
from typing import Dict, List
import urllib.parse

filter_host = []

request_debug = True
response_debug = True

def request(url):
    host = url.request.host
    path = url.request.path
    full_path = url.request.url
    method = url.request.method
    try:
        if method == "GET":
            params = url.request.query
        else:
            params = url.request.get_text()
    except Exception:
        return
    if len(filter_host) != 0 and host not in filter_host:
        return
    if request_debug:
        print("==================请求=====================")
        print("发送请求到主机:" + host)
        print("请求路径:" + path)
        print("请求全路径:" + full_path)
        print("请求方式:" + method)
        print("请求参数:")
        print(params)
        print("==================结束=====================")

def response(flow):
    response = flow.response
    request = flow.request
    host = request.host
    url = request.url

    method = request.method
    try:
        if method == "GET":
            params = request.query
        else:
            params = request.get_text()
    except Exception:
        return
    if len(filter_host) != 0 and host not in filter_host:
        return

    print("==================响应=====================")
    if response_debug:
        print("响应域名:" + host)
        print("请求完整路径:" + url)
        print(params)
        print("响应参数:")
        print(response.text)
    print("==================响应结束=====================")

执行方式

mitmdump -p 6666 -s ./proxy.py --set body-size-limit=10k

打包exe

创建 start.py代码如下:

import argparse
from mitmproxy.tools.main import mitmdump
import sys

def main():
    # 创建 ArgumentParser 对象
    parser = argparse.ArgumentParser(description='Run mitmdump with dynamic parameters.')
    parser.add_argument('-p', '--port', type=str, default='6666', help='Proxy Port (default: "6666")')
    parser.add_argument('-s', '--script', type=str, help='Path to the mitmproxy script.', default='./proxy.py')

    # 解析命令行参数
    args = parser.parse_args()

    print(args)

    # 构建 mitmdump 命令参数
    command = [
        "-p", args.port,
        "-s", args.script,
        "--set", "body-size-limit=10k"
    ]  # 默认端口或者指定端口

    # 运行 mitmdump
    try:
        mitmdump(command)
    except KeyboardInterrupt:
        print("\nmitmdump stopped by user")
        sys.exit(0)

if __name__ == '__main__':
    main()

安装 pyinstaller

pip install pyinstaller

打包成exe

pyinstaller -F -c .\start.py


扫码关注,及时关注技术动态


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇