《吐血整理》高级系列教程-吃透Fiddler抓包教程(27)-Fiddler如何抓取Android7.0以上的Https包-中篇

news2024/10/2 3:14:52

1.简介

上一篇中,讲解和分享了一些如何快速解决的临时应急的的方法,但是小伙伴或者童鞋们是不是觉得是一些头痛医头脚痛医脚的方法,治标不治本,或者是一些对于测试人员实现起来比较有一定难度。所以今天宏哥再介绍和分享一下治本的方法。

2.追本溯源

要想从根本上解决问题,我们找到根源从跟上解决问题即可!究其根源,targetSdkVersion >= 24的应用在android 7.0+系统的设备中之所以没法被抓包,是因为android 7.0之后的应用是默认只信任系统证书,不信任用户证书,那么我们可以想办法将Fiddler证书装到系统证书目录下,伪装成系统证书,那么就不存在因为fiddler证书不被信任而无法抓包的问题了。找到根源了,既然是用户证书不被信任,那么我们制作一个系统证书安装在手机上你就解决这一问题了。接下来宏哥就按这个思路解决问题。

1.之前演示可以抓安卓手机的https的包,是因为宏哥的夜神模拟器的Android版本是5.1.1,所以可以抓到包。

 如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386     

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337 

 2.点击夜神模拟器右边菜单里的夜神多开器,如下图所示:

3.添加一个Android版本大于7.0的模拟器,如下图所示:

4.设置好代理,再次使用Fiddler抓包百度手机助手。提示网络繁忙。具体表现为APP中的WebView无法打开内容,抓不到APP的包了,如下图所示:

5.Fiddler抓包结果:Fiddler中可以看到大量的CONNECT然后就没有下文了。如下图所示: 

 

3.导出Fiddler证书

1.下载安装Fiddler抓包工具,下载完成之后先不要点击打开运行(如果你是首次安装,如果你已经安装好了,不要启动fiddler)。

2.下载fiddlercertmaker.exe这个Bouncy Castle证书生成器,因为新版本的Android拒绝超过两年有效期的证书,双击下载好的fiddlercertmaker.exe(确保已关闭Fiddler),会弹出提示导入证书成功这个对话框。(如果你的新版本可以安装,这一步可以省略)。

3.将Fiddler的证书导出到电脑,点击Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop。如下图所示:

4.导出成功之后,就可以在桌面上看到导出的FiddlerRoot.cer证书文件 。如下图所示:

 

4.下载和安装openssl

1.下载Window版openssl, 下载地址:http://slproweb.com/products/Win32OpenSSL.html,下拉到下面,选择最上面的64位EXE点击下载安装即可,如下图所示:

2.安装完成之后,在openssl的安装目录bin下,打开cmd命令行试试openssl命令是否生效,要是有如下输入信息,就说明安装成功: 

 

5.证书格式转换与重命名

1.将Fiddler cer证书转pem证书,在cmd输入如下命令进行转换:

openssl x509 -inform DER -in C:\Users\DELL\Desktop\FiddlerRoot.cer -out C:\Users\DELL\Desktop\FiddlerRoot.pem

 2.用md5方式显示pem证书的hash值, 在cmd输入如下命令:

openssl x509 -inform PEM -subject_hash_old -in C:\Users\DELL\Desktop\FiddlerRoot.pem

从上面可以看到,咱们生成Fiddler证书的hash值是269953fb 

3.将pem证书重命名,使用上面显示的值269953fb对pem证书进行重命名,以下命令仅适用于window,linux请用mv。如下图所示:

ren C:\Users\DELL\Desktop\FiddlerRoot.pem 269953fb.0

 

注意:ren命令第二个参数,直接输入新的文件名即可,不要输入完整路径,否则会报错。如下图所示:

 

6.安装证书到系统目录(/system/etc/security/cacerts)

6.1适合有Android基础的开发者

1.找一台root过的手机或者任意一款模拟器,因为只有root过的手机才有可能执行各种高权限的命令。我这边下载了一款叫夜神android 7系统的模拟器。如下图所示:

2.cmd输入adb connect 127.0.0.1:62001,使adb跟夜神模拟器连接上(这部分不清楚的可以看宏哥有关Appium的文章,里边有详细的介绍如何连接)。

(1)安装完夜神模拟器在cmd检测时,提示adb server version (36) doesn't match this client (41); killing...

说明andriod adb版本和模拟器adb版本不匹配

查找原因:

(2)查看Android-adb 版本,cmd输入adb --version,可以看到当前版本是1.0.41 ,简称41版本

(2)查看模拟器(夜神)中adb的版本,在安装目录\Nox\bin下有个nox_adb.exe ,其实就是adb.exe。(这里便于和Android的adb做区分)

 

(3)然后在上一步中的目录地址栏输入cmd进入命令行,然后输入nox_adb,看到模拟器中的adb版本是36

(4)找到原因后,将platform-tools文件夹中adb.exe 替换到模拟器根目录下的nox_adb.exe即可,接下来把android-sdk里面的adb.exe版本复制出来,然后改名为nox_adb.exe,然后替换\Nox\bin下的nox_adb.exe,就可以了,关闭模拟器,再次启动模拟器进行检测,能看到127.0.0.1:62001 就是模拟器的设备名称表示连接成功

 

3.cmd 输入adb shell,进入到夜神模拟器的终端shell中。直接输入后,发现报错:error:more than one device/emulator 。如下图所示:

(1)查看是由于宏哥打开了两个模拟器,直接输入命令,系统不知道进入那个模拟器,你必须指定一个。如下图所示:

(2)指定模拟器然后进去shell,就可以成功进入,如下图所示:

4.cmd 输入 cd /system/etc/security, 然后输入ls -l, 可以看到cacerts目录,我们只有读与执行权限,并没有写入的权限。如下图所示:

 

5.cmd输入chmod 777 cacerts, 让咱们对该目录拥有写入权限,执行之后,在输入ls -l可以看到我们已经获取到写入权限了。如下图所示:

 

敲黑板!!!

有些小伙伴可能在其他模拟器输入chmod 777 cacerts,会被提示Read-only file system。如下图所示:

这种情况需要重新挂载一下系统,设置为可读写,输入mount -o remount,rw /system,然后再输入chmod 777 cacerts,你会发现可以成功设置了。如下图所示:

 

6.输入exit退出shell终端,然后输入adb push C:\Users\DELL\Desktop\269953fb.0 /system/etc/security/cacerts(同样道理需要指定模拟器),将事先转换好的Fiddler证书推送到夜神模拟器的/system/etc/security/cacerts目录下。如下图所示: 

7.到这里就已经成功的把Fiddler证书安装到系统目录了,咱们点击模拟器的设置 -> 安全性与位置信息 -> 加密与凭据 -> 信任的凭据 -> 系统,往下拉可以看到咱们的Fiddler证书。如下图所示:

 

 现在再打开Fiddler进行抓包,你会发现可以成功抓包了(记得模拟器在wifi那里设置好代理),如下图所示:

6.2适合没有Android基础的小白

1.找一台root过的手机或者任意一款模拟器,因为只有root过的手机才有可能执行各种高权限的命令。我这边下载了一款叫夜神android 7系统的模拟器

2.点击夜神模拟器侧边栏的电脑图标,选择打开电脑文件夹,会跳转打开电脑的目录C:\Users\Administrator\Nox_share,将转换好的Fiddler证书269953fb.0复制到ImageShare目录下即可

 

3.下载MT管理器,下载地址:MT管理器(bin.mt.plus) - 2.13.7 - 应用 - 酷安 。拖拉到模拟器中安装完成,点击打开应用,左边打开Pictures目录就可以看到刚才电脑ImageShare目录的Fiddler证书269953fb.0

4.右边点击进入到system/etc/security/cacerts目录,然后长按左边的269953fb.0文件,点击复制即可复制到右边打开的目录那里

5.一般人到这里以为就结束,但是你留意看一下刚才复制到system/etc/security/cacerts目录下的269953fb.0文件,你会发现跟其他已有的系统证书相比,269953fb.0根本就没有读的权限,到时你到信任的凭据也是没法找到这个Fiddler证书的,点击MT管理器的左上角,找到打开终端

6.进入到终端之后,输入以下命令将269953fb.0文件设置为可读即可

7.再看看system/etc/security/cacerts目录下269953fb.0文件的权限,发现确实有读权限了

8.咱们回到模拟器桌面,点击模拟器的设置 -> 安全性与位置信息 -> 加密与凭据 -> 信任的凭据 -> 系统,往下拉终于看到咱们的Fiddler证书,尝试一下抓包也是没问题了

 现在再打开Fiddler进行抓包,你会发现可以成功抓包了(记得模拟器在wifi那里设置好代理),如下图所示:

7.小结

1.雷电4模拟器经过上述设置之后,你会发现依然是没法成功抓包,这时需要允许以下命令给雷电4设置全局代理

adb shell settings put global http_proxy <代理ip>:<代理端口>
其中adb在模拟器安装目录可以找到。

2.在操作前一定要保证手机or模拟器已经开启了root,若模拟器的话还要开启usb调试选项,需要在设置 - 关于平板电脑或关于手机 - 对着Android版本号的位置猛戳5下(开启开发者选项)- 返回进入开发者选项  - 打开USB调试按钮开关 ps:用力越猛效果越好。

3.记得要进入openssl的安装目录bin,才能使用openssl命令,否则会提示命令不存在,如果需要在其他目录下使用openssl命令,需要你配置环境变量即可,具体配置方法自己可以查一下,毕竟宏哥今天这里不是主要讲解openssl的。

4.这里还有一点需要单独说明,/system/etc/security/cacerts/目录的写权限,需要手机root权限。也就是说复制证书到该目录需要您root自己的设备。关于Android手机的root,通常手机厂家都会有自己官方的教程,建议大家按官方的操作进行root。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

长相思·罚站墙Vue

优化前 看效果图 Vue长相思 刚学Vue&#xff0c;正好在追剧&#xff0c;看到这个小案例觉得挺好玩的&#xff0c;第一天学&#xff0c;代码太简陋了 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta…

海外版金融理财系统源码 国际投资理财系统源码 项目投资理财源码

海外版金融理财系统源码 国际投资理财系统源码 项目投资理财源码

RF手机天线仿真介绍(三):调谐开关分析

目录 简介调谐开关RON、COFF的影响分析不同位置的调谐器件coff影响分析不同位置的调谐器件Ron影响分析Coff引起谐振的解决示例 调谐开关VPEAK分析调谐开关Vpeak示例 简介 孔径调谐能调节天线的电长度&#xff0c;可将其谐振点切换到所需支持的工作频段。天线孔径调谐器通过改变…

GPS/北斗RTK差分定位系统的原理以及应用领域

导语&#xff1a;现代定位技术在国内外的发展与应用越来越广泛&#xff0c;其中GPS和北斗是两大被广泛使用的全球卫星定位系统。本文将介绍GPS/北斗RTK差分定位系统的原理以及其在各个领域的应用。 一、GPS/北斗RTK差分定位系统的原理 GPS/北斗RTK差分定位系统&#xff0c;即全…

机器学习中的工作流机制

机器学习中的工作流机制 在项目开发的时候&#xff0c;经常需要我们选择使用哪一种模型。同样的数据&#xff0c;可能决策树效果不错&#xff0c;朴素贝叶斯也不错&#xff0c;SVM也挺好。有没有一种方法能够让我们用一份数据&#xff0c;同时训练多个模型&#xff0c;并用某种…

基于STM32103移植FreeRTOS

目录 一、FreeRTOS协议栈下载 二、准备工程文件与协议代码 三、移植FreeRTOS协议栈 一、FreeRTOS协议栈下载 1、官网下载 FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensionshttps://www.freertos.or…

SQL-每日一题【1193. 每月交易 I】

题目 Table: Transactions 编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1: 解题思路 1.题目要求我们查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数…

Flutter(八)事件处理与通知

1.原始指针事件处理 一次完整的事件分为三个阶段&#xff1a;手指按下、手指移动、和手指抬起&#xff0c;而更高级别的手势&#xff08;如点击、双击、拖动等&#xff09;都是基于这些原始事件的。 Listener 组件 Flutter中可以使用Listener来监听原始触摸事件 Listener({…

Go语言开发者的Apache Arrow使用指南:读写Parquet文件

Apache Arrow是一种开放的、与语言无关的列式内存格式&#xff0c;在本系列文章[1]的前几篇中&#xff0c;我们都聚焦于内存表示[2]与内存操作[3]。 但对于一个数据库系统或大数据分析平台来说&#xff0c;数据不能也无法一直放在内存中&#xff0c;虽说目前内存很大也足够便宜…

FuncGPT竟然限免?!速来体验全球首个AIGF!

近日&#xff0c;飞算SoFlu软件机器人重磅推出全新功能——FuncGPT&#xff08;慧函数&#xff09;。FuncGPT&#xff08;慧函数&#xff09;是一款函数AI生产器&#xff0c;它能够根据用户的需求快速生成 Java 语言的函数代码。FuncGPT&#xff08;慧函数&#xff09;拥有强大…

行政资产管理信息系统

行政资产管理信息系统是通过专业设计开发的资产管理解决方案&#xff0c;旨在为企业建立和完善资产管理体系。该系统可以有效地控制资产的购买和应用&#xff0c;从而节省资金&#xff0c;完成资产的有效管理。   资产管理信息系统的核心功能是统一资产管理&#xff0c;可以…

java 版本企业招标投标管理系统源码+多个行业+tbms+及时准确+全程电子化

​ 功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查…

kernel pwn入门

Linux Kernel 介绍 Linux 内核是 Linux 操作系统的核心组件&#xff0c;它提供了操作系统的基本功能和服务。它是一个开源软件&#xff0c;由 Linus Torvalds 在 1991 年开始开发&#xff0c;并得到了全球广泛的贡献和支持。 Linux 内核的主要功能包括进程管理、内存管理、文…

2023-08-04 Untiy进阶 C#知识补充4——C#5主要功能与语法

文章目录 一、概述二、回顾——线程三、线程池四、Task 任务类五、同步和异步 ​ 注意&#xff1a;在此仅提及 Unity 开发中会用到的一些功能和特性&#xff0c;对于不适合在 Unity 中使用的内容会忽略。 一、概述 C# 5 调用方信息特性&#xff08;C# 进阶内容&#xff09;异步…

途乐证券|俄罗斯宣布9月削减石油出口量

当地时间周四&#xff0c;美股兜售潮仍在持续&#xff0c;三大股指连续第二个交易日团体收跌。到收盘&#xff0c;道指跌落0.19%&#xff0c;标普500指数跌落0.25%&#xff0c;纳指跌幅为0.10%。 美国ISM7月非制造业PMI下滑 数据面上&#xff0c;美国供应办理协会ISM周四发布的…

掌握好视频翻译软件的使用方法,帮你跨越语言障碍

嘿&#xff0c;翻译小达人们&#xff0c;你知道吗&#xff0c;当你看到一段充满神秘符号的英语视频&#xff0c;脑袋里冒出一大片问号的时候&#xff0c;别慌&#xff01;我们有比手动翻译更妙的解决办法——视频翻译。嗯&#xff0c;这货可不一般&#xff0c;它能帮你解读视频…

锂电设备振动监测:早发现问题,早预防故障

锂电设备在生产过程中的振动问题可能导致设备故障、损坏和生产线停机&#xff0c;对企业产生严重影响。为了确保锂电池生产的稳定性和可靠性&#xff0c;振动监测成为了关键一步。通过引入智能无线温振传感器及其监测分析软件&#xff0c;企业可以早发现问题、早预防故障&#…

[PaddlePaddle] [学习笔记] PaddlePaddle 官方文档 —— 使用Python和NumPy构建神经网络模型

1. 机器学习和深度学习综述 1.1 人工智能、机器学习、深度学习的关系 近些年人工智能、机器学习和深度学习的概念十分火热&#xff0c;但很多从业者却很难说清它们之间的关系&#xff0c;外行人更是雾里看花。在研究深度学习之前&#xff0c;先从三个概念的正本清源开始。概括…

节能延寿:ARM Cortex-M微控制器下的低功耗定时器应用

嵌入式系统的开发在现代科技中发挥着至关重要的作用。它们被广泛应用于从智能家居到工业自动化的各种领域。在本文中,我们将聚焦于使用ARM Cortex-M系列微控制器实现低功耗定时器的应用。我们将详细介绍在嵌入式系统中如何实现低功耗的定时器功能,并附上代码示例。 嵌入式系…

详聊API接口?淘宝API接口在ERP系统中扮演者什么角色?

什么是API&#xff1f; API全称应用程序编程接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是一组用于访问某个软件或硬件的协议、规则和工具集合。电商API就是各大电商平台提供给开发者访问平台数据的接口。目前&#xff0c;主流电商平台如淘宝…