当前位置: 首页 > news >正文

使用Charles抓包Android App数据

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/

抓包环境准备

1. 下载安装charles

charles下载地址:https://www.charlesproxy.com/latest-release/download.do
image.png

2. SSL代理设置

截图.png

截图.png

3. http代理和socks代理配置

截图.png

4. 设置Charles与Clash共存

如果开启了Clash,需要设置Charles与Clash共存

打开扩展代理设置
image.png

分别点击 Web Proxy、Seure Web Proxy 和 SOCKS Proxy 设置一下Clash的地址和端口
截图.png

5. 共享热点

通过 ipconfg 或者打开【网络和Internet】找到电脑的 ip 地址
image.png

电脑开启共享热点,手机连接热点并设置代理
screenshot.png

6. 安装证书

手机端访问 http://chls.pro/ssl 安装证书
截图.png

截图.png

下载并保存Charlles证书
image.png

Android 7.0 之后抓取HTTPS数据出现unknown 和证书无效的解决方案

image.png

1. 保存Charles证书

截图.png
image.png

2. 计算证书的Hash值

下载安装 OpenSSL:https://slproweb.com/products/Win32OpenSSL.html

计算证书的Hash值

cd D:\App\OpenSSL-Win64\bin./openssl x509 -inform PEM -subject_hash_old -in E:\charles.pem

比如这里得到的hash值为e4473cf9,把证书的文件名改为 e4473cf9.0
image.png

3. 安装证书到系统证书目录

把证书 push 到 /system/etc/security/cacerts(系统证书目录)


# 把证书 push 到 sdcard
adb push E:\e4473cf9.0  /sdcard/e4473cf9.0# 获取超级管理员权限
adb root# 进入adb shell
adb shell# 挂载 /system 为可写
mount -o remount,rw /system
# 或
mount -o remount,rw /# 把 sdcard 下面的证书移动到 
/system/etc/security/cacerts
mv /sdcard/e4473cf9.0 /system/etc/security/cacerts/e4473cf9.0# 进入 /system/etc/security/cacerts 目录 ls 一下检查是否有刚添加的证书文件
cd /system/etc/security/cacerts
ls  # 重启手机让证书生效
reboot

手机设置中打开【信任的凭据】【系统】可以看到已经有charles的证书了
1727085677011.jpg

4. 测试

再重新抓包 app 数据,可以看到已经能正常显示 https 数据了
image.png

参考:

  • (亲测完全可行)charles抓包夜神模拟器保姆级教程

  • Android 7.0以上Burpsuite无法抓取HTTPS包?

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PCIe进阶之TL:Completion Rules TLP Prefix Rules
  • Linux(Centos7)系统下给已有分区进行扩容
  • CMake教程(七):添加系统检查
  • Linux bash脚本本地开发环境(Git Bash)配置
  • 聊一聊站在对方的立场去阐述问题
  • SVN笔记-SVN安装
  • 动手学深度学习9.1. 门控循环单元(GRU)-笔记练习(PyTorch)
  • 比亚迪技术面试(测试、测开)
  • 服务监控插件全览:提升微服务可观测性的利器
  • 计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-22
  • 【LTW】Domain General Face Forgery Detection by Learning to Weight
  • 如何用 HAproxy 实施高可用部署 | OceanBase 实践
  • NLP 文本分类任务核心梳理
  • 握手传输 状态机序列检测(记忆科技笔试题)_2024年9月2日
  • 仪表放大器AD620
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • DataBase in Android
  • in typeof instanceof ===这些运算符有什么作用
  • Invalidate和postInvalidate的区别
  • Java程序员幽默爆笑锦集
  • laravel with 查询列表限制条数
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python打包系统简单入门
  • SpingCloudBus整合RabbitMQ
  • spring boot下thymeleaf全局静态变量配置
  • swift基础之_对象 实例方法 对象方法。
  • Vue2 SSR 的优化之旅
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 包装类对象
  • 对象引论
  • 构建二叉树进行数值数组的去重及优化
  • 技术:超级实用的电脑小技巧
  • 京东美团研发面经
  • 聊聊directory traversal attack
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 区块链将重新定义世界
  • 学习HTTP相关知识笔记
  • 责任链模式的两种实现
  • 终端用户监控:真实用户监控还是模拟监控?
  • ionic入门之数据绑定显示-1
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​Python 3 新特性:类型注解
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 数论-逆元
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $GOPATH/go.mod exists but should not goland
  • (5)STL算法之复制
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (7)svelte 教程: Props(属性)
  • (LeetCode 49)Anagrams
  • (第30天)二叉树阶段总结
  • (分类)KNN算法- 参数调优