• app不走系统代理?如何抓包?


    现象

    模拟器开启WLAN代理如下:

    发现抓不到包:

    但是app却依旧正常返回数据,没有断网:

    原理

    网络请求代理设置NO_PROXY

    • android系统设置的代理并不是强制对所有app生效的
    • app可以在网络请求类库中通过自定义代理设置,选择是否要走系统代理
     public void run() {
            Looper.prepare();
            OkHttpClient okHttpClient = new OkHttpClient.Builder().
                    proxy(Proxy.NO_PROXY).//okhttp不设置代理
                    build();
            Request request = new Request.Builder()
                    .url("http://www.baidu.com")
                    .build();
            Response response = null;
            try {
                response = okHttpClient.newCall(request).execute();
                Toast.makeText(this, Objects.requireNonNull(response.body()).string(), Toast.LENGTH_SHORT).show();
            } catch (IOException e) {
                e.printStackTrace();
            }
            Looper.loop();
        }
    

    解决方案

    既然不走系统代理,那么直接抓系统的包不就可以了吗

    被抓包的APP并不知道自己被套在了第几层

    方案一

    使用proxifier 将模拟器请求直接转发到抓包软件,相当于抓安卓系统的包:

    抓包结果:正常抓包

    方案二

    同理,使用本地VPN抓包软件,如抓包精灵

    方案三

    justtrustme或者直接okhttp代理方法,使代理设置语句无效

    总结

    一层一层又一层,总有套路得人心!

  • 相关阅读:
    SQL2005 镜像配置
    子窗体关闭程序
    asp.net 输出微信自定义菜单json
    教是最好的学
    人为什么要努力?
    《雪国列车》制度与自由
    时间记录APP———Time Meter
    饭饭
    Android编译程序报错:Re-installation failed due to different application signatures.
    我的GTD起步
  • 原文地址:https://www.cnblogs.com/Zdelta/p/14122300.html
Copyright © 2020-2023  润新知