如何在没有代码的情况下在 Android 上查看 React Native App 的网络流量

Posted

技术标签:

【中文标题】如何在没有代码的情况下在 Android 上查看 React Native App 的网络流量【英文标题】:How to view network traffic of React Native App on Android WITHOUT code 【发布时间】:2021-12-18 03:25:03 【问题描述】:

我正在尝试查看与我没有任何关联的 android 应用的网络流量。

这是我所做的:

    从 google play 商店安装应用程序。运行 adb shell pm path ... 显示 多个 APK 文件已安装。

    通过我的笔记本电脑代理网络流量。这可行,但来自应用的所有请求都是加密的。

    在我的 android 上安装自定义证书颁发机构,为笔记本电脑代理内部的 SSL 加密/解密做准备。

    解密我的笔记本电脑代理上的流量。从笔记本电脑代理日志中,我可以看到许多请求都成功了,包括 mail.google.com。但是,我感兴趣的应用程序在 android 和我的笔记本电脑之间的 SSL 握手失败。

    将所有应用 APK 文件从我的 android 拉到笔记本电脑。

我的计划:修改 APK 文件并将它们重新加载到我的 android 以接受我自己的 SSL ca。我相信这可以通过简单地修改/添加xml文件来实现。

问题:如何配置 android studio 以将许多 APK 文件加载到我的 android 上。我可以让它安装一个APK文件,但这不起作用。

Edit1:为清楚起见,将“cert”替换为“ca”。

【问题讨论】:

【参考方案1】:

放入您自己的证书是行不通的。加密后的流量在到达服务器时会使用服务器的公钥进行加密,应用程序会为返回的流量随机生成一个。添加 SSL 证书不会影响传出流量,除非您还要进行中间人攻击。

可能最简单的方法是编译一个自定义 AOSP,将网络库替换为也记录到文件的版本。让流量正常通过,但让 SSL 库为我们解密并直接从中读取结果。

【讨论】:

我添加了一个证书颁发机构,它确实有效。 (它适用于 gmail 和其他应用程序)。

以上是关于如何在没有代码的情况下在 Android 上查看 React Native App 的网络流量的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有安装 MQTT 应用程序的设备的情况下在 android 上使用 MQTT 将消息推送到特定 IP?

如何在不使用模拟位置的情况下在 android 上欺骗位置?

如何在未经许可的情况下在Android中使用意图拨打电话?

如何在不使用扩展的情况下在 Autodesk forge 查看器上显示图标

在没有 MediaPlayer 的情况下在 android 上播放实时媒体流

在没有互联网的情况下在android上获取位置坐标(纬度和经度)