Android 常用抓包工具介绍之Charles

简介:

原文出自【听云技术博客】http://blog.tingyun.com/web/article/detail/516

Charles是一款抓包修改工具,相比起TcpDump,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!前面介绍了如何使用TcpDump抓包,下面给大家介绍一下Charles的使用。

Charles抓包

Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器。它允许一个开发者查看所有连接互联网的HTTP通信。这些包括request、response现HTTP headers(包含cookies与caching信息)。

1、配置抓包环境

1)下载Charles

http://www.charlesproxy.com/

2)安装Charles

下载完毕之后,直接进行安装即可正常使用

(ps:不注册的话,每次使用30分钟,工具就会自动关闭)。

5.667.png  

2、使用Charles进行抓包

1)Http抓包

6.777.png 

i.打开Charles抓包工具 

8.999.png 

ii.打开网络偏好设置查看本机IP地址为:10.1.1.139

注:Android 设备需要与PC连接同一网段 

90.png 

iii.连接同一WiFi后设置本机代理 

98.png 

iv.这里的IP地址为:10.1.1.139;端口号默认为:8888

97.png 

v.在Charles上查看即可

2)Https抓包(中间人)

a)下载Charles证书

如果要查看Https的数据需要安装Charles的证书

下载地址: http://www.charlesproxy.com/assets/legacy-ssl/charles.crt

b)安装Charles证书

将下载完成的charles.crt证书push到Android设备上(也可用常用工具)

$ adb push charles.crt /sdcard/

77.png 

i.进入设置à安全à从手机存储卡安装证书

88.png 

ii.找到charles.crt点击安装

776.png 

iii.输入证书名称为:charles

注:点击确认后需要设置手机解锁密码

55.png 

iv.安装成功后即可通过Charles查看Https的数据了

c)添加需要查看的Https地址

44.png 

i.点击ProxyàSSL Proxying Settings…

33.png     

ii.在SSL Proxying中点击Add添加Https域名 

221.png

iii.可在charles中查找需要查看的Https域名复制到Host中点击Ok即可

1233.png 

iv.配置完成后重新访问Https域名,即可查看Https数据

3、使用Charles模拟弱网环境

测试过程中经常需要模拟网络环境,那么如何通过Charles来模拟弱网呢?

455.png 

i.选择ProxyàThrottle Setting…

56.png 

ii.勾选Enable Throttle并选择需要设置的网络环境即可

4、使用Charles设置断点

Charles能在网络访问过程中设置断点,对于开发者和测试人员来说,堪称神器。它能够断到发送请求前(篡改Request)和请求后(篡改Response)

1)使用Breakpoint Settings设置断点

333.png 

555.png 

2)选中域名插入断点

343.png

i.右击选中需要修改的域名,点击Breakpoints

2233.png 

ii.重新访问该域名,选择Edit Request进入修改页面

112.png 

注:Charles能够修改Request的:URL、Headers、Text、Raw;

以及Response的:Headers、Set Cookie、Text、Html、Raw;

这里以Request的headers参数为例进行修改

11222.png   

iii.这里查看原Headers携带参数为:{NBSHeaderTest1,NBSApp;b,NBSApp}

现在通过断点方式修改为:{NBSHeaderTest1,TingyunTest}

667.png 

iv.修改完毕后点击Execute查看Request中的Headers已经修改为NBSHeaderTest1 TingyunTest

5、使用repeat测试

在Charles中可以通过repeat和repeat Advances来重复发送请求

445.png 

repeat Advances可以自定义重复次数和重复间隔

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
58 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
Android开发 Windows
mac下,依赖于Charles代理,wireshark抓取Android设备报文
mac下,依赖于Charles代理,wireshark抓取Android设备报文
|
XML 缓存 安全
Android端Charles抓包
Android端Charles抓包
3487 0
Android端Charles抓包
|
算法 网络安全 Android开发
使用Charles对Android App的https请求进行抓包
本文背景 公司新项目要求抓取目前市面上一些热门App的数据,经过研究发现很多App的网络请求都使用https进行数据传输,这样问题就来了,http使用明文传输所有请求都能拦截到,而https请求无法拦截。
4691 0
|
Android开发
Android开发利器 - Charles + Genymotion 调试网络应用程序
Charles默认是不监听Genymotion模拟器的网络动态的。 需要进行以下设置: 1. 打开你的Genymotion模拟器 2. 设置 -> Wifi -> 长按你的当前的网络连接 3. 选择 “修改网络” 4.
1556 0
|
5天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
28天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
14 0
|
2天前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
19天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。