V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ariera
V2EX  ›  Android

支付宝检测到 magisk 或者 root 后的机制是什么

  •  
  •   ariera · 2022-09-18 20:20:38 +08:00 · 19259 次点击
    这是一个创建于 800 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以小米为例,其他品牌估计一个样。

    如果 magisk root 后,直接打开了支付宝试图启用刷脸支付,会被提示“当前设备不支持刷脸,请更换手机后再试”。就是大红叉那个界面。此时你退出支付宝,然后启用 root 隐藏(假如说 s h a m i k o )。此后再次打开支付宝仍然无法启用刷脸。即使清除设置-应用-应用管理,清除支付宝全部应用数据,卸载重装后 依旧无法启用刷脸。

    这个时候,只能是恢复出厂设置甚至刷机,然后重新安装支付宝就可以启用刷脸了。并且如果安装 magisk 获得 root 权限后,先启用 root 隐藏,然后打开支付宝就可以启用刷脸。

    总结:直觉就是支付宝在检测到所在设备有风险(也即可能被 root 了),就会禁止刷脸功能,而且似乎是记录了某个软性 id (就类似每次 windows 安装完随机生成的 id )或者在某个我不知道的地方的文件中记录了黑名单标志位。直到这个手机系统被恢复出厂或者重刷后,这个 id 变化了或者这个标志被删除了,支付宝才会信任这个设备。

    假如 root 被支付宝发现禁了刷脸,如何才能在避免刷机或恢复出厂的情况下使支付宝启用刷脸功能。

    请问大侠,哪位知道这种类似的黑名单机制,具体是怎么做到的,怎么破?

    78 条回复    2023-09-02 08:58:18 +08:00
    vvjyun318
        1
    vvjyun318  
       2022-09-18 20:27:47 +08:00 via iPhone
    微信的话直接封号甚至永久封号了,支付宝真是人性化多了
    Kasumi20
        2
    Kasumi20  
       2022-09-18 20:30:35 +08:00
    有没有一种可能, 它把数据存到 SDCard 上的某个小角落了, 清除应用数据并不会删除这个小角落里的文件
    sky96111
        3
    sky96111  
       2022-09-18 20:33:52 +08:00 via Android
    可能还有其他检测,我一台没有 root 但是刷了第三方 ROM 的小米 6 上也不能刷脸,搞得一些政企服务很不方便
    winterbells
        4
    winterbells  
       2022-09-18 20:55:06 +08:00
    我之前也不可以刷脸,现在可以了,我以为是版本更新之后放开了。。
    jsyzdej
        5
    jsyzdej  
       2022-09-18 21:30:59 +08:00 via Android
    根据上次经验,等两天就行了
    tomato1111
        6
    tomato1111  
       2022-09-18 21:35:52 +08:00   ❤️ 1
    用了 shamiko 把微信和支付宝加入了排除列表,完全没问题,指纹啥都正常,也不会被检测出来。
    Solael
        7
    Solael  
       2022-09-18 22:12:15 +08:00   ❤️ 5
    所以选择少折腾转苹果了,对抗流氓要装 magisk 但是流氓们和金融 app 又要检测 root ,没完没了的攻防战
    totoro52
        8
    totoro52  
       2022-09-18 22:40:41 +08:00
    @Solael 苹果也会检测越狱。。。
    ch2
        9
    ch2  
       2022-09-18 22:47:38 +08:00
    @totoro52 #8 反检测比较简单
    ysc3839
        10
    ysc3839  
       2022-09-18 22:51:00 +08:00 via Android
    我 root 并开启了 MagiskHide ,但没用过支付宝的刷脸支付,不过支付宝里 12306 小程序登录时需要刷脸验证,这个是正常的。
    ysc3839
        11
    ysc3839  
       2022-09-18 22:52:39 +08:00 via Android   ❤️ 1
    @sky96111 第三方 ROM 用不了可能是直接检测 Bootloader 解锁状态了
    ihipop
        12
    ihipop  
       2022-09-18 23:30:08 +08:00 via Android
    芒猜可能是在服务器端记录了 Android device ID ,这个和 systemd 的 machine ID 一样的,装机的时候生成。但是非系统应用应该从安卓 10 起获取不了这个 ssaid 的,再加上刷脸是大陆专供,我猜测可能系统内提供了一些“便利”给这些特殊软件。
    ariera
        13
    ariera  
    OP
       2022-09-18 23:31:20 +08:00 via Android
    @tomato1111 我的意思是隐藏失败,再次尝试就 gg 了 只能恢复出厂
    ariera
        14
    ariera  
    OP
       2022-09-18 23:32:32 +08:00 via Android
    @Kasumi20 对 我就是想知道 在哪里
    ariera
        15
    ariera  
    OP
       2022-09-18 23:32:54 +08:00 via Android
    @vvjyun318 还好吧 微信也只是不能刷脸支付了而已
    ariera
        16
    ariera  
    OP
       2022-09-18 23:33:16 +08:00 via Android
    @winterbells 之前是因为 root 不能刷脸了么
    ariera
        17
    ariera  
    OP
       2022-09-18 23:35:05 +08:00 via Android
    @tomato1111 是的 但是有时候忘记加别的 app 就会被检测出来 有可能是某宝 飞 pig 之类的,具体不详。反正之前我是加了很多到排除列表 就 ok 了,可是后来某次刷机后加入列表还是不行了,不知道是漏加了哪个 activity 。
    ariera
        18
    ariera  
    OP
       2022-09-18 23:36:11 +08:00 via Android
    @tomato1111 所以到最后我被逼无奈 只好开启了 shamiko 的 whitelist 模式,但是这种情况下似乎手机会发烫 而且打开任何 app 都会卡
    Zy143L
        19
    Zy143L  
       2022-09-18 23:41:57 +08:00 via Android
    @ariera 暂时没有发现 whitelist 的这情况
    mxalbert1996
        20
    mxalbert1996  
       2022-09-18 23:49:41 +08:00 via Android
    我的 Pixel 没对支付宝隐藏 root 也能用刷脸啊
    ariera
        21
    ariera  
    OP
       2022-09-19 00:11:09 +08:00 via Android   ❤️ 1
    @Zy143L 难道是我错觉么… 而且我确实在一个英文帖子中发现有这个说法,说 Whitelist 会消耗性能。
    - You can create an empty file `/data/adb/shamiko/whitelist` to turn on whitelist mode and it can be triggered without reboot
    - Whitelist has significant performance and memory consumption issue, please use it only for testing
    - Only apps that was previously granted root from Magisk can access root
    - If you need to grant a new app root access, disable whitelist first
    看这个
    https://www.paget96projects.com/blog/shamiko-a-better-way-to-hide-root
    ariera
        22
    ariera  
    OP
       2022-09-19 00:11:39 +08:00 via Android
    @mxalbert1996 google 大爷牛逼
    Jirajine
        23
    Jirajine  
       2022-09-19 00:24:23 +08:00   ❤️ 1
    root 隐藏是个无解的问题,有 trusted computing 在,只要使用(如 TEE )没有任何正常的办法绕过(除非有 0day 漏洞)。
    所以所谓的“隐藏”除了极大程度降低安全性外意义不大,有不给用的应用装 iPhone 备机上,反正迟早也隐藏不了。
    hahiru
        24
    hahiru  
       2022-09-19 03:22:30 +08:00
    安装 Zygisk ,将支付宝添加到框架的排除列表。安装 Shamiko ,安装 lsposed 。如果已经在设备黑名单里禁止刷脸的话,可能全部设置完后需要等两天,云端应该是有记录设备 ID 的。
    haikouwang
        25
    haikouwang  
       2022-09-19 06:37:48 +08:00
    @vvjyun318 对的,我就被封了。
    calloc
        26
    calloc  
       2022-09-19 06:52:11 +08:00 via iPhone
    oaid 了解一下
    v2yllhwa
        27
    v2yllhwa  
       2022-09-19 06:57:38 +08:00 via Android
    隐藏后等两天就行了
    RightHand
        28
    RightHand  
       2022-09-19 07:17:08 +08:00 via Android
    模块隐藏了么?支付表会查你的应用列表,发现模块就当 root 设备
    abc8678
        29
    abc8678  
       2022-09-19 07:50:43 +08:00 via Android
    我现在一般带两部手机。用小米搞 root ,遇到检测就换到华为。
    abc8678
        30
    abc8678  
       2022-09-19 07:51:47 +08:00 via Android   ❤️ 1
    用一半再加入隐藏 root ,不管怎么都还是被检测到了。只能是初始的时候先隐藏
    yolee599
        31
    yolee599  
       2022-09-19 08:24:21 +08:00 via Android
    装一个“储存空间隔离”,指定一下路径,所有文件都会写到你指定的路径中,再一个一个找
    ariera
        32
    ariera  
    OP
       2022-09-19 08:37:28 +08:00 via Android
    @RightHand 一早隐藏了
    ariera
        33
    ariera  
    OP
       2022-09-19 08:38:02 +08:00 via Android
    @abc8678 对 我就是这个意思
    ariera
        34
    ariera  
    OP
       2022-09-19 08:56:36 +08:00 via Android
    @v2yllhwa 没等…直接刷机了
    ariera
        35
    ariera  
    OP
       2022-09-19 08:57:37 +08:00 via Android
    @hahiru 我就是想知道记录的这个 id 是啥 id 怎么突破,这个 id 肯定不是硬件 id
    w3q29
        36
    w3q29  
       2022-09-19 09:02:27 +08:00
    碰到这种情况可以卸载最新版本,安装旧版本支付宝开启刷脸后升级到最新。我用的是 19 年第一个版本就可以刷脸 root 也不需要隐藏,豌豆荚: https://www.wandoujia.com/apps/279979/history_v135
    yehoshua
        37
    yehoshua  
       2022-09-19 09:05:14 +08:00
    第三方 rom 比如 LineageOS 会被 app 直接检测认为 root ,基于的是 SafetyNet 认证。
    missuo
        38
    missuo  
       2022-09-19 09:21:41 +08:00
    推荐一下 Shamiko ,隐藏就行了。云闪付和麦当劳 App 都可以这样顺利运行。
    mscsky
        39
    mscsky  
       2022-09-19 09:42:13 +08:00
    居然敢刷脸?
    newmlp
        40
    newmlp  
       2022-09-19 09:58:38 +08:00
    取消支付宝的存储权限就好了
    yfugibr
        41
    yfugibr  
       2022-09-19 10:07:15 +08:00
    @vvjyun318 #1 我一直 root 用微信支付,甚至都没隐藏,指纹支付一直是可以用的,得有几年了都没被封过。倒是支付宝一直不行


    @ariera #21 whitelist 对一些调用频繁的系统软件也隐藏了吧,尽可能用黑名单
    yfugibr
        42
    yfugibr  
       2022-09-19 10:15:34 +08:00
    @ariera #14 /sdcard 下:Alipay ,以及 .DS_store, .gs_* 等隐藏文件夹,具体记不太清了,因为一直没给存储权限(不给能用就别给)
    ysc3839
        43
    ysc3839  
       2022-09-19 10:40:07 +08:00
    @RightHand 另外直到最新的 Android 应该都没有解决能“探测应用是否存在”的问题,虽然不能获取完整应用列表,但如果我知道某个应用的包名,就可以检测这个应用是否存在。原理很简单,就是访问一下 /data/data/<包名>,如果存在会返回 Permission denied ,不存在会返回 No such file or directory 。
    outsiderK
        44
    outsiderK  
       2022-09-19 10:44:51 +08:00
    用的 magiskHide 和随机包名,目前用起来没啥问题
    rawer0
        45
    rawer0  
       2022-09-19 11:01:33 +08:00   ❤️ 1
    国内 app 常规的思路是生成一个设备指纹。这个设备指纹不一定是存在本地的。可能是根据设备硬件+软件信息生成唯一 id ,发现设备存在风险会有一系列风控措施配合保护用户财产
    daquandiao2
        46
    daquandiao2  
       2022-09-19 11:15:14 +08:00   ❤️ 1
    @hahiru #24 有些 app 用了 zygisk 也不行,比如民生银行的 app
    neochen13
        47
    neochen13  
       2022-09-19 11:21:18 +08:00
    楼主说的我都不敢 root 了,正准备把 K40 处理
    lx0758
        48
    lx0758  
       2022-09-19 11:42:23 +08:00
    ...居然还有这样的事, 我看了下我啥也没搞...也一直能用呢...
    Alliot
        49
    Alliot  
       2022-09-19 12:13:51 +08:00
    不要用 zygisk.. 用旧版的带 magisk hide 的版本。 然后指定需要排除的列表即可。
    FieldFarmer
        50
    FieldFarmer  
       2022-09-19 12:31:37 +08:00
    一加 Ace ,root 后装了 magisk ,目前只有银行类 app 会检测到 root 然后闪退,虎牙直播会检测 root 并提醒但还可以正常用,至于支付宝,目前没提示过 root 不能刷脸
    subframe75361
        51
    subframe75361  
       2022-09-19 12:37:45 +08:00
    酷安有个 面具 root 权限开关 还挺方便的,检测也没啥问题
    geekzjj
        52
    geekzjj  
       2022-09-19 13:19:17 +08:00 via Android
    @ysc3839 Android11 上是 /data/data/随机字符串 /包名+随机字符串 的形式
    cheese
        53
    cheese  
       2022-09-19 13:29:25 +08:00   ❤️ 1
    @FieldFarmer #50 银行一类的软件,如果加入到 magisk hide 还不行的话,安装写轮眼( myandroidtools ),然后禁用对应 app 服务里面的 S 服务就好了
    sss495088732
        54
    sss495088732  
       2022-09-19 13:53:21 +08:00
    alpha magisk,特定版本 zygisk 带 magisk hide
    Jirajine
        55
    Jirajine  
       2022-09-19 14:53:46 +08:00
    @ysc3839 这个就只能用多用户( workspace )了,或者通过 native hook 的方式篡改。
    ysc3839
        56
    ysc3839  
       2022-09-19 15:31:04 +08:00
    @geekzjj 有随机字符串的是 /data/app 。/data/data 还是没改,这可能涉及到兼容性问题,有许多老应用是写死了 /data/data/<包名> 的,改了可能会出问题。
    @Jirajine 自己测试了一下,非主用户试图探测 /data/data 时无论是否存在都会返回 Permission Denied ,只能探测 /data/user/<用户 ID>/<包名>。
    zhhww57
        57
    zhhww57  
       2022-09-19 15:44:04 +08:00
    他那个我过了,主要是他另外一个刷脸验证的机制,刷脸的时候访问拒绝,这个怎么过
    zhhww57
        58
    zhhww57  
       2022-09-19 15:45:08 +08:00
    能刷脸,刷到一半,访问拒绝
    SekiBetu
        59
    SekiBetu  
       2022-09-19 18:12:07 +08:00
    你还有其余的支付宝模块吗?没有的话为什么不用 magisk 默认的 zygisk 直接不对支付宝进行 hook 呢
    ariera
        60
    ariera  
    OP
       2022-09-19 20:21:06 +08:00 via Android
    @w3q29 谢谢分享
    ariera
        61
    ariera  
    OP
       2022-09-19 20:21:47 +08:00 via Android
    @missuo 目前在用,正文又有讲。是想说隐藏前开了支付宝怎么办?
    ariera
        62
    ariera  
    OP
       2022-09-19 20:22:37 +08:00 via Android
    @yfugibr 检测到 root ,指纹可以,但是刷脸不行。
    ariera
        63
    ariera  
    OP
       2022-09-19 20:23:18 +08:00 via Android
    @yfugibr 谢谢 我下次试试看 也是一个思路
    ariera
        64
    ariera  
    OP
       2022-09-19 20:24:34 +08:00 via Android
    @neochen13 可以 root 后开启 白名单 就是手机会不那么流畅了而已
    ariera
        65
    ariera  
    OP
       2022-09-19 20:24:48 +08:00 via Android
    @Alliot 习惯了用新版本…
    datoo
        66
    datoo  
       2022-09-19 21:30:40 +08:00
    简单,搞一个单独的非 root 手机,只装支付宝。
    neochen13
        67
    neochen13  
       2022-09-19 21:37:49 +08:00
    @ariera 好吧,谢谢大佬,就没有完美的 root 吗,唉……
    gov
        68
    gov  
       2022-09-19 22:17:11 +08:00   ❤️ 1
    多年小米用户,一直用 eu 或者官改系统。对我来说新系统第一个要安装的是 magisk alpha 版,开启 zygisk ,刷入 XiaomiCTSPass ,Shamiko 模块,关闭遵守排除列表,然后在排除列表中勾选所有检测 root 的应用。Netflix 高清内容呀,银行啥的都没问题了。
    楼主提的问题,可以完成上述操作后,清除支付宝数据,然后重新登录,过几天就可以恢复刷脸了。
    ariera
        69
    ariera  
    OP
       2022-09-19 23:42:30 +08:00 via Android
    @gov 没耐心等 就直接刷机了…
    abc8678
        70
    abc8678  
       2022-09-20 07:57:48 +08:00 via Android
    大四了,以后工作就不敢乱搞 root 了,怕丢数据或封号。刷入 root 等大动作,动不动就要清空数据。打算单独用一台手机干正事,手里目前的手机继续 root 。就是不知道怎么转发微信消息,远程似乎可以解决很多问题,但电话和微信通话似乎没办法转到私人机上听
    ariera
        71
    ariera  
    OP
       2022-09-20 08:59:32 +08:00 via Android
    @abc8678 magisk 刷 root 卸载 root 都不用清数据
    abc8678
        72
    abc8678  
       2022-09-20 13:05:59 +08:00 via Android
    @ariera 但 bootloader 这一步要清数据,而且小米不是刚买到就可以解。导致过了七天,又把数据导回上一部手机
    ariera
        73
    ariera  
    OP
       2022-09-20 19:42:41 +08:00
    @abc8678 #72 binggo 可以备份一下,再恢复 还挺方便
    ariera
        74
    ariera  
    OP
       2022-09-30 15:41:03 +08:00
    @w3q29 #36 无效,这个版本已经无法打开刷脸设置那里,点了没反应
    Joshuahui
        75
    Joshuahui  
       2022-10-08 09:02:20 +08:00 via Android
    应该是 Android ID ,Google 商店里面有使用 root 权限重置 Android ID 的工具,可以让某些软件识别为新机来骗取试用😆
    ariera
        76
    ariera  
    OP
       2022-11-06 15:43:27 +08:00
    @Joshuahui 不敢试了。。。直接开启 shamiko 白名单了,每次隐藏失败都要重新刷一次,太心累了。谁试过可以楼下补充一下
    Windyzhou
        77
    Windyzhou  
       2023-07-18 18:43:07 +08:00 via Android
    @vvjyun318 真的假的,那谁敢 root ,magisk
    Windyzhou
        78
    Windyzhou  
       2023-09-02 08:58:18 +08:00 via Android
    @tomato1111 #6 设置里面直接加入排除列表不行吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1308 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.