安卓+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++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
幼儿园老大*6 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
考试宝6 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
momo_aa12 小时前
mac找到主目录下的文件夹
经验分享
天行健PLUS18 小时前
【经验分享】六西格玛管理培训适合哪些人参加?
经验分享
小奥超人19 小时前
PPT文件设置了修改权限,如何取消权?
windows·经验分享·microsoft·ppt·办公技巧
Jack黄从零学c++1 天前
C++ 的异常处理详解
c++·经验分享
做网站建设制作设计小程序推广1 天前
如何建购物网站提升用户体验
经验分享
程思扬1 天前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
白狐欧莱雅1 天前
使用python中的pygame简单实现飞机大战游戏
经验分享·python·游戏·pygame