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);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。