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);
    }

你可能感兴趣的:(Android 使用Fiddler4抓包)