安卓环境下已经 ROOT
当访问 xx.xx.xx.xx IP 的时候,拦截这个请求(数据包没有发送给这个 IP )。
而是在本地直接响应或代理到指定 IP 响应自定义数据。
我不知道怎么形容:流量篡改、注入 。
注意是全局访问,也就是我在任意一个应用中访问该 IP 都会拦截并响应自定义数据。
想通过写一个安卓程序创建本地 VPN 监听请求并修改响应数据。不借助类似 Fiddler 的工具实现。
O(∩_∩)O
如果访问的是域名,则可以通过更改 /etc/hosts
文件,将任意域名指向任意 IP。
但如果访问的是 IP 就没有思路啦。
之前用过 Packet Capture 原理好像是本地创建一个 VPN 然后系统应用走这个 VPN 从中获取到包数据 但无法修改返回数据 怎样才能在安卓上实现类似程序
1
jinliming2 2019-07-02 00:12:31 +08:00 via iPhone
iptables 应该可以改吧?
创建 VPN 的话,具体我没搞过,但是应该是可以修改的。 |
2
blless 2019-07-02 00:18:02 +08:00 via Android
这不就是中间人吗 本地不是可以直接在网卡上抓包?要劫持的话直接改下路由表把流量出口指向抓包网卡就可以了,非本地就只能设备桥接抓包了。
|
3
locoz 2019-07-02 08:11:22 +08:00 via Android
你需要的可能是 HttpCanary ?
|
6
shawndev 2019-07-02 09:50:08 +08:00 1
在手机本地起一个 http 服务,监听 8080 端口,对每个进来的请求做处理,如正则表达式匹配 url 或 header。
然后手机本地起一个 v%n 服务,将所有流量转发到 8080 端口。 市面上很多成熟的应用都是这么做的,比如去广告,实际上就是广告的请求返回空的 response。 |
7
nnnToTnnn 2019-07-11 16:10:14 +08:00
tun tap 在安卓里面基本上广告拦截都是这项技术
|