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
linux上的tcpdump示例,
tcpdump只监听 不主动发送数据
## 先启动tcpdump监听在217上
tcpdump -ni any host 10.225.4.152 and port 8500
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
## 然后telnet 152 8500端口 连接建立
07:36:38.483069 IP 10.225.4.217.41214 > 10.225.4.152.fmtp: Flags [S], seq 2018921984, win 29200, options [mss 1460,sackOK,TS val 3161890123 ecr 0,nop,wscale 7], length 0
07:36:38.484630 IP 10.225.4.152.fmtp > 10.225.4.217.41214: Flags [S.], seq 365172337, ack 2018921985, win 28960, options [mss 1460,sackOK,TS val 548910784 ecr 3161890123,nop,wscale 7], length 0
07:36:38.484682 IP 10.225.4.217.41214 > 10.225.4.152.fmtp: Flags [.], ack 1, win 229, options [nop,nop,TS val 3161890124 ecr 548910784], length 0
## 发送q关闭连接
07:40:43.521959 IP 10.225.4.217.41214 > 10.225.4.152.fmtp: Flags [P.], seq 1:4, ack 1, win 229, options [nop,nop,TS val 3162135162 ecr 548910784], length 3
07:40:43.523370 IP 10.225.4.152.fmtp > 10.225.4.217.41214: Flags [.], ack 4, win 227, options [nop,nop,TS val 549155823 ecr 3162135162], length 0
07:40:43.524953 IP 10.225.4.152.fmtp > 10.225.4.217.41214: Flags [P.], seq 1:48, ack 4, win 227, options [nop,nop,TS val 549155825 ecr 3162135162], length 47
07:40:43.524980 IP 10.225.4.217.41214 > 10.225.4.152.fmtp: Flags [.], ack 48, win 229, options [nop,nop,TS val 3162135165 ecr 549155825], length 0
07:40:43.527749 IP 10.225.4.152.fmtp > 10.225.4.217.41214: Flags [F.], seq 48, ack 4, win 227, options [nop,nop,TS val 549155825 ecr 3162135165], length 0
07:40:43.527897 IP 10.225.4.217.41214 > 10.225.4.152.fmtp: Flags [F.], seq 4, ack 49, win 229, options [nop,nop,TS val 3162135168 ecr 549155825], length 0
07:40:43.528467 IP 10.225.4.152.fmtp > 10.225.4.217.41214: Flags [.], ack 5, win 227, options [nop,nop,TS val 549155828 ecr 3162135168], length 0
^[[A^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel
flag标识解释:
[S] 客户端发起连接
[S.] 服务端接受并响应
[.] 客户端确认,连接建立
[P.] PSH + ACK,有应用层数据传输
[F.] FIN + ACK,正常关闭连接
[R] RST,连接被重置/拒绝
[R.] RST + ACK,连接被重置并确认
F. 可以由server或者client发起,发起关闭连接的请求
连接有问题的一些情况:
只有 SYN 重传:包没通,或回包丢
收到 RST:对方拒绝/端口没开
收到 ICMP unreachable:路由或策略明确不可达
看到 SYN,SYN-ACK,ACK:TCP 已经通,继续查应用层
握手后马上 FIN/RST:网络通,服务/协议/权限问题

浙公网安备 33010602011771号