Charles 移动设备抓包

技术Charles 移动设备抓包 Charles 移动设备抓包Charles 移动设备抓包(转载)
除了最常见的网页爬虫,还有一种是针对客户端软件的爬虫。前者使用范围广泛,对后者的数据采集需求越来越大。

查尔斯移动设备抓包

Charles 移动设备抓包(转载)

除了最常见的网络爬虫,还有另一个客户端软件的爬虫。前者应用广泛,后者的数据采集需求不断增加。潜水多年的小白首次发帖。如果内容不恰当,请随意更正。

常见客户端:

个人电脑(视窗、苹果、Linux)、安卓、IOS

抓包工具:

支持的平台:Windows、macOS、Linux

以下内容基于本软件。

需求分析:

想批量或自动获取某平台客户端的一些数据。为了满足我们的需求,我们需要使用网络包捕获工具。众所周知,网络协议层的几乎每一层都有相应的数据包捕获工具。现在最常用的协议是https和http。

HTTP 协议抓包:

Http协议不包含SSL,只需要配置网络代理{filter}机制来捕获数据包,而https需要安装证书并信任证书来捕获数据包,否则红色显示的未知无法解析。

HTTPS 协议抓包:

https协议需要在配置网络代理{pass} {filter}原则的前提下安装证书,系统必须信任安装的证书才能捕获https协议。

Charles 快速上手:

主界面:

常用功能菜单:

常用功能菜单,顾名思义,这两个菜单是经常使用的。在这里,我们先做一些解释:

Proxy:

开始记录:开始捕获网络流量,对应主界面的红点图标。

Start Throttling :进入低速网络模式,对应主界面的乌龟图标。

检查macOS Porxy :时,Charles处理macOS的网络流量。

代理设置:配置HTTP代理{pass} {filter}端口,这是为同一局域网中的设备安装证书或设置代理{pass} {filter}端口时所需要的。常见的设置是8888。还有一些与HTTP和SOCKS相关的设置。

SSL端口设置:配置是否启用SSL。启用时,应配置HOST和PORT。选中时,它处于活动状态。当主机和端口未知时,可以将主机和端口设置为*(星号),这样可以捕获http和https的所有流量。

Help —— SSL Porxying:

安装Charles根证书:将证书安装到macOS系统中。

在移动设备或远程浏览器:上安装Charles根证书,为同一局域网中的其他设备安装Charles证书。

保存查尔斯根证书:在本地保存查尔斯证书。有两种类型的文件可用。建议选择。PEM,方便安卓设备以后导入证书。

安装 Charles 证书

macOS :

在Charles主界面点击帮助—— SSL porxying 3354安装Charles根证书,默认安装即可完成安装。

如前所述,安装后,系统需要信任该证书。具体来说,在所有程序中找到钥匙串,访问左栏底部的——,点击证书——,双击查尔斯代理CA3354进行信任。所有选项都可以设置为始终信任。您可以成功打开HTTPS协议的捕获。

IOS :

单击帮助—— SSL端口3354在移动设备或远程浏览器上安装Charles根证书,然后“配置您的设备”.将出现“http pro”。在192.168.1.6:8888上,然后浏览到chls.pro/ssl' 8888这里是在代理设置——中设置的。

或者手机的其他设备应该和抓包主机连接到同一个局域网(网络频段也有影响),打开设置——无线局域网3354,点击抓包主机所在局域网内的Wi-Fi,拉到底部—— HTTP代{over} {filter} 3354配置代{ over } { filter } 3354手动3354服务器填写之前的192.168。

回到主界面,打开Safari浏览器,在地址栏输入上一个chl。

s.pro/ssl 打开。Charles 会弹出是否允许连接,点击 Allow 。手机上允许下载一个配置描述文件,下载完成后关闭。

  • 手机打开设置 —— 通用 —— 拉到底部找到 描述文件 打开 —— 点击 Charles Proxy CA(……)—— 右上角安装 —— 输入密码再次安装 —— 完成后拉到上面找到 关于本机 进入 —— 拉到底部找到 证书信任设置 进入 —— 打开 针对根证书启用完全信任。
  • 完成以上步骤后,即可抓取 IOS 客户端数据。
  • Android:

    自 Android 7.0 以后无法信任第三方根证书,抓取第三方 app 数据时,现有方法几乎都需要 Root 设备,自行考虑风险。还可以使用 Android 模拟器来抓取数据,但是模拟器的信息不是很完整,容易被客户端app后台所识别出来,比较费力不讨好。现有的几种 Root 后抓取 HPPTS 的方法我都尝试过:

    使用 Xposed edxposed 模块,在安装了 Xposed Edxposed 框架的前提下,再安装TrustMeAlready模块并激活(经测试,部分系统 Android 10 ,部分软件无法使用,比如X信小程序);

    安装 VirtualXposed ,再安装TrustMeAlready模块并激活,因为 VirtualXposed 较容易被第三方app识别,从而禁止使用,优势是不需要root ;

    Root 后将 Charles 根证书导入并信任根证书,这个办法其实是将 Charles 根证书转换后放到 Android 系统根目录内。

    1. Charles 主界面点击help —— SSL Porxying ——Save Charles Root Certificate ,选择保存为 .pem 文件,以下只讲这种文件的转换方法。.cer 文件转换方法请自行寻找,欢迎交流。

    2. 保存好 .pem 文件后,macOS 需要安装 openssl ,然后打开 终端app —— 输入 openssl x509 -subject_hash_old -in Charles根证书文件.pem 回车结果如下,圈起来的这串字符很重要: d2479ff1

    3. 上一步完成后,将下载的 charles-proxy-ssl-proxying-certificate.pem 重命名为 d2479ff1.0 ,将 d2479ff1.0 文件放到手机内。

    4. 手机端安装 MT文件管理器 ,打开授予 root 权限,使用 MT文件管理器复制到 /system/etc/security/cacerts/ 文件夹内,重启手机,在设置内搜索 加密与凭据—— 打开后找到 信任的凭据 打开 —— 在系统部分可以找到 详细信息为 Charles Proxy CA (……) 的证书,代表成功导入证书到系统中。 可使用 Charles 抓取 HTTPS 协议。

  • 利用 Magisk 导入证书

    自 Android O(8.0)以来,即使是获取了 root 权限,也很难修改系统分区文件,无法进行读写。且当下手机 root 方式都是利用Magisk修补 boot ,Magisk 还可以利用旁载的方式加载各种自定义模块,包括且不限于修改、替换系统文件。那么在这里我们可以根据上文所诉,创建一个 Magisk 补丁包,用以导入证书文件到根目录。
    首先还是需要安装Charles以及 OpenSSL( Windows 推荐使用choco install openssl 命令安装,需使用带管理员权限的 powershell )

    导出证书文件

    依次点击 charles - help - SSL Proxying - Save Charles Root …… 选择位置导出 Charles 证书文件

    转换证书文件

    命令行切换到证书所在文件夹,运行:


    openssl x509 -subject_hash_old -in 证书文件.pem

    将证书文件改名为 d2479ff1.0 (以上文为例,后缀为 .0 )

    创建 Magisk 模块

    首先需要 Magisk 模块模板 magisk-module-template ,解压后文件列表为:


    └─magisk-module-template-master │customize.sh │module.prop │post-fs-data.sh │README.md │service.sh │system.prop │ ├─META-INF │└─com │ └─google │ └─android │ update-binary │ updater-script │ └─system #内部文件夹为自建 └─etc └─security └─cacerts

    上图详细文件说明详见Developer Guides这里我们关注 system 文件夹及子文件夹即可。模板文件是仅有 system 而没有其子文件夹的,system/etc/security/cacerts/ 刚好对应着我们本来要放证书的地方,即系统证书所在目录.此时将我们的证书文件放到 cacerts 文件夹内,将整个文件夹压缩为 zip 文件,放入手机内,在 Magisk 内刷入即可,验证方式如上。

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/136283.html

    (0)

    相关推荐

    • mysql数据库的类型是什么

      技术mysql数据库的类型是什么本篇内容介绍了“mysql数据库的类型是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

      攻略 2021年12月2日
    • 四个象限口诀,三角函数的平方奇偶性的判断口诀

      技术四个象限口诀,三角函数的平方奇偶性的判断口诀“奇四个象限口诀、偶”指的是π/2的倍数的奇偶,“变与不变”指的是三角函数的名称的变化:“变”是指正弦变余弦,正切变余切。(反之亦然成立)“符号看象限”的含义是:把角α看做

      生活 2021年10月29日
    • ace什么意思,女团中的ACE是什么意思

      技术ace什么意思,女团中的ACE是什么意思ACE不知道吗?没玩过英雄联盟和王者荣耀吗,还是你们从来没有ACE过对面,而放到女团中,就是能把队友团灭的人ace什么意思。而换一种说法就是,对团队做出的贡献最大,并且拥有最大

      生活 2021年10月30日
    • 别人夸你优秀神回复,朋友夸我有才我怎么回复

      技术别人夸你优秀神回复,朋友夸我有才我怎么回复被别人夸奖别人夸你优秀神回复,怎样回答才显示出我们的高情商呢,我总结了下面五种回应方式仅供参考。
      1、以接受来回应
      如果别人夸你,而你又不知道怎么去回应的话,起码要接受并感谢

      生活 2021年10月21日
    • 如何连接Flex数据库行

      技术如何连接Flex数据库行这篇文章主要介绍如何连接Flex数据库行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex应用程序并不直接与一个Flex数据库进行连接,所以你需要使用某种类型的服务

      攻略 2021年12月9日
    • BBFT和FBFT/hot tuff有什么区别?

      技术BBFT与FBFT/HotStuff的区别有哪些本篇内容介绍了“BBFT与FBFT/HotStuff的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这

      攻略 2021年12月20日