安卓+charles实现抓包(主要解决证书网站无法打开问题)

安装

官网下载

https://www.charlesproxy.com/latest-release/download.do

使用介绍

Charles介绍

上面链接看一至三即可

初步代理配置

如何获取代理服务器IP和手机端IP

代理服务器IP

点击help,选中ssl 代理,点击在移动设备或远程浏览器上安装Charles root 证书

弹出弹框

手机端IP

具体步骤

下载好charles后,接下来步骤点击下面这个链接,跟着"3.Charles代理"至"4.1 Web 抓取HTTPS协议"的步骤走,其中3.2步骤Access Control Settings添加手机端IP

Charles安装,配置以及使用教程,适合小白

注意在4.1(2)步,的时候

这里port改为*

关于下载证书

为什么下载charles的ssl证书

会显示<unknown>

默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书,来获取里面的数据

完美步骤

打开手机,找到设置,连接同一局域下的网络,找到代理,选择手动,输入主机名和端口号,保存

手机浏览器访问网页,输入chls.pro/ssl,出现证书安装页面,点击下载

下载完成后找到设置在安装证书里面进行证书的安

Charles会弹出弹框

最后在手机上进行点击,就可以在Charles进行抓包

主要问题:手机端http://chls.pro/ssl无法点开

常见无效解决方案

尝试一:

安卓手机chls.pro/ssl无法下载(使用charles)

这个解决方案就是让你检查网络,或者重做上面的步骤,尤其是在Proxy--Access Control Settings中添加:0.0.0.0/0然后重启手机,很多文章都这么指导,但并不能解决问题

尝试二:

ios 配置了代理且使用 chls.pro/ssl 下载不了证书,无法弹出下载证书的提示

这个解决方案就是让你换个下载证书的网站,证书网址:https://www.charlesproxy.com/assets/legacy-ssl/charles.crt

但是下载的证书安装后没有用

尝试三:

charles问题,chls.pro/ssl 证书无法在小米手机下载 ?(最详细的解决方案,其他手机也可以适用)

这个解决方案有点意思,但是还是没用。它是让你在电脑上打开http://chls.pro/ssl下载.pem文件,把.pem改成.ctr文件,修改后缀名传到手机上(用数据线连接手机,右键该文件,选择"发送到";手机这边:设置,搜索"证书",点击CA证书,点击左栏xiaomi 12,找到crt证书),但是chls.pro/ssl这个网站电脑手机都打开不了

有效解决方案

前提:需要一个有root权限的手机(往system目录导入文件),手机可以直接刷root的包

下载证书或者导出证书

在全英文路径中,新建一个名叫charles的文件夹

打开charles->Help->SSL Proxying->Save Charles Root Certificate...,将证书保存成pem的格式

选择刚刚创建的charles文件夹,然后同路径下会出现一个charles.pem

计算证书hash值并修改证书名称

使用下面的指令获取证书文件的hash值,图中0fd5834就是计算出来的hash值,将charels.pem修改成"hash值.0",如0fd5834.0

openssl x509 -subject_hash_old -in <charles.pem的绝对路径>

注:若"提示'openssl' 不是内部或外部命令,也不是可运行的程序",需先安装openSSL,配置环境变量

openSSL下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

配置完后需要重启电脑

将证书导入/system/etc/security/cacerts/

因为导入system目录,需要remount一下。

adb root

adb remount

adb push C:\Users\xiaomi\Downloads\charles.pem /system/etc/security/cacerts/

导入后可以在cacerts目录下找到刚刚导入的文件

注:若提示"只有阅读权限(类似描述)",则进行以下操作:

1、cmd输入cd

2、cmd 输入adb shell,然后输入su

3、cmd 输入 cd /system/etc/security, 然后输入ls -l, 可以看到cacerts目录只有读与执行权限,并没有写入的权限

4、cmd输入chmod 777 cacerts,要求加入写权限

(若被提示Read-only file system,需要重新挂载系统)

检查手机中是否安装证书

在输入adb shell->su指令之后,cd /system/etc/security/cacerts,然后输入ls查看手机当前证书

也可以在手机"设置-安全-更多安全设置-更多安全设置-加密与凭据-信任的凭据-系统",看看最后面是有有了新添加的证书,但是这个难翻到

备注:如果文件push不进去,可以拷贝到手机里,给文件添加一下权限(chmod 777 0fd58c34.0),然后再mv

charles模拟弱网环境

https://www.cnblogs.com/lixuefang69/p/14210647.html

相关推荐
星迹日4 小时前
C语言:联合和枚举
c语言·开发语言·经验分享·笔记
shuxianshrng6 小时前
大气网格化精细化监管监测系统
大数据·服务器·windows·经验分享
小米里的大麦7 小时前
【C++】深入理解引用:从基础到进阶详解
c++·经验分享·笔记·引用·引用和指针
天行健王春城老师8 小时前
六西格玛绿带培训多少钱?从授“鱼”到授“渔”
经验分享
Filotimo_9 小时前
【自然语言处理】实验三:新冠病毒的FAQ问答系统
人工智能·经验分享·笔记·python·学习·自然语言处理·pycharm
paixiaoxin11 小时前
学术新手进阶:Zotero插件全解锁,打造你的高效研究体验
人工智能·经验分享·笔记·机器学习·学习方法·zotero
万河归海42814 小时前
C语言——二分法搜索数组中特定元素并返回下标
c语言·开发语言·数据结构·经验分享·笔记·算法·visualstudio
真正的能量来自内心16 小时前
如何删除EXCELL文件中的空行?
经验分享
重生之我在20年代敲代码20 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
铁匠匠匠1 天前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计