安卓7.0以上手机使用charles代理抓取https数据

谷歌在安卓7.0修改了安全策略,用户添加的CA证书不能再用于安全连接,对于https传输的数据就抓取不到了,会显示<unknown>。

我的解决方法是将charles的CA证书安装进系统信任的证书目录下,这样在开启charles代理的时候,系统就会认为CA证书安全,从而可以获取https数据。

准备工作:

一台已root过的手机,我用的是小米5,开启开发者选项连接电脑。

下载charles证书,电脑端浏览器输入chls.pro/ssl即可下载,如果未下载也可以在charles>>help>>SSL Proxying>>Save Charles Root Certificate保存证书到本地文件夹

具体步骤:

1.重命名证书

安卓系统的安全证书在   /system/etc/security/cacerts/目录下,进入adb shell,打开目录就能看到这些证书文件,文件名是Hash值加数字后缀。后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1

用 “openssl x509 -subject_hash_old -in 证书名加后缀”计算出hash值,并将后缀设为0

修改后的文件为4fb5a349.0

2.将证书传到系统证书目录下

首先将文件4fb5a349.0 push到/sdcard/Download目录下(cmd 要进入文件目录下操作)

adb push 4fb5a349.0 /sdcard/Download

然后复制到/system/etc/security/cacerts/目录下

adb shell

su

cp /sdcard/Download/4fb5a349.0 /system/etc/security/cacerts/

如果出现//4fb5a349.0:Read-only file system这个警告,这是因为system文件为只读,需要将其挂载为可读写。

一般的解决方法是

mount -o rw,remount /system

修改system读写权限,然后再进行复制操作

如果修改了之后还是提示Read-only file system,还有方法

adb root

adb disable-verity

adb reboot #手机会重启,不用关闭cmd窗口,手机可能需要拔掉数据写重新连接

adb root

adb shell

mount -o rw,remount /system    #再次进行修改

然后就可以进行复制操作了。(我是遇到了这种情况,这个方法可行)

复制完之后输入reboot重启

3.测试

重启之后,小米手机打开设置-更多设置-系统安全-信任的凭据中可以看到安装的证书

然后通过设置charles代理就可以查看到https的数据了。

总结:

在抓取手机app数据的时候遇到了很多问题,查看了很多的博客资料,在此向他们提出感谢

https://www.codercto.com/a/58894.html

https://www.jianshu.com/p/f547b05a5335

https://www.jianshu.com/p/035f7d7a0f7e

https://blog.csdn.net/Nicolas_king/article/details/81122416

我抓取的是所在公司开发的app数据,爬虫仅仅作为测试而已。手机常用app的数据一般都是经过了加密,一些涉及个人隐私的数据爬取是违法的,所见即所得,否则即违法。

希望我的这篇文章能帮到大家,有任何意见还请不吝赐教。

原文地址:https://www.cnblogs.com/szj22233060/p/11393588.html

时间: 2024-08-28 08:15:47

安卓7.0以上手机使用charles代理抓取https数据的相关文章

Charles 如何抓取https数据包

Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.baidu.com的结果如下: 上图显示都是乱码,为了正常可以抓取到数据,我们需要通过以下配置: 抓包准备 安装Charles: 演示版本是4.0.2 手机设备:iphone 电脑系统:MAC 电脑下载证书 在Charles菜单栏中选择Help -> SSL-Proxying -> Install Ch

charles代理抓取https请求

注意!!!!! 手机同网域下代理需要关闭电脑 的防火墙~ 手机代理需要打开浏览器安装证书https://www.charlesproxy.com/getssl

对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)

原文:https://www.cnblogs.com/qingqing-919/p/8444816.html 对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App) 实验目的:对比使用Charles和Fiddler两个工具 实验对象:车易通App,易销通App 实验结果: 1.     接口数据呈现方式对比: (1) Charles树状结构呈现于屏幕,清晰易区分 (2)Fiddler默认按时间倒叙呈现所有接口数据,不易区分 个人觉得图形界面上Charles

Charles抓取HTTPS数据包方法

破解之后进行设置 设置代理端口8888 ssl代理设置 允许所有地址连接 手机获取证书之前,先在电脑安装证书,需要信任.help-->ssl-proxying-->Install Charles Root Certificate help-->ssl-proxying-->Install Charles Root Certificate on Mobile Device or Remote Browser... 手机访问:chls.pro/ssl若出现如下错误:Charles Er

安卓5.0以上手机最完美激活XPOSED框架的流程

对于喜欢搞机的机友而言,常常会玩到XPOSED框架和各种功能彪悍的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活XPOSED框架是非常简易的,但随着系统版本的迭代,5.0以后的系统,激活XPOSED框架变得非常繁杂,有些教程甚至需要我们刷入Recovery的方式来激活,这给我们带来非常的不易,特别是对我们屌丝用户而言,很容易就把手机给刷成木头. 前一阵子,整了一个安卓5.0以上手机,网上搜索了非常多方法,捣腾了很久还是无法成功激活xposed框架,因此一直丢在那里没搞,昨

安卓7.0系统手机最简单激活xposed框架的教程

对于喜欢钻研手机的哥们而言,很多时候会用到Xposed框架和各种功能极强的模块,对于5.0以下的系统版本,只要手机能获得ROOT权限,安装和激活Xposed框架是比较简易的,但随着系统版本的升级,5.0以后的系统,激活Xposed框架变得比较麻烦,有些教程甚至需要我们刷入RECOVERY的方式来激活,这给我们带来很大的艰难,特别是对我们新手屌丝而言,很容易就把手机给刷成大砖. 前一阵子,买了一部安卓7.0系统手机,网上搜了非常多教程,测试了很久还是无法成功激活Xposed框架,因而一直晾在那里没

手机通过Charles抓取https包

因为fiddler不能在mac上使用,而Charles是跨平台的,可以在mac上使用,所以需要了解一下Charles的使用 安装破解版Charles 下载破解版包,先启动一次未破解版的Charles,然后再替换包内容的java下的Charles.jar 破解版下载地址(如果不幸的又不能下载了,那就网上随便搜一个吧):http://download.csdn.net/download/m694449212/9770583 手机通过Charles抓取https 第一步:配置Charles,允许抓取h

Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式

Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式 https://johnnyshieh.me/posts/android-7-capture-https-package/ 发表于 2019-05-06 | 分类于 Android| 0| 阅读次数 最近升级了 targetSdkVersion 到 28 后发现在 Android 7.0 以上机型 Charles 抓取 https 包时显示找不到证书,但是 Android 6.0 机型还是可以正

Charles抓取https请求详解

大家好,我是TT,互联网测试行业多年,没有牛逼的背景,也没有什么可炫耀的,唯独比他人更努力,在职场打拼.遇到过的坑,走过的弯路,愿意与大家分享,分享自己的经验,少走弯路.首发于个人公众号[测试架构师] 原文如下: 现在基本大部分网站都使用了https,所以要想抓到https的请求,首要任务是先有工具:charles.fiddler,先介绍下charles针对https请求的抓取方法,此方法兼容windows和mac用户(mac用户方法类似,如果有必要,请关注微信公众号:测试架构师,留言给我.后续