我想按照 MitmProxy API 写个加密的中转转发脚本。却无奈发现无法载入其他包。
mitmproxy version : 4.0.4
system: windows10
import base64
import mitmproxy.http
import pyDes
import random
# 加密
def encrypt_str(key,data):
# 加密方法
method = pyDes.des(key, pyDes.ECB,pad=None, padmode=pyDes.PAD_PKCS5)
# 执行加密码
k = method.encrypt(data)
# 转 base64 编码并返回
return base64.b64encode(k)
# 解密
def decrypt_str(key,data):
method = pyDes.des(key, pyDes.ECB,pad=None, padmode=pyDes.PAD_PKCS5)
# 对 base64 编码解码
k = base64.b64decode(data)
# 再执行 Des 解密并返回
return method.decrypt(k)
class Counter:
def __init__(self):
pass
def request(self, flow: mitmproxy.http.HTTPFlow):
key = str(random.randint(10000000,99999999))
flow.request.headers['key'] = key
#print(key)
#print(encrypt_str(key.encode(encoding="utf-8"),flow.request.content))
def response(self,flow: mitmproxy.http.HTTPFlow):
key = flow.response.headers['key']
# print(key)
# print(decrypt_str(key.encode(encoding="utf-8"),flow.response.content))
addons = [
Counter()
]
问题原因已经找到。是由于windows版本的是只能通过pip去安装。若是通过官网下载的exe进行安装会提示无法找到包 以下是解决方法:
sys.path.apend('python目录的site-packages目录')
这两个方法即可解决无法载入包的错误
1
claysec OP 纠正一下是 append :) 2. 若是通过官网下载的 exe 进行安装请使用第二种方法
|