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

2019-07-01 22:07:34 +08:00
 fhy1994

需求

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

思考

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

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

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

市面上很多成熟的应用都是这么做的,比如去广告,实际上就是广告的请求返回空的 response。
nnnToTnnn
2019-07-11 16:10:14 +08:00
tun tap 在安卓里面基本上广告拦截都是这项技术

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/579110

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX