写点什么

Android 逆向实战:检测系统代理 && 不走代理的处理方案

作者:LLLibra146
  • 2025-02-12
    北京
  • 本文字数:1336 字

    阅读完需:约 4 分钟

今天来实战一个简单检测了系统代理的 APP 抓包。


APP1

APP1 地址:https://app1.scrape.center/


APP1 说明:


最基本的 App 案例,数据通过接口加载, 无反爬,无任何加密参数,适合做抓包分析和请求模拟。


先安装 APP 看看效果,都会请求什么数据。



可以看到,请求了一些电影的数据,点进去可以看到详细的信息。题目中也说明了,适合抓包分析,我们来设置下系统代理,看看请求了哪些数据。


设置系统代理:



保存,打开抓包软件,我这里使用的是 proxyman,MacOS 系统可用。


查看说明如何在 Android 手机上安装证书:



我这里已经安装好了,就不重复安装了。重新打开 APP1,并且查看抓包软件:



已经抓到了对应的数据包, 由于没有任何反爬和加密参数,我们直接使用 Python 模拟就可以了,大家可以自己尝试一下。

APP2

APP2 地址:https://app2.scrape.center/


APP2 说明:


设置了接口请求不走系统代理,因此无法直接抓包,适合做抓包特殊处理。


说明中提到了请求不会走系统代理了,那么我们刚才设置的系统代理就无法抓到数据包。我们先使用系统代理尝试一下,发现数据请求到了,但是确没有抓到数据,看起来确实是不走系统代理了。


这种情况下,我们需要一个软件。来将某些请求转发到我们电脑对应的端口上,我这里使用的软件叫 ProxyDroid(需要 root 权限),这个软件会创建一个 VPN 通道,并且支持选择只转发某个软件的请求,不会一股脑的将所有的请求都转发过去。并且这个软件还支持切换配置文件,可以对不同的地址和端口使用不同的配置文件,适合我在家里和公司来回切换,不用每次都填地址了。




打开软件先设置只转发我们需要的 APP2 的请求,并且设置好地址和端口,还有协议使用 socks5,打开转发开关。



重新打开软件,发现会报错证书校验失败,这里卡了我好久,研究了半天,发现好像是 TLS 协议不匹配导致的,我使用的抓包软件是 proxyman,它可能支持的支持的协议版本比较高,APP2 支持的版本比较低,导致一直握手失败,换了 Charles 就可以正常抓到包了。



看了一下 APP2 的代码,请求不走系统代理是因为 okhttp 的 NO_PROXY,所以 okhttp 发送请求的时候不会走系统代理。



可以看到上图中明确设置了 NO_PROXY。


其实像这种不走系统代理的 APP,还有其他的解决方案,就是在 root 的情况下,使用 frida 或者 xp 框架,对 proxy 属性进行 hook,动态的将其改写掉,就可以让 okhttp 继续使用系统代理了。

APP3

APP3 地址:https://app3.scrape.center/


APP3 说明:


对系统代理进行了检测,如果设置了代理则无法正常请求数据,适合做抓包特殊处理。


和 APP2 基本一样,看了下代码,的确是检测了代理,如果检测到使用了代理,则不会发起请求。




在检测到代理后,会弹窗提示,不会发起请求,使用 APP2 的方案可以完美规避这个问题。



关掉系统代理,使用转发软件已经可以正常抓到请求了。

总结

APP 的这三道题目还算是比较简单的入门题,因为没有任何混淆和负责的检测,只是检测了系统代理,方便我们熟悉对系统代理的检测和处理不走系统代理的请求。


本文章首发于个人博客 LLLibra146's blog

本文作者:LLLibra146

更多文章请关注公众号 (LLLibra146):

版权声明:本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!

本文链接https://blog.d77.xyz/archives/916d00a0.html

发布于: 21 小时前阅读数: 2
用户头像

LLLibra146

关注

还未添加个人签名 2018-09-17 加入

还未添加个人简介

评论

发布
暂无评论
Android逆向实战:检测系统代理&&不走代理的处理方案_Android 逆向_LLLibra146_InfoQ写作社区