使用Proxyman抓取Android的https请求

使用Proxyman抓取Android的https请求

拦截网络请求

有时,您可能需要测试您的移动应用程序并检查与其关联的所有网络请求。在网络上,此任务非常简单,只需按Ctrl + Shift + I打开开发人员工具即可。从那里,您可以导航到网络选项卡并检查与网页相关的所有 HTTP 请求,如下所示:
浏览器中的网络请求

然而,在移动开发方面,过程并不那么简单。与网络不同,没有内置机制可以通过打开开发人员工具轻松检查 HTTP 请求。

在这篇博文中,我们将探索通过使用代理来拦截网络请求的迷人世界。我们将指导您逐步设置和配置代理服务器,该服务器将充当您的设备和网络之间的中介。

通过利用代理服务器的功能,我们能够拦截、检查和分析所有传入的网络请求。这为应用程序的调试、性能优化和安全分析开辟了无限可能。

为了更容易理解,我将这个过程分为五个步骤。这些都是:

  1. 设置 Android 模拟器
  2. 代理设置
  3. 准备证书
  4. 部署证书
  5. 在 Android 模拟器上设置代理
    让我们详细探讨每个步骤。

1. 设置Android模拟器

要开始此过程,您需要安装 Android Studio。
成功安装后,启动 Android studio。在窗口顶部的工具栏上,找到并单击菜单Tools。之后Device Manager从下拉菜单创建所需要的设备并运行设备。
avd

首先,使用该命令emulator -list-avds显示系统上所有已安装模拟器的列表。此命令将为您提供可用设备的名称。从列表中确定您要运行的设备的名称。

一旦确定了要启动的设备,就可以使用该emulator -avd deviceName命令。deviceName将命令中的名称替换为所需设备的实际名称。该命令将使用指定的设备启动模拟器。

确保您已设置模拟器命令正常工作所需的所有环境变量非常重要。这将确保命令被识别并成功执行。

列出设备
设置 Android 模拟器后,您可以选择从APKMirror下载并安装所需应用程序的 APK 文件。APKMirror 是一个信誉良好的网站,您可以在其中找到各种 Android 应用程序的各种 APK 文件。下载 APK 文件后,您可以继续将其安装在 Android 模拟器上。您可以将下载的 APK 文件拖放到模拟器窗口中,也可以使用模拟器的文件传输机制导入 APK 文件。

2. 代理设置

在继续安装代理之前,必须确保 OpenSSL 和 Android 调试桥 (ADB) 已正确设置。以下是您应该遵循的步骤:

如果您尚未安装OpenSSL ,请先在您的系统上安装OpenSSL 。有关安装过程,请参阅特定于您的操作系统的文档。openssl version安装后,您可以通过在终端或命令提示符中运行命令来验证安装。如果安装正确,这将显示 OpenSSL 版本。

检查 OpenSSL 版本
接下来,确认您可以从终端或命令提示符访问 Android 调试桥 (ADB),这一点很重要。使用该命令adb version检查 ADB 是否可访问且配置正确。如果命令返回ADB版本,则表示设置正确。

成功设置 OpenSSL 并确认对 ADB 的访问权限后,您可以继续安装代理。在本教程中,我们将下载并使用Proxyman作为示例工具。但是,您可以将相同的原则应用于其他类似的工具,例如Charles ProxymitmProxy

https://proxyman.io/
https://www.charlesproxy.com/

3. 准备证书

为了解密应用程序请求,Proxyman 生成自定义 SSL 证书。要获取此证书并将其配置为与 Android 操作系统一起使用,请执行以下步骤:

打开您的网络浏览器并访问以下链接。您可以通过此链接下载 Proxyman SSL 证书。下载证书后,找到保存证书的文件夹:

http://proxy.man/ssl
找到下载文件的文件夹

  • 为了确保证书文件具有 Android 操作系统所需的正确格式,您需要对其进行重命名。打开命令提示符并导航到证书所在的文件夹。之后运行此命令:
hashed_name=`openssl x509 -inform PEM -subject_hash_old -in proxyman-ca.pem | head -1` && cp proxyman-ca.pem $hashed_name.0This command uses OpenSSL to generate a hashed name for the certificate and then renames the file accordingly. By following these steps, you obtain the custom SSL certificate from Proxyman and rename it to the format expected by Android OS. This certificate is essential for decrypting app requests and enabling Proxyman to intercept and analyze the network traffic.

此命令使用 OpenSSL生成证书的哈希名称, 然后相应地重命名文件。通过执行以下步骤,您可以从Proxyman获取自定义SSL 证书,并将其重命名为Android 操作系统所需的格式。此证书对于解密应用程序请求并使Proxyman能够拦截和分析网络流量至关重要。
此命令在 Windows Power shell 上不起作用,因此我在 Git Bash 终端上运行了此命令:
在 Git bash 上运行命令
命令执行成功,并.0在同一文件夹中生成了一个扩展名的文件:
获取Android证书

4. 部署证书

我们在上一步中生成的文件.0是将要添加到 Android 模拟器中的证书。为此,我们首先打开终端并列出可用的 AVD:

emulator -list-avds

从可用的 AVD 中,我们将使用以下命令运行所需的 AVD:

emulator -avd <avd_name_here> -writable-system

请注意,我们使用-writable-system标志来启动具有可写系统权限的 AVD,从而允许修改。之后我们需要打开另一个终端并运行以下命令:

adb root

此命令以 root 权限重新启动 ADB 守护进程。之后,我们运行此命令以禁用设备上的安全启动验证:

adb shell avbctl disable-verification

接下来我们使用以下命令重新启动设备:

adb reboot

设备重新启动后,运行以下命令以 root 身份重新启动 ADB:

adb root

通过执行以下命令将分区重新挂载为读写:

adb remount

如果 ADB 提示您重新启动设备,请adb reboot再次运行,然后运行adb root​​adb remount。现在我们准备.0使用以下命令将重命名的 SSL 证书文件(我们之前生成的文件)推送到设备,并替换<path_to_certificate>为证书文件的实际路径:

adb push <path_to_certificate> /system/etc/security/cacerts

此命令将证书文件复制到设备上的相应目录。现在我们将通过运行以下命令为证书文件设置正确的权限:

adb shell chmod 664 /system/etc/security/cacerts/<name_of_pushed_certificate>

现在我们需要使用以下命令最后一次重新启动设备:

adb reboot

设备将重新启动,并将部署 SSL 证书。我们已成功将 SSL 证书部署到您的 Android 模拟器中。这将允许模拟器识别并信任该证书,从而使 Proxyman 能够拦截和分析来自设备的网络流量。

现在要验证 Android 设备上的证书,您可以导航到Android 设备设置Trusted Credentials中的System部分,您可以找到选项卡下列出的证书。这确认证书已成功安装并被您的 Android 设备识别:Encryption & CredentialsProxyman LLCSystem

验证证书

5. 在Android模拟器上设置代理

最后一步涉及我们配置 Android 模拟器以使用我们设置的 Proxyman 代理。为此,请在您的计算机上启动 Proxyman。在 Proxyman 中,导航至Certificate菜单。Install Certificate on Android从下拉列表中选择。Physical Devices从子菜单中选择。请注意,您无需担心该术语Physical Devices,因为我们不会遵循该特定指南。我们只需要此菜单中的一些基本细节:
Proxyman 上的物理设备

Android setup guide中,确保复制 IP 地址和端口号。该过程的后续步骤将需要这些详细信息:

复制 IP 和端口号接下来是转到 Android 模拟器并单击菜单图标,如屏幕截图所示:
菜单按钮

单击Settings侧栏中的选项。单击后,Settings,您可以继续导航到该Proxy选项卡:
导航至设置

在代理选项卡中,选中该Manual proxy configuration选项。之后粘贴我们从 Proxyman Android setup guide步骤复制的 IP 地址和端口并点击apply按钮:

配置IP和端口号

我们已经成功完成了拦截来自 Android 设备的 HTTP 请求的所有必要设置步骤。现在,我们可以启动 Proxyman 并在 Android 模拟器上运行应用程序。当我们使用应用程序时,Proxyman 将捕获并显示与网络请求相关的所有相关详细信息和数据,为我们提供有关应用程序通信的宝贵见解和可见性。
使用Proxyman拦截网络请求

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【黑马程序员】机器学习

&#xff08;一&#xff09;机器学习概述 一、机器学习算法分类 1、监督学习&#xff1a; &#xff08;1&#xff09;目标值是类别&#xff1a;分类问题 k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归 &#xff08;2&#xff09;目标值是连续型的数据&#xff1a;回归…

.NET 8使用牛逼的AOT发布ASP.NET Core应用

简介 .NET AOT编译是一种.NET运行时的编译方式&#xff0c;它与传统的JIT编译方式不同。在传统的JIT编译中&#xff0c;.NET应用程序的代码在运行时才会被编译成本地机器码&#xff0c;而在AOT编译中&#xff0c;代码在运行之前就被提前编译成本地机器码。这样可以在代码运行的…

首次建站用香港服务器有影响没?

​  对于首次租用香港服务器的朋友来说&#xff0c;难免会对它没有一个很清晰的认知。因此&#xff0c;本文就从香港服务器适用人群&#xff0c;以及建站影响&#xff0c;选择技巧上做一个全方位的解答。 1. 哪一类人群适合使用香港服务器建站? 做外贸业务的网站。香港走的国…

【弃坑xdm】docker容器作为开发环境,更加灵活可靠

关于我准备转行深度学习~~ 弃坑xdm 弃坑xdm 弃坑xdm 转发给你的同学&#xff0c;吓他们一跳~~ ps:其实我准备使用docker容器作为开发环境&#xff0c;vscode可以直接连接docker容器&#xff0c;更加灵活可靠。

Linux学习——进程状态

目录 一&#xff0c;进程状态 1&#xff0c;进程状态的分类 2.状态的本质 3.进程状态详解 1.运行状态 2.阻塞状态 3.挂起状态 4.Linux内核中的状态分类 一&#xff0c;进程状态 1&#xff0c;进程状态的分类 如下图&#xff1a; 在计算机中我们的状态的分类便如下图所示…

Git 详解

目录 一. 前言 1.1 特点 1.2. 操作流程 二. Git bash 三. 操作指令 3.1. 基本命令 3.1.1. git add 3.1.2. git checkout 3.1.3. git commit 3.1.4. git status 3.1.5. git log 3.1.6. git reset 3.1.7. git忽略文件 3.2. 分支命令 3.2.1. 创建分支 3.2.2. 查看…

JDBC-day05(DAO及相关实现类)

七&#xff1a;DAO及相关实现类 1. DAO介绍 DAO&#xff1a;Data Access Object访问数据信息的类和接口&#xff0c;包括了对数据的CRUD&#xff08;Create、Retrival、Update、Delete&#xff09;&#xff0c;而不包含任何业务相关的信息。有时也称作&#xff1a;BaseDAO作用…

websocket+node+vite(vue)实现一个简单的聊天

1.前端逻辑 本项目基于之前搭建的vite环境&#xff1a;https://blog.csdn.net/beekim/article/details/128083106?spm1001.2014.3001.5501 新增一个登录页和聊天室页面 <template><div>登录页</div><div>用户名:<input type"text" pl…

React create-react-app 里配置代理(解决跨域)

配置代理&#xff1a; creact-react-app v5 当然不是v5 下面的方法也适用。 方式一&#xff1a;package.json里配置 其实 cra里给了个简单的配置代理 就是在package.json里加上proxy就行了。 修改时需要 npm start重新运行一下&#xff0c;要不然可能不生效。 proxy只能以 h…

Leetcode学习记录(1)

1.unordered_map C关联容器&#xff0c;内部hash表结构&#xff08;检索&#xff09; 通过key来检索value&#xff0c;不是通过绝对地址&#xff0c;内部无序&#xff0c;Map对应唯一值&#xff0c;动态管理 unordered_map<const Key, T> map; 如上述代码表述&#x…

主机jvisualvm连接到tomcat服务器查看jvm状态

​使用JMX方式连接到tomcat&#xff0c;连接后能够查看前边的部分内容&#xff0c;但是不能查看Visual GC&#xff0c;显示不受此JVM支持&#xff0c; 对了&#xff0c;要显示Visual GC&#xff0c;首先要安装visualvm工具&#xff0c;具体安装方式就是根据自己的jdk版本下载…

第二证券:10家央企集体行动!9月至今逾百家公司回购增持

10月16日&#xff0c;10家央企连续公告&#xff0c;掀起了新一轮回购增持潮。其间&#xff0c;5家上市公司发布新增增持方案&#xff0c;约5亿&#xff5e;16.3亿元&#xff1b;2家上市公司发布增持打开&#xff0c;估计约23.43亿元&#xff1b;1家上市公司新增回购方案&#x…

服务器数据恢复-RAID5常见故障的数据恢复方案

raid5阵列常见故障&#xff1a; 1、服务器硬件故障或者RAID阵列卡故障&#xff1b; 2、服务器意外断电导致的磁盘阵列故障&#xff1b; 3、服务器RAID阵列阵列磁盘出现物理故障&#xff0c;如&#xff1a;电路板坏、磁头损坏、盘面划伤、坏扇区、固件坏等&#xff1b; 4、误操作…

25项,2023年国家优青(港澳)入选者完整名单公布!

国家优秀青年科学基金项目&#xff08;港澳&#xff09;旨在支持香港特别行政区、澳门特别行政区&#xff08;以下简称港澳特区&#xff09;科技创新发展&#xff0c;鼓励爱国爱港爱澳高素质科技人才参与中央财政科技计划&#xff0c;为建设科技强国贡献力量&#xff0c;2023 年…

MyBatisPlus(十九)自动填充

说明 自动填充指的是&#xff0c;当数据被 插入 或者 更新 的时候&#xff0c;会为指定字段进行一些默认的数据填充。 比如&#xff0c;插入时&#xff0c;会自动填充数据的创建时间和更新时间&#xff1b;更新时&#xff0c;会自动填充数据的更新时间。 实现方式 配置处理器…

Centos中如何删除带有特殊符号的乱码文件_rz命令产生的乱码文件如何删除_使用文件号删除乱码文件---Linux运维工作笔记058

在使用rz命令进行文件上传的时候,偶尔会产生一堆的乱码文件,比如: 可以看到有一堆的乱码文件. 普通的乱码文件,直接rm -rf 文件名就可以删除了,但是有一些不行,包含特殊符号的,比如: 这个文件报错了,可以看到用rm -rf 根本删除不掉. 这个文件后面包含了一个.对吧 那该怎么解决…

python基于django的留学生服务管理平台

留学服务管理平台的用户是系统最根本使用者&#xff0c;按需要分析系统包括三类用户&#xff1a;学生、教师、管理员。这三类用户对系统的需求简要如下。技术栈 后端&#xff1a;pythondjango 前端&#xff1a;vueCSSJavaScriptjQueryelementui 开发语言&#xff1a;Python 框架…

69. x 的平方根

69. x 的平方根 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;1. log换底2. 二分查找3. 牛顿迭代法 原题链接&#xff1a; 69. x 的平方根 https://leetcode.cn/problems/sqrtx/description/ 完成情况&#xff1a; 解题思路&#xff…

2023年中国乳胶制品产量、需求量及市场规模分析[图]

乳胶泛指聚合物微粒分散于水中形成的胶体乳液&#xff0c;又称胶乳。习惯上将橡胶微粒的水分散体称为胶乳&#xff0c;而将树脂微粒的水分散体称为乳液。以乳胶为原料制成的制品称乳胶制品&#xff0c;常见的如海绵、手套、玩具、胶管等。 我国乳胶制品细分主要分为避孕套、乳胶…

idea不识别yaml文件导致,配置文件点击跳转不了类

文章目录 场景确认的idea安装了ymal插件,确认你的配置文件是yml格式的还是ymal格式的然后在项目配置中看看是否有对应的后缀.最后看看在项目模块里面有没有spring模块跟对应的配置文件,如果没有就要添加这样点击配置文件就能跳转到对应的实体类了 场景 在使用idea时&#xff0…