zoukankan      html  css  js  c++  java
  • 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代理方法,使代理设置语句无效

    总结

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

  • 相关阅读:
    Android测试工具 UIAutomator入门与介绍
    C#异步编程
    懒得找,存个笔记:easyui combogrid 下拉+关键字搜索
    mssql replace
    序列化类型为XX的对象时检测到循环引用
    shell脚本运行python命令
    python技巧
    边缘检测测评标准
    mybatis 手动生成可执行sql
    Linux如何扩容物理文件系统分区
  • 原文地址:https://www.cnblogs.com/Zdelta/p/14122300.html
Copyright © 2011-2022 走看看