mitmproxy を使用してプロキシをバイパスし、GET 要求を使用して Web データをキャプチャする必要があります。私はWindows 7とpython 2.7とmitmproxy pythonを使用しています
次のコードを試しました:
#!/usr/bin/env python
"""
This example shows how to build a proxy based on mitmproxy's Flow
primitives.
Note that request and response messages are not automatically replied to,
so we need to implement handlers to do this.
"""
import sys,os
import os
import cStringIO
import threading
import thread
import exceptions
import gc
from libmproxy import proxy, flow
from libmproxy.proxy import config
from libmproxy.proxy import server
from libmproxy.proxy.server import ProxyServer
from libmproxy.platform.windows import TransparentProxy
class MyMaster(flow.FlowMaster):
def run(self):
try:
flow.FlowMaster.run(self)
except KeyboardInterrupt:
self.shutdown()
def responseheaders(context, flow):
ct = flow.response.headers["Content-Type"]
if ct and len(ct) > 0 and ct[0].startswith("application/"):
flow.stream = True
print "streaming"
def handle_request(self, r):
print r
f = flow.FlowMaster.handle_request(self, r)
if f:
def run():
r.reply()
return f
threading.Thread(target=run).start()
else:
return null
def handle_response(self, r):
f = flow.FlowMaster.handle_response(self, r)
if f:
def run():
r.reply()
return f
threading.Thread(target=run).start()
else:
return null
config = proxy.config.ProxyConfig(
#ca_file=os.path.expanduser("~\.mitmproxy\mitmproxy-ca.pem")
confdir=os.path.realpath('.\\conf')#, mode="transparent"
)
gc.enable()
gc.set_threshold(250, 10, 10)
print gc.get_threshold()
state = flow.State()
server = ProxyServer(config, 8080)
#server = TransparentProxy()
m = MyMaster(server, state)
TransparentProxy().setup()
#proxifier = TransparentProxy()
#proxifier.start()
print "got here"
m.run();
しかし、いくつかのエラーが発生しました:
confdir=os.path.realpath(r'C:\Users\rnive\Documents\certificates') ``#,mode="transparent"
TypeError: __init__() got an unexpected keyword argument 'confdir'
このエラーを修正するためのヘルプ。mitmproxy-ca-cert.p12 ファイルをダブルクリックして mitmproxy CA をインポートし、chrome ブラウザーに mitm.it をロードして、次のような結果を得ました。
これが見られる場合、トラフィックは mitmproxy を通過していません。
TypeError を構成する方法と修正する方法についてのヘルプ!