以前微信是可以直接信任用户证书,然后使用抓包软件例如 Fiddler、Mitmproxy 来查看分析小程序网络请求的。
可是自从某个版本以后,这个特性被限制了,十分不利于网络分析调试,从网友反馈的情况看:
- 安卓系统
- 安卓系统7.0及以下【不影响】
- 安卓系统7.0以上
- 微信7.0以下版本【不影响】
- 微信7.0及以上版本【无法抓包】
- 苹果系统【不影响】
可见在满足三个条件,安卓,安卓版本大于7.0,微信版本大于等于7.0,是无法抓包的,微信APP去掉了信任用户证书的配置。技术上的实现可能是通过 android:networkSecurityConfig
所谓的ssl pinning技术。
此时对于高版本的安卓用户有以下几种解决方案:
1. 使用微信版本 6.7.3
这个是最简单的
2. 使用 VirtualXposed
这个软件不需要Root权限,不会修改系统属性。相当于自己的虚拟空间,本来是微信的进程空间,现在放在自己的进程空间运行了,所以可以修改应用的进程运行环境。具体使用介绍参考:
然后继续安装一个 JustTrustMe 模块,禁止证书校验。
通过以上两步,可以完美的实现安卓高版本的抓包。
3. Root
这个操作难度稍微有点大,视手机而定。现在比较流行的是 Xposed 框架。
以上提供了几种方案,对于第二种、第三种使用 VirtualXposed、Xposed 其实是有一些风险的,Android 手机装插件有可能微信被封号?一篇文章告诉你来龙去脉 这篇文章给出了比较全面的分析,
以下行为都是可能被检测出来的:
- 平时微信会封禁的账户类型(诈骗,色情营销,吸粉账号等)
- 手机上安装了 Xposed 框架并激活了修改微信相关模块的用户
- 在手机上安装了 Magisk 框架并且激活了 Systemless Xposed 的用户
- 只在手机上安装了 Xposed 或 Magisk 框架但没有激活的用户
- 一部分只 ROOT 手机的用户(存疑)和使用越狱后 iOS 的用户。
- 使用手机自带/第三方的微信分身功能同时使用多个微信账户。
- 少部分什么都没装无辜躺枪的 Play 商店版微信用户(一脸懵逼)
这里的分析其实衍生了第四种方法,可能风险比较小的?
4. VirtualXposed + Google Play 版本的微信 + JustTrustMe
原因是:
Play 商店拥有更加严格的审核标准,像是扫描用户应用列表和调用栈检测的代码会通不过商店的审核,使用 Play 商店版微信会更有安全保证
这种方案综合来看是比较好的。
可见微信对于安全性的投入力度之大,不过我们掌握了这些规律后,此后也会游刃有余。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)