一、为什么使用抓包工具

前几天因为需要通过抓包定位问题,打开了尘封已久的Fiddler,结果打开软件后什么也干不了,别说手机抓包了,连基本的请求都抓不到。很多时候都是如此,如果一个方案不行,肯定要有替代方案的。于是,我尝试了Charles来进行抓包,效果非常不错。不过,最近我也开始使用SniffMaster(抓包大师),发现它在某些场景下比Charles更加灵活和高效。

二、抓包工具的选择

Charles和SniffMaster都是非常优秀的抓包工具,各有特色。Charles适合初学者,界面友好,功能全面。而SniffMaster则更适合高级用户,尤其是在处理复杂的网络请求时,SniffMaster的过滤和分析功能更为强大。

三、Web抓包

Charles和SniffMaster都支持Web抓包。启动Charles后,它会自动与浏览器设置成代理,不需要进行过多的设置。而SniffMaster则提供了更多的自定义选项,可以根据需要灵活配置代理。

1、抓取HTTPS协议

对于抓取HTTPS协议的包,Charles和SniffMaster都需要进行相应的配置。Charles需要在菜单栏中安装根证书,而SniffMaster则提供了更简洁的配置流程,用户只需几步即可完成HTTPS抓包设置。

2、Charles下配置
  1. 点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;
  2. 点击【Proxy】–>【SSL Proxying Settings…】
  3. 在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】。
四、App抓包
1、电脑端配置:
  1. 启动安装好的Charles或SniffMaster抓包工具;
  2. 点击【Help】–>【local IP Address】获取下IP地址,也可以直接通过电脑自带的CMD命令来获取电脑IP【ipconfig】
  3. 点击【Proxy】–>【Proxy Settings】设置端口号,默认即可。
2、手机端设置:
  1. 打开手机的设置页面;
  2. 选择【无线局域网】;
  3. 点击【配置代理】–>【手动】;
  4. 输入本机【IP地址】以及端口号,点击【存储】。
3、抓取手机HTTPS协议

通过上面的设置,虽然来自我们手机端的HTTP协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,需要安装配置证书才可以。

4、Charles配置:
  1. 点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;
  2. 点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书即可。
五、抓包工具过滤

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。Charles和SniffMaster都提供了强大的过滤功能。

方法一:在主界面的中部的Filter栏中填入需要过滤出来的关键字。

方法二:在Charles的菜单栏选择“Proxy”->”Recording Settings”,然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。

六、弱网测试

Charles和SniffMaster都支持弱网测试。

  1. 点击【Proxy】–>【Throttle Setting】
  2. 勾选上【Enable Throttle】,也可以勾选【only for selected host】设置一个指定注解访问进行网络限制,不影响其他软件;
  3. 在【Throttle preset】选择常见预设的网络情况,也可以在【Bandwidth】自己设置网络的上传和下载速率。
七、打断点篡改数据

在我们的测试场景中,可能需求修改请求参数或者返回参数进行测试,比如支付方面的接口,涉及用户登陆权限的接口参数。

八、修改请求数据
  1. 选择请求会话右键勾选【Breakpoints】这是我们会发现工具栏有个六边形按钮已经变为红色;
  2. 设置断点,点击菜单栏【proxy】勾选【Breakoint Setting …】这是会弹出断点设置弹窗;
  3. 在弹出的断点设置弹窗,双击想打断点的接口,进行断点编辑;
  4. 编辑断点,如果修改Request数据,就将Request勾选,如果修改Response数据,就将Response勾选,当然你也可以都勾选;
  5. 在手机上重新进行请求,Charles会自动进行拦截并跳转到请求数据修改页面。
九、重复发送请求

在我们的测试工作中,可能你会发先一个bug,开发会让你在操作一遍,他要查看日志经i选哪个定位分析,这时候,在客户端上进行操作一遍就会麻烦,这是直接用Charles发送一遍重复的请求就可以了,并且,重新发送请求也可以帮助我们进行功能测试。

选择需要重新发送请求的会话上,直接点击工具栏【重新按钮】

Compose编辑接口

在我们的测试工作中,可能需要发送不同的参数进行请求。选择需要修改的请求,右键选择【Compose】这时多出一个笔的请求。

十、服务器压力测试

Charles和SniffMaster都支持简单的服务器压力测试。

  1. 在进行压力测试的请求会话上右击,选择【Repeat Advanced】
  2. 在弹出框中,输入并发线程数以及压力次数点击进行测试。
总结

Charles和SniffMaster都是非常强大的抓包工具,各有千秋。Charles适合初学者,界面友好,功能全面;而SniffMaster则更适合高级用户,尤其是在处理复杂的网络请求时,SniffMaster的过滤和分析功能更为强大。根据你的需求选择合适的工具,可以大大提高工作效率。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐