android抓包踩坑记录

news2025/5/17 8:19:51

​ 由于需要公司业务需求,需要抓取APP中摄像机插件的网络包,踩了两天坑,这里做个总结吧。

事先准备

  • android-studio

    • emulate
    • sdk

    需要android模拟器和adb调试工具。如果已经有其他模拟器的话,可以只安装adb调试工具即可

  • mitmproxy

    一款代理抓包工具,本来是使用charles的,但是不知为何,我的ubuntu机器安装charles之后每个点击操作都要延迟三秒就换mitmproxy了

遇到的坑

网上寻找了大量的教程和视频,将下载代理工具的CA证书安装到Android之后,均无法抓取https的网络包。

之所以这样是因为在Android7.0及以上的系统中,应用只会任性系统预装的CA证书或应用指定的CA证书,而照网上教程安装的CA证书一般情况都会安装成用户证书,因此导致安装的CA证书,对于这些APP无法生效。

抓包原理

原先的网络请求是客户端向服务端发送网络请求,服务端返回的逻辑,如果需要抓取网络包的话,则需要在客户端与服务端中间代理一层,让客户端先给代理服务器发送网络请求,随后代理服务器可以将网络请求数据给记录下来之后再转发给服务器,同理服务端返回的数据也将有代理服务器记录下来,再转发给客户端。

而对于更加安全的https请求,使用这种中间人的方式则会困难许多 ,因为客户端只会信任一些权威机构认证过的CA证书(就是系统证书),因此如果想要抓取https的网络请求包,则需要将代理服务器伪造的CA证书,加入到客户端中(直接使用手机操作安装的证书是安装到用户信任证书中)而在Android7.0以及之后版本,再想抓取APP的https请求则需要将证书加入到系统证书

实操部分

由于安装系统证书需要具备root权限,因此安装使用的镜像不能带play,带play的正式版,正式版是不允许获得root权限的

博主采用的模拟器配置如下
在这里插入图片描述

开启mitmproxy代理服务器

进入官网根据自己的系统去下载对应的包

https://mitmproxy.org/

解压出来是如下的三个可执行文件

在这里插入图片描述

在当前路径下执行命令:

./mitmweb -p 8888 --set web_port=9000
  • 其中-p后面的8888是指代理服务器用来代理客户端的端口,需要客户端连接这个端口
  • web_port是指可在这个web服务器端口下查看抓取的数据包信息,数据包列表展示如下

在这里插入图片描述

配置客户端代理

客户端需要和代理服务器在同一网络下:

客户端的配置点击网络,WiFi

在这里插入图片描述

进入到wifi的高级选项下,设置代理,手动
在这里插入图片描述
其中代理主机名就是启动mitmproxy所在机器的ip,代理端口则为先前设置的8888

配置完成之后重连网络,此时应该可以抓取http请求了。

安装系统证书

连接上代理之后,需要使用连接代理的机器去访问,https://mitm.it/

博主这里使用手机去访问这个url,无法下载证书。后来切换至电脑端代理去访问这个url才下载成功的。

在这里插入图片描述

这边需要根据自身系统的不同下载不同的证书,此处需要抓android的包,所以下载的Android。

将下载后的文件mitmproxy-ca-cert.cer重命名成它的hash值.0,随后就可以加入到系统证书路径中了

使用如下命令计算出hash值

openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer

输出如下:

在这里插入图片描述

将文件重命名

mv mitmproxy-ca-cert.cer c8750f0d.0

至此证书已经处理完成,需要将其加入到系统证书路径下,即可抓取https请求。

将CA证书加入至系统证书路径下

首先获取root权限

adb root

对模拟器启用写入权限

# 查看当前模拟器下有多少设备
emulator -avd -list-avds

在这里插入图片描述

# 以系统可写的形式启动名为米家的模拟器(执行命令,需要模拟器此时是关闭状态的)
emulator -avd "mijia" -writable-system

模拟器重启完成之后需要adb获取root权限

# 获取root权限
adb root
# 重新挂载
adb remount
# 重启模拟器
adb reboot
# 再次进入root
adb root
adb remount

# 将证书上传至system中的系统证书目录下。上述所有操作都是为了让这一步可以写成功
adb push c8750f0d.0 /system/etc/security/cacerts/ 

随后可以进入到设置中,查看系统证书目录下是否存在刚才上传的CA证书。

至此再操作APP即可抓取到https的网络包,可以在代理服务器的网页端查看。

在这里插入图片描述

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

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

相关文章

Webpack其他插件

安装html打包插件 const path require(path); const HtmlWebpackPlugin require(html-webpack-plugin) module.exports {entry: path.resolve(__dirname,src/login/index.js),output: {path: path.resolve(__dirname, dist),filename: ./login/index.js,clean:true},Plugin:…

Python Matplotlib 库【绘图基础库】全面解析

让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》 一、发展历程 Matplotlib 由 John D. Hunter 于 2003 年创建,灵感来源于 MATLAB 的绘图系统。作为 Python 生态中最早的可视化工具之一,它逐渐成为科学计算领…

C++ string数据查找、string数据替换、string子串获取

string查找示例见下&#xff0c;代码见下&#xff0c;以及对应运行结果见下&#xff1a; #include<iostream>using namespace std;int main() {// 1string s1 "hellooooworld";cout << s1.find("oooo") << endl;// 2cout << (in…

关于甲骨文(oracle cloud)丢失MFA的解决方案

前两年&#xff0c;申请了一个招商的多币种信用卡&#xff0c;然后就从网上撸了一个oracle的免费1h1g的服务器。 用了一段时间&#xff0c;人家要启用MFA验证。 啥叫MFA验证&#xff0c;类似与短信验证吧&#xff0c;就是绑定一个手机&#xff0c;然后下载一个app&#xff0c;每…

【网络编程】七、详解HTTP 搭建HTTP服务器

文章目录 Ⅰ. HTTP协议的由来 -- 万维网Ⅱ. 认识URL1、URL的格式协议方案名登录信息 -- 忽略服务器地址服务器端口号文件路径查询字符串片段标识符 2、URL的编码和解码 Ⅲ. HTTP的报文结构1、请求协议格式2、响应协议格式&#x1f38f; 写代码的时候&#xff0c;怎么保证请求和…

[Java实战]Spring Boot 快速配置 HTTPS 并实现 HTTP 自动跳转(八)

[Java实战]Spring Boot 快速配置 HTTPS 并实现 HTTP 自动跳转(八) 引言 在当今网络安全威胁日益严峻的背景下&#xff0c;为 Web 应用启用 HTTPS 已成为基本要求。Spring Boot 提供了简单高效的方式集成 HTTPS 支持&#xff0c;无论是开发环境测试还是生产环境部署&#xff0…

CVPR计算机视觉顶会论文解读:IPC-Dehaze 如何解决真实场景去雾难题

【CVPR 2025】迭代预测-评判编解码网络&#xff1a;突破真实场景去雾的极限 摘要 本文提出了一种名为IPC-Dehaze的创新去雾方法&#xff0c;通过迭代预测-评判框架和码本解码机制&#xff0c;有效解决了现有去雾算法在复杂场景下的性能瓶颈。该方法在多个基准测试中取得了SOT…

ppy/osu构建 ipad作为osu按键xz笔记2 deepwiki websokect

ipad当x和z键玩osu #无声打osu#没磁轴怎么打osu 下载 .NET (Linux、macOS 和 Windows) | .NET dotnet还行 构建&#xff1a;f5 运行&#xff1a;dotnet run --project osu.Desktop -c Debug deepwiki就是nb uinput是ubuntu的我现在没法调试&#xff0c;放着 import asyn…

.NET程序启动就报错,如何截获初期化时的问题json

一&#xff1a;背景 1. 讲故事 前几天训练营里的一位朋友在复习课件的时候&#xff0c;程序一跑就报错&#xff0c;截图如下&#xff1a; 从给出的错误信息看大概是因为json格式无效导致的&#xff0c;在早期的训练营里曾经也有一例这样的报错&#xff0c;最后定位下来是公司…

nacos:服务注册原理

目录 NaCos服务注册原理1、AbstractAutoServiceRegistration功能和作用onApplicationEvent()方法start()方法 2、NacosAutoServiceRegistration功能和作用NacosAutoServiceRegistration.register()方法AbstractAutoServiceRegistration.register()方法 3、NacosServiceRegistry…

基于开源AI大模型与S2B2C生态的个人品牌优势挖掘与标签重构研究

摘要&#xff1a;在数字文明时代&#xff0c;个人品牌塑造已从传统经验驱动转向数据智能驱动。本文以开源AI大模型、AI智能名片与S2B2C商城小程序源码为技术载体&#xff0c;提出"社会评价-数据验证-标签重构"的三维分析框架。通过实证研究发现&#xff0c;结合第三方…

polarctf-web-[简单rce]

考点&#xff1a; (1)RCE(eval函数) (2)执行函数(passthru函数) (3)/顶级(根)目录查看 (4)sort排序查看函数 题目来源&#xff1a;Polarctf-web-[简单rce] 解题&#xff1a; 代码审计 <?php/*​PolarD&N CTF​*/highlight_file(__FILE__);function no($txt){ # …

深入理解 Cortex-M3 特殊寄存器

在上一篇文章中分享了 Cortex-M3 内核寄存器组的相关知识&#xff0c;实际上除了内核寄存器组外&#xff0c;CM3 处理器中还存在多个特殊寄存器&#xff0c;它们分别为 程序状态寄存器&#xff0c;中断/异常屏蔽寄存器 和 控制寄存器。 需要注意的是&#xff0c;特殊寄存器未经…

[Java实战]Spring Boot 3 整合 Ehcache 3(十九)

[Java实战]Spring Boot 3 整合 Ehcache 3&#xff08;十九&#xff09; 引言 在微服务和高并发场景下&#xff0c;缓存是提升系统性能的关键技术之一。Ehcache 作为 Java 生态中成熟的内存缓存框架&#xff0c;其 3.x 版本在性能、功能和易用性上均有显著提升。本文将详细介绍…

建筑物渗水漏水痕迹发霉潮湿分割数据集labelme格式1357张1类别

数据集中有增强图片详情看图片 数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;1357 标注数量(json文件个数)&#xff1a;1357 标注类别数&#xff1a;1 标注类别名称:["water&qu…

第二十二天打卡

数据预处理 import pandas as pd from sklearn.model_selection import train_test_splitdef data_preprocessing(file_path):"""泰坦尼克号生存预测数据预处理函数参数:file_path: 原始数据文件路径返回:preprocessed_data: 预处理后的数据集""&quo…

解锁性能密码:Linux 环境下 Oracle 大页配置全攻略​

在 Oracle 数据库运行过程中&#xff0c;内存管理是影响其性能的关键因素之一。大页内存&#xff08;Large Pages&#xff09;作为一种优化内存使用的技术&#xff0c;能够显著提升 Oracle 数据库的运行效率。本文将深入介绍大页内存的相关概念&#xff0c;并详细阐述 Oracle 在…

Spark,在shell中运行RDD程序

在hdfs中/wcinput中创建一个文件&#xff1a;word2.txt在里面写几个单词 启动hdfs集群 [roothadoop100 ~]# myhadoop start [roothadoop100 ~]# cd /opt/module/spark-yarn/bin [roothadoop100 ~]# ./spark-shell 写个11测试一下 按住ctrlD退出 进入环境&#xff1a;spa…

SAP学习笔记 - 开发11 - RAP(RESTful Application Programming)简介

上一章学习了BTP架构图&#xff0c;实操创建Directory/Subaccount&#xff0c;BTP的内部组成&#xff0c;BTP Cockpit。 SAP学习笔记 - 开发10 - BTP架构图&#xff0c;实操创建Directory/Subaccount&#xff0c;BTP的内部组成&#xff0c;BTP Cockpit-CSDN博客 本章继续学习S…

数据防泄密安全:企业稳健发展的守护盾

在数字化时代&#xff0c;数据已成为企业最核心的资产之一。无论是客户信息、财务数据&#xff0c;还是商业机密&#xff0c;一旦泄露&#xff0c;都可能给企业带来不可估量的损失。近年来&#xff0c;数据泄露事件频发&#xff0c;如Facebook用户数据泄露、Equifax信用数据外泄…