这篇文章谈谈如何防止 App 被抓包

首先我们要知道常用的抓包方式有 Charles 和 Fiddler。他们通过在手机网络中添加代理的方式,拿到 App 的请求。

如果是 Https 连接的话,我们要先在手机中添加 Charles或Fiddler 的证书,然后Charles通过修改服务器发送证书链,让手机信任Charles 的证书,从而拿到 App 的请求。

下面是一些对策:

一、使用无代理 Proxy.NO_PROXY

charles 和 fiddler 都使用代理来进行抓包,对网络客户端使用无代理模式即可防止抓包,如

OkHttpClient.Builder().retryOnConnectionFailure(true).proxy(Proxy.NO_PROXY).sslSocketFactory(ssl, trustManager).build()

通常情况下上述的办法有用,但是无法防住使用 VPN 导流进行的抓包( Drony + Charles)

使用VPN抓包的原理是,先将手机请求导到VPN,再对VPN的网络进行Charles的代理,绕过了对App的代理。

下面是对策:

二、使用证书校验

这种方式要在app嵌入证书,以okhttp为例:

当okhttp使用X509TrustManager对服务器证书进行校验时,如果服务器证书的 subjectDN 和嵌入证书的 subjectDN 一致,我们再进行签名内容 signature 的比对,如果不一致,抛出异常。示例代码如下:

  1. 首先从本地读出证书,获取一个X509Certificate
val myCrt: X509Certificate by lazy {getCrt(R.raw.my_ca)
}private fun getCrt(@RawRes raw: Int): X509Certificate {val certificateFactory = CertificateFactory.getInstance("X.509")val input = ApplicationContext.resources.openRawResource(raw)input.use {return certificateFactory.generateCertificate(input) as X509Certificate}
}
  1. 检查服务器证书时对比嵌入的证书
private fun getTrustManagerInRelease(): X509TrustManager {return object : X509TrustManager {override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String?) {}override fun getAcceptedIssuers(): Array<X509Certificate> = arrayOf()override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String?) {val myCrt: X509Certificate = myCrtif (chain[0].subjectDN.name == myCrt.subjectDN.name) {if (!myCrt.signature!!.contentEquals(chain[0].signature)) {throw SSLHandshakeException("签名不符!")}}}}
}
  1. 将自定义的 SSLSocketFactory 和 X509TrustManager 将入到 okhttp 客户端
    private fun getClient(ssl: SSLSocketFactory, trustManager: X509TrustManager): OkHttpClient {return OkHttpClient.Builder().retryOnConnectionFailure(true).proxy(Proxy.NO_PROXY).sslSocketFactory(ssl, trustManager).build()}

这样一来便无法通过 Drony + Charles 进行抓包了

作者:一方乌鸦
链接:https://www.jianshu.com/p/9921db646c59
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Android App 防止抓包相关推荐

  1. Android App无法抓包的解决方案总结

    原文链接 干货|Android App无法抓包的解决方案总结 如果对文章感兴趣,可以扫一扫微信二维码关注作者的微信公众号,后续会推送更多干货文章,感谢您的支持.

  2. Packet Capture(Android APP端抓包工具)

    Packet Capture就是一个app,是用来手机上抓包的. 免root的app,运行在android平台.用于http/https网络流量嗅探的app 捕获网络数据包,并记录他们,使用中间人技术 ...

  3. Android端App无法抓包解决方法——Drony

    Android端App无法抓包解决方法--安装Drony 1:安装drony (这里手机使用的Android设备) 2:开启代理抓包软件(Burpsuite) 3:配置drony转发 1:安装dron ...

  4. android抓包 dns,利用 dns 实现 app简易抓包

    场景:对H5打包的 app实现抓包 环境:centos 8 follow the guide: https://www.linuxtechi.com/setup-bind-server-centos- ...

  5. Android 免 root 抓包简易教程

    目录 概述 不同版本 Android 的策略 抓包局限 手机虚拟机简介 信任证书 导出证书 计算证书哈希值 .pem 等格式 .crt/.cer 等格式 将证书放入到 system 的对应路径下 抓包 ...

  6. Android 过反抓包总结入门篇

    Android 过反抓包总结入门篇 做协议分析少不了抓包,但是对于新入门我们来说,这是一大难题,网上各种各样的工具不少.但是如果遇到反抓包,那就芭比Q了.但是一些简单的反抓包机制还是很好过的. 1.要 ...

  7. Https/Tcp抓包工具Charles、fiddler,ping (网络诊断工具),Android平台HTTPS抓包解决方案及问题分析HttpCanary

    市面上已经有一些弱网络模拟工具,比如微软的Network Emulator for Windows Toolkit(NEWT),Facebook的Augmented Traffic Control(A ...

  8. python爬虫抖音_Python 爬虫——抖音App视频抓包

    APP抓包 前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取.现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视 ...

  9. 关于fi dd ler 手机抓包 网卡地址地址_ApkCrack 一键生成支持 Android 7.0 抓包的 apk...

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:星星y 链接:https://www.jianshu.com/p/44923e658f47 声明:本文已获星星y ...

最新文章

  1. metaSPAdes:新型多功能宏基因组拼接工具
  2. C语言 | 哈夫曼(haffman)算法实现数据的解压缩(源代码)
  3. 守卫者的挑战(guard)
  4. html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数
  5. 第5次基金申请终于中了!这个血泪教训一定要避免
  6. data为long 怎么设置vue_vue--为什么data属性必须是一个函数
  7. P2479 [SDOI2010]捉迷藏
  8. 基于ESP-IDF环境的ESP32-C3开发之No such file or directory
  9. bootstrap 日历
  10. 黑苹果完美升级mac10.13.6,更换内置无线网卡dw1820A
  11. solaris snoop 抓包
  12. 网络安全博客与文章分享:
  13. MaxCompute-ODPS SQL报错:Quota not enough,配额组资源不足
  14. 均匀分配算法(Python2)
  15. 方向导数和梯度的辨析
  16. 关于VB.net禁用右键菜单的实现
  17. 写时复制(Copy On Write)
  18. 2023软考信息系统项目管理师论文写作
  19. DevOps云翼日志服务实践
  20. 计算机资格证面试题库,江苏教师资格证面试题库:2019上半年高中信息技术教师资格证面试试题(精选)第二批...

热门文章

  1. 营销的力量:二维码营销究竟能为企业做什么?
  2. 在使用TreeMap时遇到Cannot invoke “java.lang.Integer.intValue()“
  3. 笔记本计算机无法启动怎么解决,电脑启动不了怎么办,详细教您笔记本电脑启动不了怎么办...
  4. 身份证丢失后被入职16家公司,网友:现在身份证都能自己打工了?
  5. 3D人脸重建--学习笔记
  6. 烽火通信春招初面总结
  7. vue dplayer插件 播放m3u8(直播推流)
  8. virtualbox 设置桥接模式
  9. 上一根烟.点上心里的想念 伤感日志
  10. ElasticSearch权限控制实战