Android抓包工具Fiddler的使用教程

在实际开发过程中,我们可以使用抓包工具方便我们测试。

Fiddler教程:https://www.bilibili.com/video/BV1c4411c7zH?from=search&seid=3693351876556970940

在这里向大家介绍一款主流的抓包工具Fiddler  ,Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯。(代理相当于中介的意思,它可以监听到客户端与服务器之间的所有请求)

我们就是用这款软件抓取 ,我们手机app访问的所有资源路径。

下面 我们拿实例 来演示下,怎么用fiddler 抓取数据。

环境: win7 

准备工作:

1.下载 Fiddler 这款软件 官网下载地址:

   http://www.telerik.com/download/fiddler 

    注意 wind7 wind8 下载不是一样的, 官网有详细介绍。自行安装。

    或者直接网盘下载:

    链接 :  https://pan.baidu.com/s/1SHrwr30jh5TwuLVSbRjEgw

    提取码: qex3

2. 配置Fiddler

     Fiddler左上角主菜单 Tools ->Options,

     …-> HTTPS          选中"Decrpt HTTPS traffic"。 (Fiddler就可以截获HTTPS请求)

     …-> Connections  选中Allow remote computers to connect。(允许别的机器把HTTP/HTTPS请求发送到Fiddler上来)

     记住这个端口号为8888

     保存后重启一下Fiddler。

     Android抓包工具Fiddler的使用教程_第1张图片

     Android抓包工具Fiddler的使用教程_第2张图片

3. 配置手机

     首先获取PC的ip地址:cmd命令行中输入 ipconfig 获取 ip地址 (192.168.2.36)

     Android抓包工具Fiddler的使用教程_第3张图片

     其次要使手机和电脑在同一个无线网络,使用同一个局域网

     打开手机设置…-> WLAN,长按连接的WIFI名,然后点击修改网络

     Android抓包工具Fiddler的使用教程_第4张图片

 

     Android抓包工具Fiddler的使用教程_第5张图片

    选中显示高级选项按钮 …-> 代理选择手动 …-> 输入刚才的IP地址以及Fiddler默认的端口号 …-> 保存

    现在我们就完成了代理的设置,就可以通过Fiddler抓取http数据包了!

    在拿到的数据之后,我们右键 …-> Copy …-> Just Url ,就拿到我们抓的Url了,直接在浏览器打开查看就可以了!

 

    PS:使用Fiddler 进行https 抓包 可以首先 用手机浏览器 访问本机ip:端口号 10.0.0.0:8888 下载证书,然后安装证书。 

(1)打开手机浏览器,输入http:// IP: 端口号 (http://192.168.2.36:8888,点击前往;见下图:

  Android抓包工具Fiddler的使用教程_第6张图片      

(2)前往之后会跳转到证书下载页,见下图:

     点击FiddlerRoot certificate下载证书;

Android抓包工具Fiddler的使用教程_第7张图片

(3)点击下载开始下载

Android抓包工具Fiddler的使用教程_第8张图片

(4)安装证书并起个名字,随便写就行,点击确定;

Android抓包工具Fiddler的使用教程_第9张图片

 

(5)要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可;

(6)打开Fiddler配置HTTPS,Tools -->Options -->HTTPS  --> Actions  --> Trust Root Certificate , 点击yes,安装

         (如果不行的话,先点击如图箭头所指:Reset All Certificates ,然后执行上述操作)

           Android抓包工具Fiddler的使用教程_第10张图片

           Android抓包工具Fiddler的使用教程_第11张图片     

           Android抓包工具Fiddler的使用教程_第12张图片

点击是进行安装,这样就可以看到抓取到的HTTPS了

下边说一个证书认证时出现的问题 

javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

 

OkHttpClient.Builder builder = new OkHttpClient.Builder();
            builder.readTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
            builder.writeTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
            builder.connectTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
            builder.sslSocketFactory(createSSLSocketFactory());
            builder.hostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
            mOkHttpClient = builder.build();
 private static SSLSocketFactory createSSLSocketFactory() {
        SSLSocketFactory ssfFactory = null;
        try {
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, new TrustManager[]{new TrustAllCerts()}, new SecureRandom());
            ssfFactory = sc.getSocketFactory();
        } catch (Exception e) {
        }
        return ssfFactory;
    }
public class TrustAllCerts implements X509TrustManager {
    @Override
    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
 
    }
    @Override
    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
 
    }
    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return new X509Certificate[0];
    }
}

 

你可能感兴趣的:(Android高级,Android,抓包工具,Fiddler,测试)