检测 Xposed 安装、防止应用被劫持的终极解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
w568w
V2EX    Android

检测 Xposed 安装、防止应用被劫持的终极解决方案

  •  2
     
  •   w568w 2020-08-09 09:21:50 +08:00 21375 次点击
    这是一个创建于 1887 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近一段时间一直在研究如何防止应用被 Xposed 劫持...

    这个问题还真的头疼,目前已有的上Magisk Hide随机包名RootCloak等反 Xposed 检测的措施已经非常成熟了。退一万步来说,就算找到了新的检测方案,检测方法本身也可能被劫持而失去作用。

    经过三番五次的寻找和复推敲,最终还是决定在NativeJava层同时实现检测,
    于是就有了这个终极版解决方案,融合了目前能够通过反编译在各大应用中找到的 11 种检测方式。

    目前已经在不同机型测试过,误杀率几乎为 0,可以完美检测市面上已有的各种版本 Xposed 。
    (不包括Taichi一类的通过插入原生库到 APP 中的 Xposed 框架,这些框架只要加入签名验证就可以完美反制,检测无意义)

    Github 地址在这里,欢迎使用: https://github.com/w568w/XposedDetectLib

    你也可以在这里下载 GUI 版本,在自己手机上调试: https://www.coolapk.com/apk/190247

    41 条回复    2022-01-03 18:09:40 +08:00
    iFlicker
        1
    iFlicker  
       2020-08-09 10:08:09 +08:00 via Android
    hicdn
        2
    hicdn  
       2020-08-09 10:33:18 +08:00   2
    Xposed 安装后会导致 SafetyNet 检测不能通过,这个可以做为关键检测点。
    7LilUM0c66MGtJTD
        3
    7LilUM0c66MGtJTD  
       2020-08-09 10:35:42 +08:00
    原来是两年不见诈尸更新了,不过还是赞
    w568w
        4
    w568w  
    OP
       2020-08-09 10:55:25 +08:00
    @hicdn 感谢,这个思路很有意思!稍后加入到库里 :D
    littiefish
        5
    littiefish  
       2020-08-09 10:57:43 +08:00 via iPhone   45
    禁止用 xp 的 APP 都被我卸载拉黑了
    chinvo
        6
    chinvo  
       2020-08-09 11:34:10 +08:00 via iPhone
    @hicdn #2 SafetyNet 检测需要梯子吧
    w568w
        7
    w568w  
    OP
       2020-08-09 11:35:01 +08:00   4
    @littiefish 我知道那些一用 Xposed 就闪退的 app 有多让人恼火,但是对个人开发者来说并不是这样...

    如果你是个人开发者,并且有付费应用,除非你也想遭遇像这位老哥一样的处境: t/696607 否则对于 Hook 这样的行为还是敏感点的好。倘若服务端身份验证没做好,被 Xposed 偷库闹出隐私问题,就更麻烦了。

    毕竟,工具怎么用在于人,工具本身没有错。
    luckycatio
        8
    luckycatio  
       2020-08-09 11:56:06 +08:00 via Android
    @w568w 被用 xp 的人拉黑对开发者来说是好事吧,不必在意那些少得可怜的用户。
    MePride
        9
    MePride  
       2020-08-09 11:57:14 +08:00
    @w568w 我来了,不知道增加 hook 检测会不会被用户骂。
    yongligua
        10
    yongligua  
       2020-08-09 12:00:57 +08:00 via Android
    我装 xp 只是为了状态栏能同时显示上行下行的网速…然而一些软件就不能用了,简直了
    hicdn
        11
    hicdn  
       2020-08-09 12:07:58 +08:00
    @chinvo 好像是需要梯子,多谢提醒。
    Lightbright
        12
    Lightbright  
       2020-08-09 12:09:59 +08:00 via Android
    内核查找 xposed 链接库在我这里有误报
    Kagari
        13
    Kagari  
       2020-08-09 12:11:20 +08:00 via Android   2
    “毕竟,工具怎么用在于人,工具本身没有错。”
    毕竟,xp 怎么用在于人,xp 本身没有错。
    Jirajine
        14
    Jirajine  
       2020-08-09 12:21:38 +08:00 via Android
    @luckycatio @MePride
    之前在 sof 上看到一个关于反破解的问题下面的回复,大概意思是:如果你到检测 root/xp 就禁止使用,那么对你的软件的破解就可以说是正当的,we won't blame them.
    c2const
        15
    c2const  
       2020-08-09 12:36:49 +08:00 via iPhone
    攻防方面,硬钢就完事了,双方见招拆招。
    azhangbing
        16
    azhangbing  
       2020-08-09 13:11:40 +08:00 via iPhone
    赞 马克一下
    canyie
        17
    canyie  
       2020-08-09 13:41:47 +08:00
    @hicdn 我自己写了个叫梦境的框架(用 riru ),在我的 pixel3 ( android 10)上完美通过 safetynet 检测。
    slamDunkLINk
        18
    slamDunkLINk  
       2020-08-09 13:53:14 +08:00
    我装 xp 也只是为了防止流氓应用,为什么不让用户本身选择呢?装了 xp 连应用都打不开真是太骚了.
    w568w
        19
    w568w  
    OP
       2020-08-09 14:33:43 +08:00 via Android
    @Lightbright 是安装了 Riru 吗? Riru 可能会影响检测…


    @Kagari 所以怎么规范 xposed 的使用才是问题
    RiESA
        20
    RiESA  
       2020-08-09 17:07:06 +08:00
    防止被 Xposed 劫持修改 √
    检测到 Xposed 就闪退或者禁止使用 ×
    hicdn
        21
    hicdn  
       2020-08-09 17:49:41 +08:00
    @canyie 大佬,求链接
    FlyPuff
        22
    FlyPuff  
       2020-08-09 18:46:44 +08:00 via Android
    看了下自己的机机,装了微 x/qx 围脖去广告,去启动页广告,还有个 miui 麻醉师~
    我觉得大部分人都是用 xp 来给自己的手机提供(针对大部分流氓 app 行为)各种便利性的吧
    lmslly
        23
    lmslly  
       2020-08-09 22:09:23 +08:00
    xp 已经不常用了 面具挺好的
    greed1is9good
        24
    greed1is9good  
       2020-08-09 23:13:00 +08:00 via Android
    如果你的应用不耍流氓,你怕什么 xposed,既然你这么关心用户安全隐私那你应该去开发反流氓软件,而不是研究反反流氓。。。
    wtdd
        25
    wtdd  
       2020-08-10 02:15:23 +08:00
    用 xposed 劫持小众软件干什么,很少人做的过分,基本就是干掉过分的广告而已。要针对性破解甚至复制的话,哪会用 xposed 呢
    251
        26
    251  
       2020-08-10 03:03:37 +08:00 via Android
    什么意思?我不能 hook 你这个方法,返回一个 false 吗
    w568w
        27
    w568w  
    OP
       2020-08-10 07:08:39 +08:00 via Android
    @251 后面会考虑完全迁移到 Native C 部分。

    @greed1is9good 你的关注点在用户隐私上,然而那只是一方面。首先 V 站个人开发者有一定比例,这一部分基本上不会太 care 用户隐私;另外大厂自有检测方案也轮不到我干预;所以我认为这个库的用途主要还是防破解。

    @wtdd Xposed 提供了一种非侵入式修改代码的机会,这种机会无论放在哪里都是有风险的。不妨了解一下: https://www.zhihu.com/question/265550793

    另外,用 xposed 脱壳 /破解已经是常规操作了。
    canyie
        28
    canyie  
       2020-08-10 08:36:07 +08:00
    Blanke
        29
    Blanke  
       2020-08-10 09:29:01 +08:00
    直接 hook detectXposed 返回 false 不就行了。。。
    InkStone
        30
    InkStone  
       2020-08-10 09:41:31 +08:00
    其实这种程度的反制措施只能略微提高门槛,没法真正反制破解。

    我大致看了下代码,你似乎没做针对 VirtualXposed 之类基于 VA 的 xposed 的对抗。
    InkStone
        31
    InkStone  
       2020-08-10 09:43:43 +08:00
    你提到了太极,但这类 VA 软件跟太极不一样,是没法通过签名校验来对抗的。

    而且除了 VA 之外,脱壳还可以用 frida 或者定制系统,只要脱了壳,在软件层面做的 xposed 对抗仍然是很容易绕过的。
    zgzb
        32
    zgzb  
       2020-08-10 10:02:29 +08:00
    xposed 就是来造福人类的,都想避免 xposed 被检测,楼主搞了个强力检测的...,这是不给人卸载垃圾软件节省内存留余地啊。
    lwlizhe
        33
    lwlizhe  
       2020-08-10 10:02:55 +08:00
    如果用 flutter 是不是会好很多,目前差不多也只能破解 native 层面的东西……
    GeT1t
        34
    GeT1t  
       2020-08-10 10:12:12 +08:00
    作为一个第三方 SDK 提供 XPOSED 闪退的开发者路过。
    newmlp
        35
    newmlp  
       2020-08-10 10:27:01 +08:00
    hook 掉你的方法,然后返回 false
    weishu
        36
    weishu  
       2020-08-10 14:11:03 +08:00
    无法检测到魔改过的 Xposed,所以我觉得称不上终极方法。提个建议,检测 Xposed 的本质特征,而不是去看特定名字的 jar / so 或者符号。
    qihehulian
        37
    qihehulian  
       2020-08-11 10:48:35 +08:00 via Android   1
    @weishu 如果已经魔改了,那么已经不考虑兼容性了,为何不直接花式挂钩?例如用你的 epic 直接钩上即可,不考虑接口兼容性。检测 Xposed 其实是检测少数人里面的大多数,少数人里面的极少数没必要各种方案检测了。最好还是在业务逻辑里面做好安全,本身就不怕被修改。
    weishu
        38
    weishu  
       2020-08-11 13:23:57 +08:00   1
    @qihehulian 大多数普通用户用的都是公开的 Xposed,那些需要魔改的可以说绝大部分都是非正常用户。用这种方式去检测 Xposed,会误伤到普通人而真正作恶的却逍遥法外。我觉得魔改 Xposed 检测应该当作重点而不是把他们当作极少数置之不理。
    hyperdak288
        39
    hyperdak288  
       2020-08-13 14:34:57 +08:00
    @weishu 那么 xposed 的本质特征可以从哪些方面来检测呢?
    litaomn
        40
    litaomn  
       2020-10-17 13:08:04 +08:00
    一点用没有,定制版 xposed 直接秒杀
    ko1haha
        41
    ko1haha  
       2022-01-03 18:09:40 +08:00
    对某些人无语啦。你买的手机,需需要某些“正规”的功能,不去请求生产手机的人,反而要求其他发者给你买单、在安全和隐私方面为你让步、给 xp 和逆向开方便之门。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1169 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 23:35 PVG 07:35 LAX 16:35 JFK 19:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86