charles代理设置 查看https接口

1. 客户端发送的数据包

android7之后 只信任系统根证书, 用户安装的证书只能在浏览器中使用, 其他APP使用不了,线上定位问题(或者想参考别人的接口设计)极不方便
小米手机root需要开发版 而只能通过官方内测申请才能刷开发版, 流程审批都要好几天,能不能批下来还不好说
华为直接禁用root了

手机在不root时,如何安装系统根证书呢?
使用avd? 这个是X86CPU用的, 市面APP一般是arm的,AVD里面安装不了 要改代码 还是只能用在自己开发的APP

vmos android内的虚拟机,自带root

先装证书

openssl x509 -subject_hash_old -in 证书名加后缀计算出hash值,并将后缀设为0
拷贝证书文件到/system/etc/security/cacerts, 可以使用ES文件管理器

adb -s 192.168.1.111:5666 push D:/2094d12a.0 /storage/sdcard/

代理设置

在宿主真机上设置wifi代理不起作用,charles根本抓不到请求, 需要在虚拟机内部设置http proxy端口

但是vmos没有代理设置操作页面!!! 坑了

首先在vmos内打开网络adb
然后祭出adb神器

adb connect 192.168.1.111:5666
adb  -s 192.168.1.111:5666 shell settings put global http_proxy 192.168.1.220:8888

某书的示例

嗯 这个处理方式和我用的很像啊

部分APP无法代理抓包的原因及解决方法

https://cloud.tencent.com/developer/article/1490033
不是所有的app默认都会使用系统代理 VPN就不同了

另外也可以链接电脑热点,然后用wireshark抓包,就是效率低一些

2. 服务端接收到的数据

原因:浏览器发出的请求 后端多个服务转来转去,原有的param都不知道变成什么样了

抓取 HTTP GET 流量:
tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' 

也可以抓取 HTTP POST 请求流量:
tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

针对某一个端口抓包
tcpdump tcp port 8081

posted @ 2020-05-24 09:38  funny_coding  阅读(2117)  评论(0编辑  收藏  举报
build beautiful things, share happiness