- 背景
HTTPS通讯是加密的, 因此需要Man In The Middle attack. 也就是需要在通讯中加上Charles作为代理. 这样需要客户端授权Charles SSL证书.
在Android 7.0+(API 24)的设备上, APP不再信任user or admin-added CAs, 详见此网页, 因此需要将证书安装到system CA中. - 安装并破解Charles
Charles官网
破解工具
或者直接使用serial keys:Name:TEAM MESMERiZE Serial:FC91D362FB19D6E6CF Name:CRACKSurl Serial:1959D66D1AAC0C6EA2 Name:Charles Serial:EBD457553EFAF1BBAC Name:cracksurl.com Serial:3FE40E97FCA9E9697A
- 设置代理
- server
Charles->Proxy->Proxy Settings
不检测Windows的流量情况.
- client
Charles打开代理后(Proxy->Windows Proxy被选中), 在手机WiFi界面设置代理. 如果不知道的话看Help->SSL Proxying->Install Charles Certificate on a Mobile Device弹出的提示.
- server
- 安装证书
- server(据说可以省略)
Help->SSL Proxying->Install Charles Certificate一路下一步. - client安装根目录证书(参考1, 2)
- 先通过Help->SSL Proxying->Save Charles Root Certificate…下载
cert.pem
文件. - 再用命令(需要bash.exe)
我好像第三条命令没有运行貌似也能work. 然后再把文件拷到相应目录并修改权限.CERT_ID="$(openssl x509 -inform PEM -subject_hash_old -in cert.pem | head -1).0" echo CERT_ID=$CERT_ID cat cert.pem > $CERT_ID openssl x509 -inform PEM -text -in cert.pem -out /dev/null >> $CERT_ID
adb root adb remount adb push $CERT_ID /system/etc/security/cacerts/ chmod 644 /system/etc/security/cacerts/$CERT_ID
- 或者
Help->SSL Proxing->Install Charles Root Certificate on a Mobile Device or Remote Browser
, 下载downloadfile.crt
后在手机的设置→安全→更多安全设置→加密与凭据→安装证书→CA证书
中安装证书
- 先通过Help->SSL Proxying->Save Charles Root Certificate…下载
- server(据说可以省略)
- Charles设置SSL捕获
在Proxy -> SSL Proxying Settings…添加*.*
- 大功告成., 开始capture
- Possible Problems
- 启动软件时提示
Failed to bind proxy port 8888: Address already in use: JVM_Bind
.
按照建议, 在CMD输入命令netstat -aon | findstr "8888"
, 最后一列为进程ID(23956),tasklist | findstr "23956"
即可得到占有端口的进程. - 手机无法联网
在Windows上, 高级安全Windows Defender防火墙(cmd→wf.msc
)中添加入站规则: Charles Web Debugging Proxy, 公用, 允许连接, UDP和TCP.
- 启动软件时提示
Android使用Charles sniffers network traffic
最新推荐文章于 2021-12-21 21:18:31 发布