一文搞懂Android抓包(android 抓包)

一文搞懂Android抓包(android 抓包)

今天主要跟大家介绍一下Android的抓包和防止抓包

抓包工具的话介绍两款抓包工具,Profiter和charles

工具环境:

Android Studio 4.2.2

手机Google Pixel 3XL Android 11

使用Profiler 工具抓包

将自己的手机连接到电脑上,然后打开Android Studio 的Profiler

Android StudIO 白狐及以下版本的NetWork Inspector 在 Profler 中,大黄蜂版本的NetWork Inspector 在 App Inspection中。

然后app 访问网络会有这样提示:

一文搞懂Android抓包(android 抓包)

我们选择波动 ,可以看到请求的信息

一文搞懂Android抓包(android 抓包)

然后我们点击接口信息之后,可以看到请求的详细信息

一文搞懂Android抓包(android 抓包)

这样我们就可以通过AndroidStudio 的Profiler 轻松的抓取我们App 的网络信息了。

使用Charles 工具抓包

1.安装证书

首先下载Charles ,打开之后点击Help->SSL Proxying -> Install Charles Root Certificate 安装根证书

一文搞懂Android抓包(android 抓包)

然后双击证书,进行信任

一文搞懂Android抓包(android 抓包)

电脑端这就配置完了, 接下来配置 客户端

方式1:

手机端通过浏览器下载证书

一文搞懂Android抓包(android 抓包)一文搞懂Android抓包(android 抓包)

手机端 对连接wifi 进行代理设置,设置手动代理,将charles 提示的代理地址 设置好,然后charles 就会有一个提示:

一文搞懂Android抓包(android 抓包)

然后我们同意就好了。

然后浏览器输入chls.pro/ssl 进行下载证书,下载完成进行安装即可;不过有时候这种方式无法安装,可以通过方式2 进行安装。

方式2:

通过Help->SSL Proxying -> Save Charles Root Certificate 将证书保存在电脑上

一文搞懂Android抓包(android 抓包)

然后上传到手机端,点击设置-安全-加密与凭证-安装证书-CA证书,选择我们刚刚的证书进行安装即可。

至此,安装证书的步骤我们就完成了。

2.抓包

此时,当我们进行网络访问 的时候,可以在charles上面看到我们访问的数据了

一文搞懂Android抓包(android 抓包)

我们可以通过左下角的Filter 进行地址过滤,找到我们想看的网络数据。

防止抓包

有时候在我们的项目中,因为一些安全问题,我们不想让我们app被抓包,就需要增加一些防止抓包的方法。

数据加密

我们的接口信息可以采用数据加密的方式,防止信息泄露,这个客户端与后端定义好就可以了。

SSL证书校验:

这种方式需要后端或者运维方面配合,拿到SSL服务器证书。

1.提取证书的公钥

openssl rsa -in certificate.crt -pubout > public_key.pub

2.将 public_key.pub 内地 —begin public key— 和 —end public key— 去除,并合并成一行

cat public_key.pub | grep -v 'PUBLIC' | awk '{printf("%s",$0)}'

得到输出类似:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...

3.利用2命令输出的结果,然后 计算sha256摘要 (下载pubkey-SHA256.py)

python pubkey-sha256.py MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...

得到的输出类似

SHA256:S8Ff3JCaO4V...

将开头的 SHA256: 改成 sha256/ ,得到

sha256/S8Ff3JCaO4V...

然后在我们的OkHttp中进行配置一下

OkHttpClient.Builder builder = new OkHttpClient.Builder();builder.certificatePinner(new CertificatePinner.Builder().add("域名", "sha256/S8Ff3JCaO4V...").build());

然后我们再次用charles 进行抓包就是这样的结果:

一文搞懂Android抓包(android 抓包)

虽然存在网络请求记录,但是数据抓不到了。

#####

禁止代理

Okhttp 在建立Socket 连接之前,Okhttp 会获取系统的代理信息,如果设置代理,那么通过DNS解析其IP然后使用代理IP来建立socket连接。如果没有设置代理,那么会使用请求中的url的IP地址,来建立连接。

/** * Gets the system-wide proxy selector. * * @throws SecurityException * If a security manager has been installed and it denies * {@link NetPermission}{@code ("getProxySelector")} * @see #setDefault(ProxySelector) * @return the system-wide {@code ProxySelector} * @since 1.5 */ public static ProxySelector getDefault() { SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPermission(SecurityConstants.GET_PROXYSELECTOR_PERMISSION); } return theProxySelector; } /** * Sets (or unsets) the system-wide proxy selector. * * Note: non-standard protocol handlers may ignore this setting. * * @param ps The HTTP proxy selector, or * {@code null} to unset the proxy selector. * * @throws SecurityException * If a security manager has been installed and it denies * {@link NetPermission}{@code ("setProxySelector")} * * @see #getDefault() * @since 1.5 */ public static void setDefault(ProxySelector ps) { SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPermission(SecurityConstants.SET_PROXYSELECTOR_PERMISSION); } theProxySelector = ps; }

OkHttp使用ProxySelector来获取代理信息,在构造OkHttpClient时是可以设置的,其默认值是ProxySelector.getDefault(),该默认值会反应出系统的代理信息。 那么我们就可以提供自己的ProxySelector实现来达到绕过系统代理的能力。

OkHttpClient client = new OkHttpClient.Builder() 2 .proxySelector(new ProxySelector() { 3 @Override 4 public List<Proxy> select(URI uri) { 5 return Collections.singletonList(Proxy.NO_PROXY); 6 } 7 8 @Override 9 public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {10 11 }12 }).build();

设置玩完成之后,再用Charles进行抓包的话,已经抓取不到app 的访问信息了。

总结

上述内容我们主要介绍了两种抓包方式:

  1. 使用AndroidStudio 自带的Profiler 进行抓包
  2. 使用Charles

使用Charls 介绍了两种安装证书的方式:

  1. 使用浏览器安装证书
  2. 手动安装证书

三种防止抓包的方式:

  1. 数据加密
  2. 进行SSL证书校验
  3. 禁用代理

希望大家能够通过本文的讲解,能够对抓包有所了解,对反抓包也有方案。

您的点赞,关注就是我最大的动力!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年3月29日 下午1:25
下一篇 2024年3月29日 下午1:39

相关推荐

  • 社区团购小程序怎么快速开发上线?(社区团购小程序怎么快速开发上线的)

    引言:社区团购项目是2020年倍受关注和热议的一个话题,其最大的优势就是可以通过团长快速与周边用户建立消费链接,实现供销增长。再而因为社区团购本身具有地域性,所以进入门槛比较低,具…

    科研百科 2023年4月10日
    72
  • 鱼类科研项目

    鱼类科研项目 鱼类是地球上最古老,同时也是数量最多的动物之一。它们在地球上生存了数百万年,经历了各种气候变化和地质事件,成为地球上的生态多样性的重要组成部分。然而,由于人类活动的影…

    科研百科 2025年2月22日
    0
  • 三甲医院科研项目管理办法

    三甲医院科研项目管理办法 为规范三甲医院科研项目管理,提高科研项目质量和效率,促进科学技术发展,根据《中华人民共和国科学技术法》和其他相关法律法规,并结合三甲医院实际情况,制定本项…

    科研百科 2025年4月27日
    3
  • 项目管理系统的主要功能模块(项目管理系统是什么)

    项目管理系统是什么项目管理系统是什么?它是一项具有系统性的工程,它可以有效地提高效率,让项目管理员能够合理地安排时间,尽可能减少遗忘,使工作效率更好。项目管理的发展前景:1、项目管…

    科研百科 2024年8月1日
    27
  • 临床医生如何做科研项目

    临床医生如何做科研项目 科研项目是临床医生工作中非常重要的一部分。作为医生,我们经常需要为病人进行治疗,但是治疗并不是我们的全部工作。为了更好地完成我们的工作,我们需要通过科研项目…

    科研百科 2025年4月30日
    1
  • 党员活动室建设标准

    党员活动室建设标准 党员活动室是党员集中学习、组织活动、开展批评和自我批评的重要场所,是党的组织建设和思想建设的重要内容。因此,党员活动室的建设标准至关重要。下面,我将详细介绍党员…

    科研百科 2024年10月5日
    18
  • 教育科学规划课题属于教研还是科研

    教育科学规划课题属于教研还是科研? 随着教育科学的不断发展,教育科学研究的重要性越来越受到关注。教育科学研究的目标是探究教育教学中的规律和问题,为教育教学提供理论支持和实践指导。在…

    科研百科 2024年10月2日
    35
  • 党建聚力 网格管理 数字智治 宋村“三治融合”治理体系助力乡村振兴

    来源:【淳安融媒体中心】 通讯员 刘沛旺 基层治理是国家治理的基石,有效的基层治理承载着人们的期待。宋村乡自美丽城镇创建以来,积极完善自治、法治、德治“三治融合”城镇治理智能化体系…

    科研百科 2024年6月22日
    37
  • 新产品试制工作程序(新产品试制工作程序是什么)

    新产品试制工作程序 第一条 进行新产品简单工艺设计:根据新产品任务书,安排利用厂房、面积、设备、测试条件等设想和简略工艺流程。 第二条 进行工艺分析:根据产品方案设计和技术设计,做…

    科研百科 2022年11月28日
    213
  • 数字阅读科研项目

    数字阅读科研项目:探索数字阅读的无限可能 数字阅读科研项目是一项旨在探索数字阅读技术的深入研究项目。随着互联网和移动设备的普及,数字阅读已经成为人们日常生活中不可或缺的一部分。然而…

    科研百科 2025年2月10日
    2