使用Charles对安卓手机抓包(不需要adb)

打印 上一主题 下一主题

主题 945|帖子 945|积分 2837

在互联网开发与测试中,接口抓包是一项非常重要的技能。通过抓包工具,我们可以捕获设备与服务器之间的通信数据,从而分析接口哀求、响应内容以及排查题目。本文将详细先容如何使用 Charles 抓包工具对安卓手机进行抓包操纵。
一、什么是抓包工具?

抓包工具是一种用于捕获和分析网络流量的软件。它可以资助开发者和测试人员查看 HTTP/HTTPS 哀求和响应的详细内容,包括 URL、哀求头、哀求体、响应头和响应体等信息。常见的抓包工具有 CharlesFiddler,此中 Charles 因其界面友好、功能强盛而受到广泛接待。
二、准备工作

1. 下载并安装 Charles



  • 官网下载地点:Download a Free Trial of Charles • Charles Web Debugging Proxy
  • 安装完成后打开 Charles,并按照以下步调激活:

    • 打开 Charles 菜单栏 Help -> Register Charles。
    • 在弹出的窗口中填入 Registered Name 和 License Key(可以通过 激活网址 获取)。
    • 点击 Register 按钮完成激活。


     
2. 安装安卓模仿器(可选)

如果没有实体安卓手机,可以使用安卓模仿器进行抓包测试。推荐使用网易 MuMu 模仿器,因为它兼容性好且支持 Windows 的 WSL 情况。


  • MuMu 模仿器下载地点:MuMu模仿器官网_安卓12模仿器_网易手游模仿器

三、 Charles 证书

1. 安装证书

打开 Charles,在菜单栏中依次点击 "Help→SSL Proxying",点击 “Install Charles Root Certificate”,这时系统会弹出安装证书的提示,按照提示一步步完成证书安装,并确保在系统中信托该证书



2. 导出证书

打开 Charles,在菜单栏中依次点击 "Help→SSL Proxying",点击 “Save Charles Root Certificate”,将证书生存为.pem文件并放到目录


在 Android 6 之前, 手机系统既信托系统内置的证书, 也信托用户本身安装的证书, 但是在 Android 7 之后,却发生了厘革, 手机系统只信托系统内置的根证书。以是需要借助 openssl 工具将其转换为系统根证书,执行命令:
  1. openssl x509 -subject_hash_old -in 证书名
复制代码

执行命令后将 Charles.pem 文件重定名为 54ece10c.0 (54ece10c需要根据本身生成的结果进行定名) 
四、手机抓包

1. 开启模仿器root及磁盘读写权限



2. 将证书导入安卓设备

转换后的54ece10c.0证书,需存放到安卓设备指定目录,这里我们借助模仿器自带 Root Explorer 工具(不需要使用adb)
首先,将证书文件复制到安卓设备可访问的存储位置(比如通过 USB 传输得手机存储根目录)
然后打开 Root Explorer,找到 “/system/etc/security/cacerts” 目录,将证书文件复制进去。要留意的是,此操纵可能需要设备已获取 Root 权限,否则无法将文件复制到该系统目录。
复制证书

粘贴到“/system/etc/security/cacerts” 目录



3. 设置手机署理

为了让安卓设备的网络流量通过 Charles 进行署理,需要配置设备的网络署理。
步调:

  • 获取 Charles 的 IP 地点

    • 在 Charles 中点击菜单栏 Proxy -> Proxy Settings,记录下本地 IP 地点(如 192.168.1.100)
    • 默认端口号为 8888


  • 设置安卓设备署理

    • 打开安卓设备的 Wi-Fi 设置,选择当前连接的 Wi-Fi。
    • 长按 Wi-Fi 名称,选择“修改网络”。
    • 勾选“显示高级选项”,将署理设置为“手动”。
    • 输入 Charles 的 IP 地点和端口号(如 192.168.1.100:8888)


4. 开始抓包

完成上述配置后,安卓设备的全部网络流量都会通过 Charles 进行署理。此时,你可以在 Charles 的界面中看到抓取到的哀求和响应数据。
留意事项:


  • 如果需要抓取 HTTPS 数据,需确保 Charles 的 SSL 署理功能已启用:

    • 打开 Charles 菜单栏 Proxy -> SSL Proxying Settings。
    • 添加需要抓包的域名(如 *.example.com)。



五、常见题目及解决方法


  • 无法抓取 HTTPS 数据

    • 确保安卓设备已正确安装 Charles 证书。
    • 确保 Charles 的 SSL 署理功能已启用。

  • 安卓设备无法连接到 Charles

    • 查抄 Charles 的 IP 地点是否正确。
    • 确保安卓设备与电脑在同一局域网内。
    • 在Proxy -> Access Control Settings允许安卓IP访问

  • 抓包数据不完备

    • 确保 Charles 的过滤规则未屏蔽目的域名。
    • 查抄设备的网络署理设置是否正确。



六、总结

通过本文的学习,你应该已经掌握了如何使用 Charles 对安卓手机进行抓包的根本流程。抓包工具是每一位开发者和测试人员的必备技能,希望这篇文章能资助你更好地明白和使用 Charles!
参考文章
MuMu模仿器Charles抓包教程_MuMu模仿器_安卓模仿器

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表