Android 常用抓包工具介绍之Charles

本文涉及的产品
.cn 域名,1个 12个月
简介:

原文出自【听云技术博客】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可以自定义重复次数和重复间隔

目录
相关文章
|
6月前
|
网络协议 Android开发 Python
Android 抓包工具r0capture使用
Android 抓包工具r0capture使用
522 1
|
6月前
|
安全 Java Linux
Android反编译——jadx工具
Android反编译——jadx工具
248 1
|
6月前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
780 0
|
6月前
|
Android开发 芯片 开发者
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
92 0
|
6月前
|
Java 开发工具 Android开发
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
52 4
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
54 1
|
3月前
|
Android开发 开发者
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
225 1
|
4月前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性:平台、工具和用户体验的对比分析
【7月更文挑战第30天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着不可忽视的地位。本文将深入探讨这两大平台在开发环境、工具选择以及最终用户体验上的根本差异,并分析这些差异如何影响开发者的策略和用户的偏好。通过比较安卓的开放性与iOS的封闭性,我们将揭示不同平台下的开发哲学及其对生态系统的影响。
44 4
|
4月前
|
开发工具 Android开发 数据安全/隐私保护
探索iOS与安卓应用开发的异同:技术、工具和市场趋势
在移动操作系统的广阔舞台上,iOS和安卓两大主角各自演绎着怎样的精彩?本文将深入剖析这两大平台在应用开发过程中的技术差异、开发工具的选择以及面对的市场环境。通过数据支撑和案例分析,我们将一窥这两个系统如何影响开发者的决策,并探讨它们未来的发展方向。
|
3月前
|
API 调度 Android开发
Android经典实战之处理后台任务的2个工具
本文介绍Android后台任务管理,涵盖WorkManager与JobScheduler的使用方法及区别。WorkManager属Jetpack库,确保任务可靠执行,支持延迟与条件依赖。JobScheduler则针对特定条件下的任务调度,如网络类型。两者各有优势,WorkManager适用于多数场景。
42 0