DataWizardess 2026-01-28 00:50 采纳率: 99.1%
浏览 0
已采纳

夸克Cookie一键获取失败,常见原因有哪些?

夸克Cookie一键获取失败的常见原因主要包括:1)App版本升级导致底层WebView或JSBridge接口变更,原有注入脚本失效;2)Android系统权限收紧(如Android 12+限制后台Activity启动、Android 14强化Cookie隔离策略),影响自动化抓包流程;3)夸克启用动态密钥签名与反调试机制,拦截Xposed/Frida等Hook工具;4)Cookie存储由传统的SharedPreferences迁移至加密数据库(如SQLCipher),且Key动态生成,无法直接读取;5)网络层采用QUIC协议+TLS 1.3全链路加密,中间人抓包(如Fiddler/Charles)易被证书校验拦截;6)部分设备厂商(如华为、小米)定制ROM强制启用“应用行为记录”或“隐私空间”,阻断无障碍服务权限。建议优先检查无障碍服务授权状态、关闭电池优化,并使用ADB+root方案结合最新版uiautomator2适配新版UI结构。
  • 写回答

1条回答 默认 最新

  • 玛勒隔壁的老王 2026-01-28 00:50
    关注
    ```html

    一、现象层:无障碍服务与基础权限失效(表象诊断)

    多数用户首次失败源于「无障碍服务未启用」或「电池优化强制限制后台运行」。华为EMUI 13+、小米HyperOS默认关闭com.quark.browser的无障碍权限,且在「设置→电池→应用启动管理」中将夸克设为“手动管理→禁止后台活动”。此阶段无需逆向,仅需ADB命令验证:

    adb shell settings get secure enabled_accessibility_services

    若返回空或不含com.quark.browser,即为根因。建议同步执行:adb shell dumpsys battery unplug && adb shell settings put global hidden_api_policy 1(需root)。

    二、系统层:Android权限演进与Cookie隔离机制(深度适配)

    Android 14(API 34)引入CookieManager.setCookie()废弃警告,并强制启用SameSite=Lax策略;Android 12+则禁止startActivityFromRecents()后台启动Activity——这直接导致基于UiDevice.pressRecentApps()的自动化切屏取Cookie流程崩溃。下表对比关键系统版本对Cookie获取的影响:

    Android版本Cookie存储变更无障碍API限制推荐适配方案
    12+WebView CookieStore API弃用禁止后台启动Activity改用uiautomator2device.app_start()前台拉起
    14+强制CookiePartitioning隔离域限制AccessibilityService监听非前台包注入android.webkit.WebView#evaluateJavascript绕过隔离

    三、应用层:WebView接口漂移与JSBridge动态化(逆向锚点)

    夸克v14.0+将JSBridge从静态window.QuarkJSBridge迁移至动态注册机制:通过WebViewClient.onPageFinished()触发addJavascriptInterface("quark_bridge_v2", ...),且接口名含时间戳哈希(如quark_bridge_v2_8a3f)。传统脚本因硬编码接口名失效。需HookWebView.addJavascriptInterface并监听QuarkBridge类加载时机。以下为Frida Hook核心逻辑:

    Java.perform(() => {
      const WebView = Java.use('android.webkit.WebView');
      WebView.addJavascriptInterface.implementation = function(obj, name) {
        if (name.includes('quark_bridge')) {
          console.log('[+] JSBridge registered:', name);
          // 后续注入cookie读取逻辑
        }
        return this.addJavascriptInterface(obj, name);
      };
    });

    四、安全层:反调试、加密存储与QUIC/TLS 1.3全链路防护(攻防对抗)

    夸克采用三重防御:① Ptrace检测+frida-trace符号扫描阻断Frida;② Cookie存入SQLCipher加密数据库/data/data/com.quark.browser/databases/quark_cookie.db,密钥由SharedPreferencescrypto_key_seed与设备IMEI拼接SHA256生成;③ QUIC协议使传统HTTP代理失效,TLS 1.3的Encrypted Client Hello (ECH)让证书固定校验无法绕过。此时必须转向内存dump方案:

    1. 使用adb shell run-as com.quark.browser cat /data/data/com.quark.browser/shared_prefs/cookie_prefs.xml尝试提取明文key(v13.5-仍存在)
    2. 若失败,则通过frida -U -f com.quark.browser -l quark_cookie_dump.js --no-pause劫持CookieManager.getCookie()内存返回值

    五、生态层:厂商ROM定制与隐私空间干扰(跨平台治理)

    华为鸿蒙OS 4.2启用「应用行为记录」强制审计AccessibilityService调用栈,小米澎湃OS则在「隐私空间」中隔离SharedPreferences路径。实测发现:同一台Redmi K70开启隐私空间后,uiautomator2device.info返回的currentPackageName恒为com.android.systemui,导致UI定位失效。解决方案需分场景:

    graph TD A[检测是否在隐私空间] -->|adb shell getprop ro.miui.ui.version.name| B{返回值包含“Privacy”} B -->|是| C[切换至主空间:adb shell am start -n com.android.settings/.privacy.PrivacySettings] B -->|否| D[启用无障碍:adb shell settings put secure enabled_accessibility_services com.quark.browser/com.quark.accessibility.QuarkAccessibilityService]
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 1月29日
  • 创建了问题 1月28日