目录

  • 1、Charles准备工作
  • 2、Charles抓包原理
  • 3、Charles抓包步骤
  • 4、Charles抓包分析
  • 5、Charles重发请求

1、Charles准备工作

  • Charles是一种抓包工具,和fiddler、mitmproxy功能差不多,既可以抓包网页的数据,也可以抓包app的数据

  • 下载Charles,一路next即可安装完成。Charles激活,将生成的激活码复制下来,在 charles 的help》Registered输入版本号和key值就可以激活

  • windows证书配置:打开Charles→点击Help→SSL Proxying→Install Charles Root Certificate→进入证书安装页面→点击安装证书→选择证书存储区域→将所有的证书放入下列存储→受信任的根证书颁发机构→下一步完成导入

  • 设置Proxy代理: 这里proxy的端口是8888, socket的端口是8889,也可以修改其它的,则相应的app端设置也需要保持端口号一致

  • 配置SSL代理

  • Android设置手动代理:手机和电脑端连着同一个网 > 然后电脑端打开cmd输入ipconfig查看ip > 然后手机端对当前wifi设置手动代理,代理ip即电脑的ip,端口即如上图所示的8888 > 此时电脑弹出窗口,点击Allow > 然后刷手机端的内容,电脑端就正常抓手机包了

  • Android安装ssl证书:手机端浏览器进入链接https://chls.pro/ssl下载charles-proxy-ssl-proxying-certificate.pem证书 , 然后手机端安装,如果安装不了,可以将后缀名.pem改成.cer ,其中在设置>安全>加密和凭据里面>信任的凭据>需要把用户的下面的凭据移动到系统的位置(原因因为Android7以后,只信任系统证书,所以还需要将用户证书移动成系统证书,否则可能导致https抓包失败)


  • 这个移动上面的用户证书,这里借助Magisk的Move Certificates模块来移动证书,模块下载安装好后会重启手机,重启手机后会自动将证书移动到系统下



  • 上面介绍的Android是代理的方式抓包的,这里更推荐选择设置Vpn抓包的方式来替代,此时需要依赖Postern代理工具,下载Postern代理工具,第一步添加代理服务器,然后按如下设置,注意注意代理的方式抓包和vpn的设置抓包二选一,使用vpn的方式抓包,则需关掉代理的方式抓包,参考文章

    然后配置规则,按如下设置

    然后关闭再打开VPN,然后charles就可以正常抓包了

  • 当上面的都设置好后,我们打开一个app,看charles抓包情况,https正常抓包,开心,结束

2、Charles抓包原理

  • osi七层参考模型了解

  • 首先Charles运行在自己的PC上:Charles运行的时候会在PC的8888端口开启一个代理服务,这个服务实际上是一个HTTP/HTTPS的代理
  • 确保手机和PC在同一个局域网内:我们可以使用手机模拟器(如夜神)通过虚拟网络连接,也可以使用手机真机和PC通过无线网络连接,
  • 设置手机代理为Charles的代理地址:这样手机访问互联网的数据包就会流经Charles,Charles再转发这些数据包到真实的服务器,服务器返回的数据包再由Charles转发回手机,Charles就起到中间人的作用,所有流量包都可以捕捉到,因此所有HTTP请求和响应都可以捕获到,同时Charles还有权力对请求和响应进行修改,而这一过程称为代理的方式抓包,也就是在上图的应用层,代理方式的抓包在最上层(应用层)易被检测到
  • 另一种方法:使用vpn方式抓包,运行在网络层,更加底层,可以捕获到更多的上层流量,常常借助Postern代理工具,可以将http请求转为socket(socket在会话层,也是底层一些,可以捕获到更多的上层流量),并且包转发到Charles上,这样就可以抓到更多的包

3、Charles抓包步骤

  • 以京东app为例,通过Charles抓取App运行过程中的网络数据包,然后查看具体的Request和Rseponse内容,以此来了解Charles的用法

  • (1) 初始状态,监听按钮红色显示打开,灰色是关闭;

  • (2) Charles监听手机发生的网络数据包,捕获到的数据包显式在左侧,随着时间的推移,捕获到的数据包会越来越多,左侧列表内容也会越来越多;点击左侧条目,右侧显示请求的详细信息;

  • (3)操作:打开手机京东,打开一个商品,查看评论,并不断上拉加载评论;这时左侧api.m.jd.com链接不停闪动,展开查看里面条目详情,切换到Contents选项卡,可以在CommentData字段里面查看到评论内容;

  • (4)操作:这时可以确定,此请求对应的接口就是获取商品评论的接口,这样我们就成功的捕获到了在上拉刷新过程中发生的请求和响应内容;

4、Charles抓包分析

  • 在Overview选项卡中,显示 请求接口的URL,响应状态,以及请求方式Method,由于是POST请求,还需要切换到Contents选项卡中Form表单查看详细信息;
  • 这样我们就成功抓取App中的评论接口请求和响应,并且可以查看Response返回的JSON数据;

5、Charles重发请求

  • Charles可以将捕获到的请求加以修改并发送修改后的请求。点击修改按钮可进行修改;
  • 有了这个功能,我们就可以使用Charles来做调试,通过修改参数、接口等来测试不同请求的响应状态,就可以发现参数有哪些规律,最后的到最简单的接口和参数形式供程序模拟调用使用。

抓包工具_Charles使用相关推荐

  1. 安卓手机抓包charles乱码_charles抓包工具的中文乱码解决方法

    charles是 MAC上最好用的抓包工具.charles 网上的参考文档已经很多,我就不再赘述啦.只是说说我在安装过程遇到的问题和解决方法,仅供参考. charles抓包的数据中的中文内容显示乱码, ...

  2. Linux抓包工具tcpdump详解

    原文链接 tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具. ...

  3. python抓包工具_「docker实战篇」python的docker爬虫技术-fiddler抓包软件详细配置(七)...

    挑选常用的功能给各位老铁介绍下. fiddler第一次进入fiddlerfiddler会请求fiddler的官网,检查更新操作布局分布 工具栏File -capture traffic开启爬虫File ...

  4. Fiddler抓包工具总结(转)

    序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的 ...

  5. Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但 ...

  6. Charles是mac的iddler抓包工具

    windows下面我们经常使用 Fiddler 抓包工具进行代理等一系列操作.然而,在 Mac 下 http://en.softonic.com/s/java-se-6:mac

  7. MySQL抓包工具:MySQL Sniffer

    简介 MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQLServer 端的请求,并格式化输出.输出内容包访问括时间.访问用户.来源 IP.访问 Database. ...

  8. 抓包工具tcpdump及分析工具wireshark

    一.抓包工具tcpdump tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问 ...

  9. charles 安装 ssl_前端开发如何使用抓包工具 charles

    抓包工具 https://www.charlesproxy.com/latest-release/download.do charles 官网 一. 安装 1. 下载 (自行根据系统下载对应软件) 打 ...

  10. mac下的抓包工具Charles

    2019独角兽企业重金招聘Python工程师标准>>> 在mac下面,居然没有好的抓包工具,这让我十分纠结,毕竟不可能为了抓一个http包就跑到win下折腾.或许有人说tcpdump ...

最新文章

  1. java判断两个int相等_Java 判断两个变量是否相等
  2. mac connect to host localhost port 22: Connection refused
  3. Google V8 编译方法(visual c++ 2008 express)(学习+原创)
  4. RESTful Web 服务 - 无状态
  5. mysqld与mysqld_safe的区别
  6. js \n直接显示字符串_显示N个字符的最短时间
  7. profile 安卓work_androidWorkProfileGeneralDeviceConfiguration 资源类型
  8. 鸿蒙应用开发--事件
  9. linux代理破盾cc,Linux使用CCKiller防御少量IP高并发CC攻击(防刷站) - Late Winter
  10. 昨晚调试一段PHP程序时遇到的三个问题
  11. shell中set的用法(转)
  12. 实现虚拟机VMware上Centos操作系统与主机windows之间互相复制与粘贴
  13. Cloudera迁移scm数据库
  14. 代理应用好文两篇(1)
  15. 【备忘录】transformers tokenizer.tokenize和tokenizer.encode
  16. 同时买票是怎么实现的_候补购票和抢票有什么不同 候补购票和抢票能同时进行吗...
  17. STM32通过I2C接口实现温湿度(AHT20)的采集与OLED显示及显示姓名学号
  18. 曾有一个人,爱我如生命(2)
  19. linux中'.'的作用
  20. 吴宗宪的35个BT经典台词

热门文章

  1. windows下7z文件解压
  2. 网站被黑检测-网页挂马及暗链检测
  3. Sentence2vec
  4. BP 神经网络用于模式分类
  5. 已刷高格固件的路由器如何更换为潘多拉固件
  6. 2021最新抖音H5电玩城游戏平台多玩法模式全套源码
  7. 软件测试中的缺陷分析与管理
  8. MYSQL入门(一)
  9. 分享一些查询资源的网站
  10. linux打开计算器命令,linux命令行计算器