希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢!
0x00 前言
App无法抓包总的来说分为App有没有做限制,当App没有做限制抓不到包时,可能是工具(BurpSuite、Charles等)证书没有配置好,或者有的数据包走的不是http/https协议,这时可以选用Wireshark、科来等能抓其他协议数据包的工具,这是比较好解决的一种情况。
本文主要探讨的是由于App做了限制而无法抓包的情况,其中App常见限制有以下几种:
1、反模拟器调试
2、反证书检验
3、反代理或VPN
0x01 反模拟器调试绕过
在介绍绕过手段之前,不妨思考App检测到我们使用模拟器的逻辑是是什么?猜测可能会通过检测内存、硬盘、处理器、手机号码、IMEI、网络等等,而模拟器是可以调整这些设置的,我们可以让模拟器各项参数及设置看起来更像真机,这样可以绕过一些简单的反模拟器调试。
但有的时候如果App检测模拟器调试的逻辑比较复杂,那么上述方法大概率就不行了,此时可以考虑逆向反编译App,找到检测模拟器调试的代码并删除,然后重新打包。这种绕过手法多数情况下是可行的,但如果App还检测自身md5或加壳便不行了。最后,实在没办法的情况下可以考虑使用真机。
总结:1、用真机;2、模拟器模拟真机;3、逆向删反模拟器调试代码后重打包
0x02 反证书检验绕过
App的证书校验分为单向校验、双向校验,本文先讲述单向校验的绕过,双向校验绕过比较复杂,我将在下一篇文章讲述。
App单向证书校验简单来说就是会校验目标站点的证书