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

请教一下,安卓用 adb 模拟点击可以被检测到吗?

  •  
  •   euph · 232 天前 · 5757 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,想写个脚本自动操作手机,比如类似钉钉打卡什么的,那么用 adb 模拟的点击能被 app 检测到不是真实点击吗?还有,如果我手机连接蓝牙外设操作的话,这个操作也可以区分出来不是真实点击吗?
    20 条回复    2024-03-07 16:45:32 +08:00
    leonme
        1
    leonme  
       232 天前 via iPhone
    区别不出来
    x500
        2
    x500  
       232 天前
    当然可以被检测出来
    itskingname
        3
    itskingname  
       232 天前   ❤️ 2
    adb 模拟点击有两种方案检查:
    1. 每次点击的坐标完全一样。
    2. hook uiautomator 里面的 click 函数,被调用的时候能发现
    flyqie
        4
    flyqie  
       232 天前 via Android
    连接蓝牙外设 + 每次随机漂移少许坐标。

    根本无法检测。
    dusu
        5
    dusu  
       232 天前 via iPhone
    @flyqie 我最近也在研究这块,除了刷抖音的那种蓝牙按键成品外,有没有那种可开发或者 diy 的外设蓝牙产品?老哥方便给个关键词?
    QinYu0226
        6
    QinYu0226  
       232 天前 via Android
    肯定不能分辨的,除非他被你授权了 root 权限。或者它是病毒,它自己获取了你的 root 权限,再来监控你。这个都已经属于投放病毒的性质了。
    karatsuba
        7
    karatsuba  
       232 天前
    单论技术层面不可能被检查出来
    Vegetable
        8
    Vegetable  
       232 天前
    @itskingname 可以加入随机,并用短 swipe 而不是 tap 来模拟点击,这些做起来很容易
    forQ
        9
    forQ  
       232 天前
    我司已将打卡手机绑定数量限制为 1 台,不能通过此法作弊了
    InkStone
        10
    InkStone  
       232 天前
    现在模拟点击检测都上模型了。通过分布模式识别来检测,理论上是能检测的,不过打卡这里有没有用上我很怀疑
    xingchenxf
        11
    xingchenxf  
       232 天前   ❤️ 1
    @itskingname hook uiautomator 里面的 click 函数,是指 UiDevice 里的 click 函数? 模拟点击的时候,都调不到本进程的这个函数吧,如何能 hook ?
    SoyaDokio
        12
    SoyaDokio  
       232 天前
    打卡的话,可以考虑用一个手机专门打卡,然后放公司用远程控制方式操作,方案成熟稳定,且回避了#9 老哥提到的限制绑定数量问题。
    当然也有带来的问题,就是下班时间给你发的消息看不到了,没法加班(逃
    hefang
        13
    hefang  
       232 天前
    adb 模拟点击检测不出来,也没有必要去做检测,因为有更方便检测的,
    就是你的打卡经纬度数据一个月都不带变的,这很容易就判定了。
    我司用钉钉,
    行政已经发邮件警告模拟打卡的了。
    sadfQED2
        14
    sadfQED2  
       232 天前 via Android
    要看你通过哪种方式提权,如果是通过无障碍接口提权进行点击的话是可以检测的。

    如果是 root 以后直接往设备文件里面写命令的话没法检测

    还有一种提权是通过 xposed hook 安卓系统函数,这种也没法检测
    sardina
        15
    sardina  
       231 天前 via iPhone
    adb 模拟点击 检测不出来,但是安卓上的 adbd 进程可是会被 app 读到的,再加上一些其他的行为验证,应该就差不多可以定位你了
    euph
        16
    euph  
    OP
       231 天前
    @hefang 那有的人就是每天坐到工位上才打卡咋办
    MLawliet
        17
    MLawliet  
       231 天前   ❤️ 1
    adb shell input 容易被检测,因为 dispatchTouchEvent() / onTouchEvent()里接收到 event 的 deviceId==-1,是 virtual device
    root 后,直接向/dev/input/event* 里写数据应该是检测不到的
    justfun
        18
    justfun  
       230 天前
    @dusu ios 端有个这 实现原理跟你说的一样 http://ecdoc.laoleng.vip/iosdocs/
    hefang
        19
    hefang  
       229 天前
    @euph #15 同一个位置也会有精度差异,不是一层不变的,但是模拟的位置信息就是一层不变的,具体怎么判定是 DD 的做的逻辑,不要小看那帮 B 。
    djby
        20
    djby  
       51 天前
    推荐用 NewDesk 远程控制,可以用 adb 控制,目前使用正常,不会被检测到,但是用无障碍已经被检测到了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2953 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:17 · PVG 17:17 · LAX 02:17 · JFK 05:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.