Android App 防止抓包
这篇文章谈谈如何防止 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 的比对,如果不一致,抛出异常。示例代码如下:
- 首先从本地读出证书,获取一个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}
}
- 检查服务器证书时对比嵌入的证书
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("签名不符!")}}}}
}
- 将自定义的 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 防止抓包相关推荐
- Android App无法抓包的解决方案总结
原文链接 干货|Android App无法抓包的解决方案总结 如果对文章感兴趣,可以扫一扫微信二维码关注作者的微信公众号,后续会推送更多干货文章,感谢您的支持.
- Packet Capture(Android APP端抓包工具)
Packet Capture就是一个app,是用来手机上抓包的. 免root的app,运行在android平台.用于http/https网络流量嗅探的app 捕获网络数据包,并记录他们,使用中间人技术 ...
- Android端App无法抓包解决方法——Drony
Android端App无法抓包解决方法--安装Drony 1:安装drony (这里手机使用的Android设备) 2:开启代理抓包软件(Burpsuite) 3:配置drony转发 1:安装dron ...
- android抓包 dns,利用 dns 实现 app简易抓包
场景:对H5打包的 app实现抓包 环境:centos 8 follow the guide: https://www.linuxtechi.com/setup-bind-server-centos- ...
- Android 免 root 抓包简易教程
目录 概述 不同版本 Android 的策略 抓包局限 手机虚拟机简介 信任证书 导出证书 计算证书哈希值 .pem 等格式 .crt/.cer 等格式 将证书放入到 system 的对应路径下 抓包 ...
- Android 过反抓包总结入门篇
Android 过反抓包总结入门篇 做协议分析少不了抓包,但是对于新入门我们来说,这是一大难题,网上各种各样的工具不少.但是如果遇到反抓包,那就芭比Q了.但是一些简单的反抓包机制还是很好过的. 1.要 ...
- Https/Tcp抓包工具Charles、fiddler,ping (网络诊断工具),Android平台HTTPS抓包解决方案及问题分析HttpCanary
市面上已经有一些弱网络模拟工具,比如微软的Network Emulator for Windows Toolkit(NEWT),Facebook的Augmented Traffic Control(A ...
- python爬虫抖音_Python 爬虫——抖音App视频抓包
APP抓包 前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取.现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视 ...
- 关于fi dd ler 手机抓包 网卡地址地址_ApkCrack 一键生成支持 Android 7.0 抓包的 apk...
code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:星星y 链接:https://www.jianshu.com/p/44923e658f47 声明:本文已获星星y ...
最新文章
- metaSPAdes:新型多功能宏基因组拼接工具
- C语言 | 哈夫曼(haffman)算法实现数据的解压缩(源代码)
- 守卫者的挑战(guard)
- html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数
- 第5次基金申请终于中了!这个血泪教训一定要避免
- data为long 怎么设置vue_vue--为什么data属性必须是一个函数
- P2479 [SDOI2010]捉迷藏
- 基于ESP-IDF环境的ESP32-C3开发之No such file or directory
- bootstrap 日历
- 黑苹果完美升级mac10.13.6,更换内置无线网卡dw1820A
- solaris snoop 抓包
- 网络安全博客与文章分享:
- MaxCompute-ODPS SQL报错:Quota not enough,配额组资源不足
- 均匀分配算法(Python2)
- 方向导数和梯度的辨析
- 关于VB.net禁用右键菜单的实现
- 写时复制(Copy On Write)
- 2023软考信息系统项目管理师论文写作
- DevOps云翼日志服务实践
- 计算机资格证面试题库,江苏教师资格证面试题库:2019上半年高中信息技术教师资格证面试试题(精选)第二批...
热门文章
- 营销的力量:二维码营销究竟能为企业做什么?
- 在使用TreeMap时遇到Cannot invoke “java.lang.Integer.intValue()“
- 笔记本计算机无法启动怎么解决,电脑启动不了怎么办,详细教您笔记本电脑启动不了怎么办...
- 身份证丢失后被入职16家公司,网友:现在身份证都能自己打工了?
- 3D人脸重建--学习笔记
- 烽火通信春招初面总结
- vue dplayer插件 播放m3u8(直播推流)
- virtualbox 设置桥接模式
- 上一根烟.点上心里的想念 伤感日志
- ElasticSearch权限控制实战