Chrome调试webview页面
前言
有时候在测试APP的时候,发现APP其实是通过webview内嵌了一个h5,这种情况下如果遇到数据加密,那么最好的方式就是调试分析JS,因此如何调试分析webview中页面的JS,就是本次要解决的问题。
过程
检查APP是否开启webview调试模式,即是否有相关代码如下:
也可以通过后续的步骤看chrome能不能捕捉到,或者直接一股脑加载frida js
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
如果没有开启webview调试,可通过frida脚本去hook尝试,相关脚本搜索语法:
site:codeshare.frida.re intext:webview
然后在Chrome中输入Chrome://inspect,可以来到开发工具页面,可以看到外接Android设备。
再正常打开webview,就可以成功监听到对应的webview页面
点击inspect,就达到了和电脑中浏览器F12一样的效果,因此也就可以继续下断点调试分析了。
总结
确保 WebView 调试选项已启用:
- 在 WebView 113.0.5656.0 及更高版本中,如果应用在清单文件中声明为 android:debuggable="true",则调试选项会自动启用。否则,默认值为 false。
连接设备并打开 Chrome 开发者工具:
- 通过 USB 连接 Android 设备到开发者计算机上。
- 在 Chrome 地址栏中输入 chrome://inspect 并按下 Enter 键,打开 Chrome 开发者工具。
在 Chrome 开发者工具中检测 WebView:
- 在 Chrome 开发者工具页面上,确保 "Discover USB devices" 复选框已选中。
- 您应该在 "Remote Target" 部分看到您连接的 Android 设备以及其上运行的 WebView。
连接到 WebView:
- 在 "Remote Target" 部分,找到您要调试的 WebView,并单击 "Inspect" 按钮。
- 这将打开一个新的开发者工具窗口,用于调试 WebView。
使用 Chrome 开发者工具调试 WebView:
- 在新的开发者工具窗口中,您可以像调试常规网页一样操作和分析 WebView。
- 使用 "Elements" 面板查看和编辑 WebView 的 DOM 结构。
- 使用 "Console" 面板查看 WebView 的控制台输出和执行 JavaScript 代码。
- 使用 "Network" 面板监视 WebView 的网络请求和响应。
- 使用其他面板和工具,如 "Sources" 和 "Performance",以进行更详细的调试和性能分析。