前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >抓包工具Charles

抓包工具Charles

作者头像
用户7798898
发布2020-09-27 16:53:37
9590
发布2020-09-27 16:53:37
举报

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。也用来检测网络安全。抓包也经常被用来进行数据截取等。对于iOS初学者来说,抓包主要是为了了解网络请求操作,解决没有专人提供网络接口进行练习的问题。可以抓取大量已经上架AppStore的App的网络请求,进行网络阶段的操作练习。

操作原理

关键的操作思想: 1. 构造一个中间人代理,它有能力完成TLS/SSL握手 2. 弄到一个根证书,并用它生成签名认证的代理服务器证书

Charles就是一个理想的中间人,它支持SSL握手,可以自动根据根证书生成一个签名的服务器证书,并且它的官网为我们提供了一个根证书。
  我们要做的就是在客户端安装好这个根证书,然后让我们的操作系统信任它。对App来说,需要设法在IOS或Android上装上这个官网提供的根证书。
  完成上述步骤后,App再指定Charles为它的代理服务器,这时,App请求的服务器证书就是Charles自动生成的代理服务器证书。如果Charles的根证书已被信任,这个自动生成的代理服务器证书是有效的,使用它App和Charles的TLS握手可以顺利完成。

一. 软件的安装

1. 下载

下载地址: http://www.pc6.com/mac/137987.html

官网下载地址: https://www.charlesproxy.com/download/ 这个地址下载速度很慢

2. 激活

  1) 左侧“mac下载”下载应用后,打开Charles,在上方菜单栏的“Help”选择“Register Charles”

2)第一步后,会弹出一个Charles for Mac注册界面.

3)回到解压后的“Charles428”应用文件夹,打开其中的“keygen.jar”(需要安装java才可运行keygen.jar)

Charles for Mac
Charles for Mac

  4)在运行后的“keygen.jar”上输入“orsoon”然后点击“Generate”生成Charles注册码

Charles Mac
Charles Mac

  5)然后将生成的charles注册码复制到注册界面的对应位置上,再点击“Register”。

Charles for Mac
Charles for Mac

  6)到这里就可以开始免费使用Charles了。

3. pc端根证书安装

  1) 菜单 Help->ssl proxying

  依次点击

  1. 点击Install Charles Root Certificate, 安装证书

`   双击证书, 设置为收信任

4. 在手机上安装Charles的根证书:

    打开help -> Charles Root Certificate on a Mobile Device or Remote Browser,会出现如图

以IOS为例,在Safri上打开Charles的根证书下载网址: chls.pro/ssl 。 顺利的话会出现这样的画面,继续点安装,一路点确定。然后去设置里的描述文件管理如果看到有绿色的勾勾就说明安装成功了。

    如果不能下载,检查手机是否正确设置了代理,Charles是否已经打开并配置正确。

    接下来,在设置->通用->关于本机->证书信任设置 刚刚安装的证书的开关打开信任就可以抓加密包了。

二. 手机端设置

  1.确保iOS设备iphone或ipad与运行Charles的mac电脑处于同一个wifi环境下。

  2.查看mac的IP地址,系统偏好设置->网络->wifi->高级->TCP/IP就看到了。

3.打开iOS设备,这里以iphone为例,设置手机网络操作由mac来负责。

PS:不抓包时,把HTTP代理设置为关闭,否则你的手机无法上网。

  4.第三步完成后,正常情况下,Mac上会弹出以下提示框,表示Charles软件检测到可供检测的设备。两个按钮选项:Allow 允许 , Deny拒绝。当然我们要选择允许了。

三. 实战

随便点开一个App,抓去它的请求。

2.首先让我们先点下扫帚图标,清空之前记录。

3.在手机上使用下拉刷新操作,观察Charles反应,可以看到网络请求的地址和类型等数据。

四. 处理content乱码的问题

代理成功, 但是请求的Contents会有乱码

1. 确认证书已经设置为收信人

点进去之后,出现如下图:

我这边是已经配好了,若是没配置好的,图中“此证书具有自定信任设置”其实是红色告警,配置,很简单,只要双击图中选中一行,出现如下图:

打开“信任”一栏,在“加密套接字协议层(SSL)”一栏选择始终信任,关闭保存即可。 2.打开Charles,上方菜单栏 —-》Proxy —-》SSL Proxy Settings —-》Add,如图:

Host:填*表示所有网站都抓 Port:443 点击OK,就不再乱码了,亲测。

记录一个大坑

我想要在app上抓包, 但是其他app都没问题, 只有这个app抓包不行, 表现是:

放开ssl proxying *.443就可以. 但问题是, https的请求乱码

加上ssl proxying就直接访问不了了. 提示网络连接异常.

搞了2天, 终于把这个东西整出来.

跳过首页, 不要给首页的域名加ssl proxying. 进入到首页以后的其他域名都是可以访问的.

参考资料:

1. https://www.jianshu.com/p/633ac6221028

2. https://www.jianshu.com/p/7a88617ce80b

3. https://blog.csdn.net/a327369238/article/details/52856833

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作原理
  • 一. 软件的安装
    • 1. 下载
      • 2. 激活
        • 3. pc端根证书安装
          • 4. 在手机上安装Charles的根证书:
          • 二. 手机端设置
          • 三. 实战
          • 四. 处理content乱码的问题
          • 记录一个大坑
          相关产品与服务
          SSL 证书
          腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档