Charles安装及使用
  FsgwuGcQDKMv 2023年11月02日 51 0

 抓包(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”

Charles安装及使用_Charles

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

Charles安装及使用_Charles_02

 

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

Charles安装及使用_网络请求_03

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

Charles安装及使用_抓包_04

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

Charles安装及使用_Charles_05

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

 

3. pc端根证书安装

  1) 菜单 Help->ssl proxying

  

Charles安装及使用_代理服务器_06

 

  

Charles安装及使用_抓包_07

 

   依次点击

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

  

   

Charles安装及使用_抓包_08

 

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

    

Charles安装及使用_网络请求_09

   

  

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

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

    

Charles安装及使用_网络请求_10

         

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

 

   

Charles安装及使用_代理服务器_11

 

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


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

  二. 手机端设置

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

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

  

Charles安装及使用_网络请求_12

 

 

  

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

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

   

Charles安装及使用_代理服务器_13

 

 

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

  

Charles安装及使用_抓包_14

 

 

 

 

三. 实战

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

Charles安装及使用_网络请求_15

 

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

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

Charles安装及使用_抓包_16

 

四. 处理content乱码的问题

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

Charles安装及使用_抓包_17

 

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

Charles安装及使用_网络请求_18

 

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

Charles安装及使用_Charles_19

 

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

Charles安装及使用_Charles_20

 

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

Charles安装及使用_代理服务器_21

 

 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​

 



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  kqNbZfXd3HPf   2023年11月02日   56   0   0 服务端代理服务器sed
FsgwuGcQDKMv
作者其他文章 更多