android - 如何从 Android 手机读取所有 SSL 流量?

标签 android ssl location privacy packet-capture

我希望能够读取我的 Android 手机的流量以查看它发送的数据。它运行的是 Android 9。

我已经能够使用 Charles,但它只能读取没有 SSL 的流量。似乎如果我正在测试我自己的应用程序,我可以设置一些东西以便它信任证书,但我正在尝试获取所有 流量(所有应用程序等)。我也使用过 Packet Capture 和 NetCapture 应用程序,但它们具有相同的限制。

this video这个人能够做到这一点,但它似乎是旧版本的 Android,所有应用程序都会信任用户安装的证书。

有人有什么想法吗?

最佳答案

在 Android 9 上安装自定义根证书通常不会影响应用程序,因此应用程序执行的 HTTPS 连接不信任您安装的来自 Charles 的证书。要改变这一点,您将不得不操纵每个应用程序或修改 Android 系统本身。此外,一些应用程序(例如 Google 服务和 PlayStore)执行证书/ key 锁定,这完全可以防止破坏 HTTPS 流量,除非对系统进行大量修改:

您必须对您的设备进行 root 并安装 XPosed + 多个模块以允许 SSL/TLS 拦截,如 TrustMeAlready (或旧项目 Just Trust MeSSL Unpinning )。

另一种可能性是使用 Frida结合一些反 TLS 检查/固定脚本。

更多可能性在 this Answer 中描述.

警告:这样做会完全消除设备上每个 SSL/TLS/HTTPS 连接的安全性,因此不仅您而且每个人都可以拦截以这种方式修改的设备所建立的连接!

关于android - 如何从 Android 手机读取所有 SSL 流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533786/

相关文章:

android - sleep 期间未收到警报

java - Android 上的 SimpleXML 和反序列化时出错

java - 在 Java CXF 客户端中实现双向 SSL

linux 脚本,标准目录位置

java - 如何设置 JInternalFrame 的标准 Iconified 位置?

angular - location.hash 改变时如何使用@HostListener? ( Angular 2)

java - 在 Sdcard Android 中写入时找不到文件异常

android - 联系人——如何区分SIM卡、电话和其他联系人?

c# - 无法读取流 (sslStream)

ssl - 需要身份验证时如何使用启用了 ssl 的服务器连接 channel 连接到队列管理器