安卓手机root+magisk安装证书+抓取https请求

先讲一下有这篇文章的背景吧,在使用安卓手机+fiddler抓包时,即使信任了证书,并且手机也安装了证书,但是还是无法捕获https请求的问题,最开始不知道原因,后来慢慢了解到现在有的app为了防止抓包,把证书放在了app应用里面(称为证书绑定(也称作SSL pinning)的技术),这样就导致即使手机信任了fiddler的证书,也会导致无法抓取到https请求。

在网上看到了帖子,说可以先将手机root,然后将证书安装到root之后的手机系统证书里面,所以就按照这个思路开始了手机root之旅。

一、安卓手机root

我只有一个多年未用的redmi note手机,所以就以这个说明,借鉴了B站UP主Good_idea的视频:

2021安卓手机root?不要到处找了,看这一个就够了,刷面具 刷Magisk获得root_哔哩哔哩_bilibili 

不要找了!B站最纯净的,小米root刷面具root教程科普视频_哔哩哔哩_bilibili

感觉讲的很详细,请大家自己观看操作,刷机这里我也不是很懂。

二、root之后还是无法捕获 https请求

手机root之后,按照把 charles,Fiddler 证书安装到安卓根目录,解决安卓微信 7.0 版本以后安装证书也无法抓包问题,需要 root - 宠你的鑫 - 博客园

这个贴的说明来操作,但是执行 

adb root

执行这个命令之后,报错如下:

adbd cannot run as root in production builds

于是又在网上搜各种解决方法,有说要下载超级adb.apk的(adbd-insecure.apk)帖子链接如下:

Android问题adb cannot run as root in production builds解决_adbd cannot run as root in production builds-CSDN博客

但是这个方法对我无效果。也有说通过adb shell切换root权限的

adb shell
su

但是这种方法获取到root权限之后,还是不能重新挂载/system目录,并且看到有帖子说现在安卓12都是动态分区,修改/system挂载方式已经行不通了。

然后网上看到这个贴子,有人说可以,但是感觉帖子里面缺相关文件,所以也没有去试过:[Closed] Universal SystemRW / SuperRW feat. MakeRW / ro2rw (read-only-2-read/write super partition converter) | XDA Forums

 也就是说想通过修改/system目录挂载方式为读写方式,估计很难实现了,这时候已经弄了很久了,打算放弃了,但是又不甘心,后面又看到一个帖子说可以通过magisk方式模拟之前直接修改/system目录挂载方式的方法:

帖子链接:https://blog.chara.pub/2022/09/15/fiddler-android-cacert/

为防止以后帖子失效,将内容复制一份出来:

安卓7和以上,https抓包需要将ca证书安装为系统证书,即把pem格式的证书放到/system/etc/security/cacerts/<证书hash>.0路径。部分手机可能有限制,无法修改system分区,可以用magisk模块的方式不修改system分区安装系统证书。

注意,安装magisk一般需要手机可以解锁bootloader。

  1. 如果证书是cer格式,转换成pem格式

    openssl x509 -inform DER  -in FiddlerRoot.cer -out FiddlerRoot.pem
  2. 读取证书hash,将证书文件名改为”<hash>.0”

    
    $ openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.pem
    0725b47c
    -----BEGIN CERTIFICATE-----
    MIIDyTCCArGgAwIBAgIQAItdUx/5OTFKbUpO3rGMnTANBgkqhkiG9w0BAQsFADB9
    MSswKQYDVQQLDCJDcmVhdGVkIGJ5IGh0dHA6Ly93d3cuZmlkZGxlcjIuY29tMSEw
    HwYDVQQKDBhQcm9ncmVzcyBUZWxlcmlrIEZpZGRsZXIxKzApBgNVBAMMIkZpZGRs
    ZXIgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjQxMTA0MTYwMDAwWhcN
    MzQxMTEyMTUyMzExWjB9MSswKQYDVQQLDCJDcmVhdGVkIGJ5IGh0dHA6Ly93d3cu
    ZmlkZGxlcjIuY29tMSEwHwYDVQQKDBhQcm9ncmVzcyBUZWxlcmlrIEZpZGRsZXIx

    上面的输出结果第一行是几个数字,将原FiddlerRoot.pem文件重命名为0725b47c.0为名

    $ cp FiddlerRoot.pem 0725b47c.0

    FiddlerRoot.pem这个文件就是从fiddler中导出的文件,可能名字不一样,根据自己的名字进行修改:

  3. 下载这个magisk模块模板。

    echo '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' | base64 -d > fiddler_ca_cert_magisk.zip
    

    上面的代码会输出一个压缩文件包,里面的目录如下:

  4. 将证书放到zip里的/system/etc/security/cacerts/下,可以使用7-zip直接拖进去,不需要设置文件权限。最终看到的结构信息要跟下面一样:

    $ zipinfo fiddler_cacert.zip
    Archive:  fiddler_cacert.zip
    ...
    -rw-a--     6.3 fat     1342 bx defN 22-Sep-14 07:18 system/etc/security/cacerts/0725b47c.0
  5. 将zip包在magisk里作为magisk模块刷入,重启手机即可。 

 将上面整理的压缩包放入到手机某个文件夹中,然后打开magisk的模块,点击从本地安装,找到刚刚的zip文件,安装即可,然后手机设置代理,进行访问,就可以看到之前无法捕获的https请求现在可以捕获到了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/919847.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字化那点事:一文读懂物联网

一、物联网是什么&#xff1f; 物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;是指通过网络将各种物理设备连接起来&#xff0c;使它们可以互相通信并进行数据交换的技术系统。通过在物理对象中嵌入传感器、处理器、通信模块等硬件&#xff0c;IoT将“…

Tomcat和Nginx原理说明

Tomcat Tomcat 是一个开源的 Java 应用服务器&#xff0c;它由多个关键组件组成。这些组件共同协作&#xff0c;实现了 Servlet 容器的功能。以下是 Tomcat 的核心组件说明及其逻辑架构的示意图。 1. Tomcat 核心组件说明 (1) Server 描述&#xff1a;Tomcat 的顶级组件&…

【大模型】LLaMA: Open and Efficient Foundation Language Models

链接&#xff1a;https://arxiv.org/pdf/2302.13971 论文&#xff1a;LLaMA: Open and Efficient Foundation Language Models Introduction 规模和效果 7B to 65B&#xff0c;LLaMA-13B 超过 GPT-3 (175B)Motivation 如何最好地缩放特定训练计算预算的数据集和模型大小&…

一文解决Latex中的eps报错eps-converted-to.pdf not found: using draft setting.

在使用Vscode配的PDFLatex编译IEEE TII的Latex模板时&#xff0c;出现eps文件不能转换为pdf错误&#xff0c;看了几十篇方法都没用&#xff0c;自己研究了半天终于可以正常运行了。主要原因还是Settings.JSON中的PDFLatex模块缺少&#xff1a;"--shell-escape", 命令…

【流量分析】常见webshell流量分析

免责声明&#xff1a;本文仅作分享&#xff01; 对于常见的webshell工具&#xff0c;就要知攻善防&#xff1b;后门脚本的执行导致webshell的连接&#xff0c;对于默认的脚本要了解&#xff0c;才能更清晰&#xff0c;更方便应对。 &#xff08;这里仅针对部分后门代码进行流量…

Java前端基础——CSS

一、CSS介绍 1.1 什么是CSS CSS(Cascading Style Sheet)&#xff0c;层叠样式表,用于控制页面的样式. CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. 1.2 基本语法规范 选择器 {⼀条/N条声明} • 选择器决定针…

游戏引擎学习第17天

视频参考:https://www.bilibili.com/video/BV1LPUpYJEXE/ 回顾上一天的内容 1. 整体目标&#xff1a; 处理键盘输入&#xff1a;将键盘输入的处理逻辑从平台特定的代码中分离出来&#xff0c;放入更独立的函数中以便管理。优化消息循环&#xff1a;确保消息循环能够有效处理 …

知识中台:赋能 3C 数码企业服务升级

在数字化浪潮汹涌澎湃的当下&#xff0c;3C 数码产品行业竞争已呈白热化态势。企业如何在这片充满挑战与机遇的领域中&#xff0c;打造卓越服务&#xff0c;构筑核心竞争力&#xff1f;知识中台的建设与运用&#xff0c;正逐渐成为破题关键。 一、产品研发加速引擎 在 3C 数码…

_FYAW智能显示控制仪表的简单使用_串口通信

一、简介 该仪表可以实时显示位移传感器的测量值&#xff0c;并可设定阈值等。先谈谈简单的使用方法&#xff0c;通过说明书&#xff0c;我们可以知道长按SET键可以进入参数选择状态&#xff0c;按“↑”“↓”可以选择该组参数的上一个或者下一个参数。 从参数一览中可以看到有…

Pytest 学习 @allure.severity 标记用例级别的使用

一、前言 使用allure.serverity注解&#xff0c;可以在allure报告中清晰的看到不同级别用例情况 使用等级介绍 allure提供的枚举类 二、等级介绍 二、等级介绍 blocker&#xff1a;阻塞缺陷&#xff08;功能未实现&#xff0c;无法下一步&#xff09; critical&#xff1a;…

Linux编辑器 - vim

目录 一、vim 的基本概念 1. 正常/普通/命令模式(Normal mode) 2. 插入模式(Insert mode) 3. 末行模式(last line mode) 二、vim 的基本操作 三、vim 正常模式命令集 1. 插入模式 2. 移动光标 3. 删除文字 4. 复制 5. 替换 6. 撤销上一次操作 7. 更改 8. 调至指定…

windows下编译ffmpeg4.4版本

最近在做一个利用ffmpeg库播放rtsp流的一个项目&#xff0c;需要自己编译ffmpeg源码&#xff1b;记录一下编译源码的过程&#xff0c;仅供参考&#xff1b; 目标&#xff1a; 开发环境&#xff1a;windows10系统&#xff1b; ffmpeg:ffmpeg4.4版本&#xff0c;https://downlo…

vulfocus在线靶场:骑士cms_cve_2020_35339:latest 速通手册

目录 一、启动环境&#xff0c;访问页面&#xff0c;ip:端口号/index.php?madmin,进入后台管理页面&#xff0c;账号密码都是adminadmin 二、进入之后&#xff0c;根据图片所示&#xff0c;地址后追加一下代码&#xff0c;保存修改 ​三、新开标签页访问&#xff1a;①ip:端…

鸿蒙开发:ForEach中为什么键值生成函数很重要

前言 在列表组件使用的时候&#xff0c;如List、Grid、WaterFlow等&#xff0c;循环渲染时都会使用到ForEach或者LazyForEach&#xff0c;当然了&#xff0c;也有单独使用的场景&#xff0c;如下&#xff0c;一个很简单的列表组件使用&#xff0c;这种使用方式&#xff0c;在官…

力扣 LeetCode 257. 二叉树的所有路径(Day8:二叉树)

解题思路&#xff1a; 第一次提到回溯 前序遍历 中左右 中是处理过程 左右是递归过程 注意递归三部曲的第二部&#xff0c;确定终止条件&#xff0c;这里就是遍历完叶子节点就停止&#xff0c;而不是遍历到空节点 class Solution {List<String> res new ArrayLis…

el-table实现最后一行合计功能并合并指定单元格

效果图如下&#xff1a; 表格代码如下&#xff1a; <el-table width"100%"ref"tableRef" style"margin-bottom: 15px;":data"jlData"class"tableHeader6"header-row-class-name"headerStyleTr6":row-class-n…

Java基础知识(六)

文章目录 StringString、StringBuffer、StringBuilder 的区别&#xff1f;String 为什么是不可变的?字符串拼接用“” 还是 StringBuilder?String#equals() 和 Object#equals() 有何区别&#xff1f;字符串常量池的作用了解吗&#xff1f;String s1 new String("abc&qu…

antd中使用Table手动进行分页

<Table<DataType>//获取勾选中的数据rowSelection{rowSelection}//当列过多时&#xff0c;固定某些列&#xff0c;实现左右滑动scroll{{ x: max-content }}//字段名columns{columns}// rowKey{(record) > record.login.uuid}//每一行唯一的标识&#xff0c;也是勾选…

nodejs21: 快速构建自定义设计样式Tailwind CSS

Tailwind CSS 是一个功能强大的低级 CSS 框架&#xff0c;只需书写 HTML 代码&#xff0c;无需书写 CSS&#xff0c;即可快速构建美观的网站。 1. 安装 Tailwind CSS React 项目中安装 Tailwind CSS&#xff1a; 1.1 安装 Tailwind CSS 和相关依赖 安装 Tailwind CSS: npm…

Java开发经验——JDK工具类的安全问题

摘要 本文探讨了Java开发中JDK工具类的安全问题&#xff0c;重点分析了不同工具类&#xff08;包括Java自带的Objects工具类、Apache Commons Lang、Guava和Spring Framework的ObjectUtils&#xff09;在比较对象相等性时的使用方法和优势。同时&#xff0c;文章还涉及了Integ…