2021年3月19日

小小滑块可笑可笑-安卓滑块验证码通杀方案研究(5)

作者 huruwo

说明

文章首发于HURUWO的博客小站,本平台做同步备份发布。

如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论回复。

原文链接 小小滑块可笑可笑-安卓滑块验证码通杀方案研究5直接点击即可前往访问。

更多技术文章访问本人博客HuRuWo的技术小站,包括Android 逆向 app,闲鱼爬虫 微信爬虫 抖音爬虫 群控 等相关知识

也可关注公众号 'wan_coder' 第一时间收到文章更新

前言

之前所有的测试都变得无效了,无法完成

action_down
action_move 随机耗时
action_move 随机耗时
action_move 随机耗时
action_move 随机耗时
action_up

的一系列的连续事情事情

回到系统源码

有句老话 没有什么是阅读系统源码解决不了的。关于点击触发事件的核心在于

几个核心类方法:

public boolean onTouchEvent(MotionEvent event);

public boolean dispatchTouchEvent(MotionEvent ev);

public boolean onTouch(View v, MotionEventevent);

①onTouchEvent(MotionEvent event)是View中定义的方法,而且是Public类型,所以Activity、ViewGroup、View均可以调用这个方法,最常见的关于这块的知识点在Android事件分发中,onTouchEvent()是每个事件处理对象都有的方法,用于根据下层的onTouchEvent()返回值类型判断是否调用,最常见的用法是自定义View时写入到view中,从而让该View获取用户对手机屏幕的各种操作,并对不同类型的操作实现不同的反馈,属于一个宏观的屏幕触摸监控方法;

②onTouch((View v, MotionEvent event)是View.OnTouchListener接口中实现的唯一方法,接收两个参数,第二个参数是之前提过的event事件对象,第一个参数是一个具体的view类型对象,这就意味着onTouch()方法必须和某个控件进行绑定,即某个控件实现了View.OnTouchListener接口,才能调用onTouch()方法。

我们可以拿到当前的view对象或者activity直接调用这些方法触发事件