userff
0.01D
V2EX  ›  Android

请教大家个抓包问题及响应问题

  •  
  •   userff · Jul 1, 2019 · 13466 views
    This topic created in 2533 days ago, the information mentioned may be changed or developed.

    需求

    安卓环境下已经 ROOT
    当访问 xx.xx.xx.xx IP 的时候,拦截这个请求(数据包没有发送给这个 IP )。
    而是在本地直接响应或代理到指定 IP 响应自定义数据。
    我不知道怎么形容:流量篡改、注入 。
    注意是全局访问,也就是我在任意一个应用中访问该 IP 都会拦截并响应自定义数据。
    想通过写一个安卓程序创建本地 VPN 监听请求并修改响应数据。不借助类似 Fiddler 的工具实现。
    O(∩_∩)O
    

    思考

    如果访问的是域名,则可以通过更改 /etc/hosts文件,将任意域名指向任意 IP。 但如果访问的是 IP 就没有思路啦。

    之前用过 Packet Capture 原理好像是本地创建一个 VPN 然后系统应用走这个 VPN 从中获取到包数据 但无法修改返回数据 怎样才能在安卓上实现类似程序

    7 replies    2019-07-11 16:10:14 +08:00
    jinliming2
        1
    jinliming2  
       Jul 2, 2019 via iPhone
    iptables 应该可以改吧?
    创建 VPN 的话,具体我没搞过,但是应该是可以修改的。
    blless
        2
    blless  
       Jul 2, 2019 via Android
    这不就是中间人吗 本地不是可以直接在网卡上抓包?要劫持的话直接改下路由表把流量出口指向抓包网卡就可以了,非本地就只能设备桥接抓包了。
    locoz
        3
    locoz  
       Jul 2, 2019 via Android
    你需要的可能是 HttpCanary ?
    locoz
        4
    locoz  
       Jul 2, 2019 via Android
    @locoz #3 或者说是它的那个基础框架?
    userff
        5
    userff  
    OP
       Jul 2, 2019
    @locoz #4 谢谢 HttpCanary 可以实现 研究下它的基础框架
    shawndev
        6
    shawndev  
       Jul 2, 2019   ❤️ 1
    在手机本地起一个 http 服务,监听 8080 端口,对每个进来的请求做处理,如正则表达式匹配 url 或 header。
    然后手机本地起一个 v%n 服务,将所有流量转发到 8080 端口。

    市面上很多成熟的应用都是这么做的,比如去广告,实际上就是广告的请求返回空的 response。
    nnnToTnnn
        7
    nnnToTnnn  
       Jul 11, 2019
    tun tap 在安卓里面基本上广告拦截都是这项技术
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5485 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 08:45 · PVG 16:45 · LAX 01:45 · JFK 04:45
    ♥ Do have faith in what you're doing.