Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 4.15 KB

Tutorial_zh-CN.md

File metadata and controls

48 lines (40 loc) · 4.15 KB

准备工作

  • 建议使用支持New XSharedPreferences特性的Xposed框架,如LSPosedEdXposed等,否则模块不一定可以正常工作

    对于虚拟框架如太极LSPatch等,因本模块的核心功能基于用户存储的规则配置,各虚拟框架由于无系统层级权限,无法给与目标app读取模块配置文件的权限,所以核心功能在考虑与实体框架兼容性的情况下无法正常实现。

  • 建议使用LSPosed以确保本模块的稳定性,本模块只在LSPosed框架环境下进行了功能性测试,本教程亦采用LSPosed进行说明,其他框架的使用者请自行转换相关操作为对应框架的操作
  • 建议在良好的网络环境下进行:检查更新、使用云端规则、下载资源,中国大陆北朝鲜等无法保证 GitHub 连接稳定性的地区可能会导致这些功能失效

开始 Hook 目标 App

  1. LSPosed中开启本模块,并勾选目标 App

    不需要勾选Android System WebView,这是没有效果的

  2. 打开本模块,并确保主界面状态显示为绿色的已启用

  3. Hook 资源管理中下载必要的资源,否则后续基于这些资源的功能将无法生效

  4. Hook 规则管理中找到目标 App,并配置其 Hook 规则

    1. 如果目标 App 的目标版本的 Hook 规则已被收录在云端规则库,可点击添加规则按钮,在规则编辑器界面的右上角使用云端规则功能导入对应规则并保存

      如有多条规则请重复此步骤

    2. 如果目标 App 的其他版本的 Hook 规则已被收录在云端规则库,可尝试使用其他版本的 Hook 规则进行 Hook

      但不保证可用性

    3. 如果目标 App 使用 WebView 引擎时未进行名称混淆、逻辑重写等操作,可尝试使用右上角的预置规则功能导入目标 WebView 引擎的 Hook 规则

      如不生效请确认目标 WebView 引擎是否正确、是否有名称混淆、逻辑重写等操作

    4. 如果上述方法都无法成功 Hook,请选择以下其中一种方式:
      1. 前往捐赠并留言目标 App 的名称和版本,金额随意,作者将抽空适配并将其特殊规则收录进云端规则库

        如需及时了解收录情况,可凭捐赠截图发送邮件至[email protected],作者将在收录后第一时间回复邮件告知

      2. 前往本项目仓库规则仓库提交issue,作者将抽空适配并将其特殊规则收录进云端规则库,并第一时间回复issue告知
      3. 自行寻找目标 App 的相关 Hook 点,并点击添加规则按钮,选择合适的 Hook 方法并填入 Hook 点,保存即可

        如需多条规则请重复此步骤 您可以将您的规则提交到规则仓库以供他人使用,具体提交方式请看规则仓库首页

  5. 完全结束目标 App 的进程并重新打开使用了 WebView 的页面,验证规则生效情况

  6. 如需反馈 bug,请前往本项目仓库提交issue,务必描述清楚 bug 的触发条件

    如果有报错,请附带上使用dev版本复现一遍后产生的Xposed日志

一些使用条件

  1. 如需开启远程调试,请确保以下条件满足其中之一:
    1. 对于 WebViewTBS X5 ,至少有一个hookWebView规则生效。
    2. 对于 UC U4 ,至少有一个replaceNebulaUCSDK规则生效,已开启UC 调试内核注入,且选择版本与目标页面所用的内核版本一致。
    3. 对于 CrossWalk ,至少有一个hookCrossWalk规则生效。
  2. 如需注入vConsole,请确保以下条件满足所有:
    1. 至少有一个hookWebViewClient规则生效。
    2. 如果目标页面未开启javascript 执行功能,请确保 #1 条件(远程调试) 满足。
    3. 已开启vConsole注入,且选择版本支持目标页面所用的内核版本。
    4. 目标页面使用了WebViewClient接口。

Q&A

  • Q: 为什么对微信的 Hook 没有生效 A: 因为微信有名称混淆且每个版本几乎都有 WebView 相关代码的修改,所以 Hook 点可能失效,解决方法请看上方开始 Hook 目标 App段落