前言:
安卓抓包的话网上有很多工具和方法了,比如Android的HTTPCanary,与PC联动的有proxier+charles/burp等,但是这些都是基于wifi抓包的,如果在遇上无法使用wifi或者不能使用WiFi与PC进行通行的情况下就无能为力了
一、Reqable
有这么一款工具,它可以实现多平台的抓包工作,并且可以很好地在跨平台之间进行联动,那就是Reqable
这是一个跨平台的抓包工具,可以很方便地在电脑对手机进行抓包和重放
二、安装
直接下载相应平台的安装即可
三、使用
1、Android
先选择独立模式,到时可以选择手动进入协同模式
(1)、添加联动设备
点击左上角的三横杆->远程设备,添加远程设备,在同一局域网的情况下手动输入电脑的IP地址或者扫描即可联动了
(2)、更多操作
点击右上角的三个小竖点选项,里面有三个功能是我们经常会用到的
- 应用程序:只代理指定程序的流量,留空则代理全部流量
- 代理端口:流量传入Reqable的端口,可用于别的应用传入数据
- 二级代理:有些走代理的应用可以在这里填写上游代理服务器
2、PC
PC端就和charles/Burp类似了,抓包都需要安装证书的,安装好证书即可完成配置了
四、高级应用
接下来才是本篇文章的重点
如果想抓包不同网络的wifi/手机卡的数据的话,PC是无法连入同一网络的,这种情况的话我们可以使用adb进行流量转发
原理:手机在开启reqable抓包后将数据先通过adb流量转发到PC后在PC又重新通过adb发回手机
前提:手机和PC可以正常使用adb通信
1、开启adb转发和逆转发
在电脑输入adb forward tcp:9000 tcp:9000
和adb reverse tcp:8080 tcp:8080
这里说一下这两个的adb转发的作用:
adb forward tcp:9000 tcp:9000
是将PC的9000端口数据转发给手机的9000端口
adb reverse tcp:8080 tcp:8080
则是反过来,将安卓8080端口的数据转发给PC的8080端口
而我们在PC是开启了8080端口的抓包监听的,而在安卓的reqable是开启了9000的回传端口,用于将数据转发到互联网,8080端口则开启的数据转发端口,用于转发数据到PC
2、Android设置
将reqable的代理端口设置为9000,并配置二级代理为127.0.0.1:8080,这样reqable抓到的数据就会转发给127.0.0.1:8080端口了,因为我们开启了本地8080端口转发到电脑的8080端口,因此就可以直接通过adb转发数据到PC了
3、PC设置
(1)、修改监听端口为8080
(2)、添加二级代理
在顶栏的代理->二级代理->新建配置来添加一个回传代理,这样转发的数据就可以重新发回手机了
之后如果要重发的话就选择代理为跟随调试