调试抓pc软件的包,可以使用 Proxifier 代理指定程序到fiddler。参考:
Proxifier代理指定程序到fiddler_小百菜的博客-CSDN博客_fiddler proxifier
1、设置客户端证书
if (oSession.HostnameIs("192.168.111.201")) {
oSession["https-Client-certificate"] = "F:/client.crt";
}
如果是在浏览器中访问,使用了fiddler的根证书,那么这一步就可以了。
2、安装Fiddler证书生成器
下载并安装Fiddler证书生成器。
下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
安装后实际是在fiddler的安装目录多了一个 CertMaker.dll
安装成功后,fiddler有如下提示:
3、设置服务端的证书(包括私钥)
如果没有服务器证书私钥是不可以的。
CertMaker.StoreCert("192.168.111.201", "F:/server.p12","123456" );
Proxifier代理指定程序到fiddler_小百菜的博客-CSDN博客_fiddler proxifier
代码模拟请求
不管单向还是双向,都不存在中间人攻击问题,我这里能用fiddler抓包的前提是浏览器使用的了fiddler的根证书。或者知道服务端的私钥。
在浏览器中的https链接抓包:
方式一:用SSLKEYLOGFILE 解码 +Wireshark
方式二:fiddler + 信任fiddler的根证书。
app抓包(只信任自己的客户端连根证书都不信任)抓包:fiddler + 服务端私钥。
在浏览器中访问的系统,https可以抓包,app或者exe软件的https如果他只信任自己的客户端连根证书都不信任,这种情况是不能抓包的,网上哪些在app的手机上加入fiddler的根证书能抓包的是那款app的问题信任了根证书。唯一解决办法是app可以考虑hook和逆向更改证书判断。