如何在没有代码的情况下在 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 上欺骗位置?
如何在不使用扩展的情况下在 Autodesk forge 查看器上显示图标