目录

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

1、Charles准备工作
  • Charles是一种抓包工具,和fiddler、mitmproxy功能差不多,既可以抓包网页的数据,也可以抓包app的数据
  • 下载Charles,一路next即可安装完成。Charles激活,将生成的激活码复制下来,在 charles 的help》Registered输入版本号和key值就可以激活
  • charles抓到的包乱码 charles抓包工具怎么用_抓包

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

  • charles抓到的包乱码 charles抓包工具怎么用_charles抓到的包乱码_03

  • 设置Proxy代理: 这里proxy的端口是8888, socket的端口是8889,也可以修改其它的,则相应的app端设置也需要保持端口号一致
  • charles抓到的包乱码 charles抓包工具怎么用_抓包_04

  • charles抓到的包乱码 charles抓包工具怎么用_手机端_05

  • 配置SSL代理
  • charles抓到的包乱码 charles抓包工具怎么用_抓包_06

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

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

  • charles抓到的包乱码 charles抓包工具怎么用_手机端_09

  • charles抓到的包乱码 charles抓包工具怎么用_charles抓到的包乱码_10

  • 这个移动上面的用户证书,这里借助Magisk的Move Certificates模块来移动证书,模块下载安装好后会重启手机,重启手机后会自动将证书移动到系统下
  • charles抓到的包乱码 charles抓包工具怎么用_Android_11

  • charles抓到的包乱码 charles抓包工具怎么用_手机端_12

  • charles抓到的包乱码 charles抓包工具怎么用_抓包_13

  • charles抓到的包乱码 charles抓包工具怎么用_抓包_14

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

  • 然后配置规则,按如下设置
  • charles抓到的包乱码 charles抓包工具怎么用_Android_16

  • 然后关闭再打开VPN,然后charles就可以正常抓包了
  • charles抓到的包乱码 charles抓包工具怎么用_Android_17

  • 当上面的都设置好后,我们打开一个app,看charles抓包情况,https正常抓包,开心,结束
  • charles抓到的包乱码 charles抓包工具怎么用_charles抓到的包乱码_18

  • charles抓到的包乱码 charles抓包工具怎么用_charles抓到的包乱码_19

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) 初始状态,监听按钮红色显示打开,灰色是关闭;
  • charles抓到的包乱码 charles抓包工具怎么用_手机端_20

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

  • (3)操作:打开手机京东,打开一个商品,查看评论,并不断上拉加载评论;这时左侧api.m.jd.com链接不停闪动,展开查看里面条目详情,切换到Contents选项卡,可以在CommentData字段里面查看到评论内容;
  • (4)操作:这时可以确定,此请求对应的接口就是获取商品评论的接口,这样我们就成功的捕获到了在上拉刷新过程中发生的请求和响应内容;
  • charles抓到的包乱码 charles抓包工具怎么用_Android_22

4、Charles抓包分析
  • 在Overview选项卡中,显示 请求接口的URL,响应状态,以及请求方式Method,由于是POST请求,还需要切换到Contents选项卡中Form表单查看详细信息;
  • 这样我们就成功抓取App中的评论接口请求和响应,并且可以查看Response返回的JSON数据;
5、Charles重发请求
  • Charles可以将捕获到的请求加以修改并发送修改后的请求。点击修改按钮可进行修改;
  • 有了这个功能,我们就可以使用Charles来做调试,通过修改参数、接口等来测试不同请求的响应状态,就可以发现参数有哪些规律,最后的到最简单的接口和参数形式供程序模拟调用使用。