V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fhy1994
V2EX  ›  Android

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

  •  
  •   fhy1994 · 2019-07-01 22:07:34 +08:00 · 9192 次点击
    这是一个创建于 1963 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求

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

    思考

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

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

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

    市面上很多成熟的应用都是这么做的,比如去广告,实际上就是广告的请求返回空的 response。
    nnnToTnnn
        7
    nnnToTnnn  
       2019-07-11 16:10:14 +08:00
    tun tap 在安卓里面基本上广告拦截都是这项技术
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:56 · PVG 19:56 · LAX 03:56 · JFK 06:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.