今天看啥  ›  专栏  ›  欢子

Android 使用Fiddler4抓包

欢子  · 掘金  ·  · 2019-04-19 08:48
阅读 63

Android 使用Fiddler4抓包

前言

需要手机和电脑在同一局域网下

重要提醒

仅供学习使用,请勿用做商业用途

怎么抓包

  • 1.下载安装Fiddler

下载链接,需要填写邮箱和选择国家,然后下一步

  • 2.配置

打开Tools-Connections,选中Allow remote computers to connect,将请求信息发送至电脑端,并设置端口,一般用默认8888即可。

image.png

  • 3.配置手机代理 在cmd中输入ipconfig,查看本机ip
    image.png
    然后在手机的wifi设置下选择代理,填写电脑的ip和第2步中设置的端口

image.png

打开目标app,即可在电脑上看到请求信息

image.png
查看接口返回的json
image.png

  • 4.HTTPS

电脑端需要下载certificates 插件,选择CertMaker for iOS and Android,下载后安装。

image.png

在手机浏览器打开http://192.168.10.221:8888,也就是电脑端的ip和第二步中设置的端口

image.png

选择You can download the FiddlerRoot certificate,下载https 证书下载到手机,安装证书。

需要注意的是,一般只能在手机自带的文件管理中找到证书,然后打开安装。 打开目标app,即可看到https请求信息

image.png
JSON信息
image.png
视频信息
image.png

重要提示 仅供学习使用,请勿用做商业用途

怎么防止被抓包

  • 1.okhttp 设置无代理
        client = new OkHttpClient.Builder()
                .proxy(Proxy.NO_PROXY)
                .connectTimeout(10, TimeUnit.SECONDS)
                .readTimeout(10, TimeUnit.SECONDS)
                .build();
复制代码
  • 2.目前抓包基本上都是通过代理,只要使用了代理,就不请求接口即可。
    public static boolean isWifiProxy(Context context) {
        final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
        String proxyAddress;
        int proxyPort;
        if (IS_ICS_OR_LATER) {
            proxyAddress = System.getProperty("http.proxyHost");
            String portStr = System.getProperty("http.proxyPort");
            proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
        } else {
            proxyAddress = android.net.Proxy.getHost(context);
            proxyPort = android.net.Proxy.getPort(context);
        }
        return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
    }
复制代码

你的认可,是我坚持更新博客的动力,如果觉得有用,就请点个赞,谢谢




原文地址:访问原文地址
快照地址: 访问文章快照