前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vconsole使用

vconsole使用

作者头像
小小咸鱼YwY
发布2021-09-22 10:06:55
3.4K0
发布2021-09-22 10:06:55
举报
文章被收录于专栏:python-爬虫python-爬虫

Thor

iOS 调试线上 app 中 WebView 的方法

0x1、要解决的问题

工作中时常遇到需要对自己已上线 app 中的 WebView 网页进行一些调试验证的情况,以排查 bug,解决问题。

但是已经在线上的 app 如何能够在不依赖其它代码级 Hook 工具的情况下,进行简单的调试呢?

0x2、解决方案

利用 HTTP 抓包工具 的『断点调试』功能向 WebView 注入调试脚本。这里以 iOS 上的抓包应用 Thor HTTP Sniffer 为例。理论上电脑平台的抓包工具只要支持断点调试(修改 HTTP 响应的能力)都能达成同样的效果。

0x3、技术原理及流程

a. 截获本机请求:利用 HTTP MiTM 截取目标 WebView 的请求,在修改响应消息体后再回传。

b. 修改响应消息体:向目标网页的 HTML 响应中的 body 标签注入调试脚本(文本正则替换)。

c. 修改响应头:去掉响应头中 "Content-Security-Policy" 字段,以保证本机注入的调试脚本能正常执行。

0x4、WebView 调试示例 app

PPHub For Github (by jkpang): GitHub 第三方 iOS 客户端

0x5、用到的工具

第一步:在 Thor 中设置过滤器断点

0x1、打开 Thor, 创建一个过滤器,取名为:”WebView 注入调试”,并添加一个断点进入编辑
0x2、因为需要对 WebView 的响应 HTML 内容进行注入,所以选择在 请求阶段 > 响应消息体回传前 > 新建匹配规则
匹配规则
匹配规则
» 选择『响应 body 前』
响应 body 前
响应 body 前
0x3、在匹配规则中加入表达式进行替换,以注入 vConsole 工具

因为对 HTML body 标签注入 js 脚本后可能不会总是生效,所以这里选择优先对 title 标签进行替换

加入判断条件:判断是否包含 title 标签

代码语言:javascript
复制
@rsp.bodyText CONTAINS[cd] "</title>"

当有 title 标签时,执行以下表达式

代码语言:javascript
复制
^@rsp.bodyText "<\/title>" "</title><script type='text/javascript' src='https://coding.net/u/Tumblr/p/thor-lib/git/raw/master/vconsole/3.2.0/vconsole.min.js'></script><script>new VConsole();</script>"   

没有 title 标签,则找 body 标签替换

代码语言:javascript
复制
^@rsp.bodyText "<\/body>" "<script type='text/javascript' src='https://coding.net/u/Tumblr/p/thor-lib/git/raw/master/vconsole/3.2.0/vconsole.min.js'></script><script>
new VConsole();</script></body>"
  • 其中new VConsole() 是关键不调用不会生成界面
  • 还有载人方式可以使用chalrs或者fiddler替换js再头部注入
  • 考虑加载速度的原因,没有直接使用 github 上的 vConsole 原地址,而是 dump 了一份到 coding.net 仓库里,所以上面用的是 codeing.net 的脚本地址
» vConsole 注入设置如图
img
img

同理,再新建一个断点,完成 Eruda 工具的注入(其实可以不用两个调试脚本都注入,这里只是演示效果)

第二步:在 PPHub 中找一个 WebView 界面进行尝试

0x1、打开 Thor > 选择 “WebView 注入调试” 过滤器,并启动
img
img
» 启动抓包
img
img
0x2、打开 PPHub
img
img
» 并找到一个 WebView, 等待加载完成 (直到出现调试工具入口)
img
img
» vConsole 调试效果
img
img
» Eruda 调试效果
img
img

参考资料 (排名不分先后)

Thor 20 天免费试用 TestFlight 申请

0x1、Thor 的详细介绍

0x2、TestFlight 申请问卷填写

0x3、过滤器 “WebView 注入调试” 后期优化版下载(下载后直接用 Thor 打开,安装)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-09-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Thor
    • iOS 调试线上 app 中 WebView 的方法
      • 第一步:在 Thor 中设置过滤器断点
        • 第二步:在 PPHub 中找一个 WebView 界面进行尝试
          • 参考资料 (排名不分先后)
            • Thor 20 天免费试用 TestFlight 申请
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档