转载至https://www.cnblogs.com/lulianqi/p/11380794.html#l_2
实际操作步骤(Android)
笔者这里直接使用上面提到第3种方法(方法1在对于手机APP很难操作,方法2可能需要其他设备所以这里不使用),因为我们的测试对象是手机移动APP,所以我们首先要在手机上安装一个VPN,这里使用一个十分方便的VPN软件drony (介绍在这里https://github.com/SuppSandroB/sandrop/wiki/Drony-FAQ),drony会在你的手机上创建一个VPN,将手机上的所有流量都重定向到drony自身(不是流向vpn服务器) ,这样drony就可以管理所有手机上的网络流量,甚至可以对手机上不同APP的流量进行单独配置。
1:安装drony (这里手机使用的Android设备)
您可以在网络上搜索drony选择自己想要的版本进行安装,或者在这里下载(https://files.cnblogs.com/files/lulianqi/Drony_102.apk),安装完成后打开软件如下图
2:开启代理抓包软件(这里代理抓包软件使用的是Fiddler)
Fiddler的使用这里不再介绍,需要打开远程代理,并在手机中安装Fiddler根证书
这里笔者开启的远程代理的地址是192.168.2.244:8888
关于证书安装有些细节,Fiddler默认的根证书是cer格式,部分手机可能只能识别pem格式证书
直接使用openssl 转一下就行了 (openssl x509 -inform der -in FiddlerRoot.cer -out FiddlerRoot.pem)
openssl 在中 windows/mac 一般都安装有,命令直接使用就行了,使用生成的FiddlerRoot.pem安装到手机上就行了(Charles默认就是pem证书)
3:配置drony转发
打开Drony(处于OFF状态),滑动到SETING页,点击选择Networks Wi-Fi 进入配置
在网络列表中选择点击当前手机wifi连接的网络 (需要确保该网络与Fiddler代理服务器网络是联通的)
配置要为当前网络使用的代理入口(这里直接填写fiddler代理地址就可以),选择代理模式为手动(Manual)
注意Proxy type代理方式要选择 Plain http proxy
Filter default value 选择 Direct all ,然后点击下面的Rule设置应用规则
默认您的规则里应该是空的,这里直接点击上面的加号添加一个规则(符合规则要求的才会被转发)
说明一下后面的操作会以咸鱼或支付宝做演示说明,不过笔者当前测试项目并不是咸鱼或支付宝,也不是其公司的员工,选择这2个APP做演示是因为这些APP比较常用,且无法抓包的原因与笔者当前项目APP是类似的。
在Network id处 选择当前wifi的SSID
Action 选择 Local proxy chain
Application 选择需要强制代理的APP
Hostname 及 Port 不填 表示所有的都会被强制代理,因为APP可能会使用其他的网络协议不一定都是http,可能不希望把所有流量都引流到http代理服务器,这个时候就会使用这个配置指定ip及端口才转发
完成后保存即可,然后返回到SETTING主页,滑动到LOG页,点击下面按钮,使其处于ON的状态(表示启用)
这个时候启动支付宝或咸鱼,我们就可以在Fiddler上看到正常的流量。不过如果你的运气与笔者一样可能只能看到这些Tunnel to (TLS管道建立),如果您使用的是Charles在列表里看到的可能是一个个红叉。
当然笔者Fiddler根证书是安装成功的,Fiddler配置也是正确的(手机上的Chrome https抓包都是正常的)