总算给安装上了

0x00.前言

为了存储maimai_DX的成绩,每次都得开抓包工具,偶然间发现pymitmproxy,可以借助于它获取cookies

0x01.安装

参照官方文档mitmproxy,可以看到macOS下推荐的方法是使用brew来安装

1
brew install mitmproxy

安装完成之后发现毕竟要拿py写逻辑,所以还是得安装pip的包

1
pip3 install mitmproxy

0x02.运行

首先,执行的是brewmitmproxy,一切正常,但是pipmitmproxy报错了

1
2
3
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so, 0x0002): tried: '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/_cffi_backend.cpython-39-darwin.so' (no such file)

于是就开始了漫长的排查过程……
首先发现,brew是有X86_64arm64两个版本的,而实际生效的只有前者(因为当初从黑苹果迁移到白苹果之后并没有重新安装brew,是个上古遗留问题
所以决定首先卸载brew,然后重新安装,这样就可以确定本地只有arm64版本的了,然后谷歌搜到了Installation on an M1 Mac - Not in Rosetta Mode,发现是cffi的问题

1
2
pip3 uninstall cffi
pip3 install cffi

终于解决了问题

0x03.使用

1
2
3
4
5
yuangezhizao@MacMini ~ % mitmdump --version
Mitmproxy: 7.0.0
Python: 3.9.6
OpenSSL: OpenSSL 1.1.1k 25 Mar 2021
Platform: macOS-12.0-arm64-arm-64bit

0x04.引用

使用 mitmproxy + python 做拦截代理
Installing Cryptography on an Apple Silicon M1 Mac
Runtime error on import on M1 Mac