- 抓包的原理是什么?
代理
客户端请求 -> 经过代理 -> 到达服务端
服务端返回 -> 经过代理 -> 到达客户端
- 任何Https的App都能抓到包么?
Android7.0以下是可以的,只要手机里安装对应的CA证书,比如用Charles抓包,手机只需安装Charles提供的证书就行;Android7.0之后,Google推出更加严格的安全机制,应用默认不信任用户证书(手机里自己安装的证书),自己的app可以通过配置解决,但是抓其它app的Https请求就行不通。
- 如果不能,那些情况下可以抓取,那些情况下抓取不到?
虽然Android7.0之后常规手段不能抓Https的包,但是可以通过黑科技跳过证书验证流程,例如,通过xposed,安装JustTrustMe模块,Https证书验证直接跳过。
- 如何防止被抓包?
- Https双向验证,不是客户端的请求,拒接链接(这里服务端拒绝和客户端建立连接)
- 判断是否是使用WIFI代理(不可靠,可以通过hook跳过)
- 数据加密传输(很多app都是采用加密传输,要注意密钥的安全问题,防止被反编译泄露密钥)