首页
论坛
课程
招聘
一款基于Xposed自动化框架[XposedAppium]
2020-7-28 15:01 11616

一款基于Xposed自动化框架[XposedAppium]

2020-7-28 15:01
11616

简介:

基于Xposed做的一款自动化点击,滑动框架(基于安卓原生的事件分发)。可以模拟手指的一切操作,基于Xpath表达式获取View。此框架在virjar大佬的框架基础上进行的修改的,修复了部分Bug,添加常用方法等。

https://github.com/virjar/

Demo:

目标App:
在登入页面输入账号密码后,跳转到第二个Activity并点击对话框确定按钮。
登入页
对话框

 

Xposed模块:
很简单,添加对应的Activity,需要实PageManager.ActivityFocusHandler(需要处理的Activity)接口
图片描述
使用uiautomatorviewer拿到对应的View即可,Xpath表达式语法
(后面有详细的Api介绍,支持点击,滑动,可以模拟手指的一切操作)
图片描述
第二个页面
图片描述

 

可以看到方法很简洁,handleActivity就是切换到当前页面以后执行的回调。
第一个参数是当前页面的Activity,第二个参数是当前Activity对应的View封装的工具Bean对象。(下面有详细的Api介绍)

实现原理:

通过Hook Application->dispatchActivityResumed(也可以Hook Activity的 onResume),包括Fragment里面的onResume等来监听页面的切换,
dispatchActivityResumed

 

切换以后,遍历已实现的
PageManager.ActivityFocusHandler或者需要处理的Fragement
图片描述
根据设置的延迟时间,调用对应的回调
图片描述

 

图片描述

 

详细Api可参考
XposedAppium


《0day安全 软件漏洞分析技术(第二版)》第三次再版印刷预售开始!

收藏
点赞8
打赏
分享
最新回复 (53)
雪    币: 5207
活跃值: 活跃值 (291)
能力值: ( LV5,RANK:76 )
在线值:
发帖
回帖
粉丝
Imyang 活跃值 1 2020-7-28 15:06
2
0
顶一个!
雪    币: 590
活跃值: 活跃值 (1155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
supperlitt 活跃值 2020-7-28 15:08
3
0
大佬,66666666666666666666
雪    币: 1155
活跃值: 活跃值 (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caolinkai 活跃值 2020-7-28 15:09
4
0
666666666666
雪    币: 1877
活跃值: 活跃值 (546)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
virjar 活跃值 1 2020-7-28 15:13
5
0
评价下,这个东西真的很强大。 脱机不要USB,速度快,稳定。以前自动化基本都是测试开发玩儿的,逆向或者爬虫都是使用测试同学封装的框架。这个框架确实专门给我们这类人开发的。逆向知识+自动化知识配合。同时拥有两个工种的优点。
雪    币: 2635
活跃值: 活跃值 (525)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
roysue 活跃值 3 2020-7-28 15:15
6
0
法律风险越来越大。
雪    币: 127
活跃值: 活跃值 (125)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
学编程 活跃值 1 2020-7-28 15:57
7
0
这个库能解决那种随机的弹窗吗,比如广告窗口,升级窗口
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 16:01
8
0
学编程 这个库能解决那种随机的弹窗吗,比如广告窗口,升级窗口
当然可以只要手指能做的都可以做哦
雪    币: 218
活跃值: 活跃值 (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
歌神鸡比 活跃值 2020-7-28 16:39
9
0
哈哈哈
雪    币: 127
活跃值: 活跃值 (125)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
学编程 活跃值 1 2020-7-28 16:42
10
0
珍惜Any 当然可以只要手指能做的都可以做哦
我的意思是时机,广告窗口,升级窗口,不会再固定activity窗口弹出来的,看你的例子,是线性操作
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 16:49
11
0
学编程 我的意思是时机,广告窗口,升级窗口,不会再固定activity窗口弹出来的,看你的例子,是线性操作
不是呀 我里面做了对话框show方法的回调 你只需要根据弹窗的特征进行dismiss即可
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 16:50
12
0
也可以设置页面的延迟,比如延迟10秒执行然后线性执行逻辑也可以
雪    币: 218
活跃值: 活跃值 (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
歌神鸡比 活跃值 2020-7-28 16:52
13
0
会不会被检测。使用外挂、脚本
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 16:55
14
0
歌神鸡比 会不会被检测。使用外挂、脚本
基于安卓原生事件分发的,滑块验证码测试都没问题
雪    币: 105
活跃值: 活跃值 (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caicaihui 活跃值 2020-7-28 17:15
15
0
试了一下没有调试起来,我把minSdkVersion改成16,支持安卓4.4吗
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 17:18
16
0
caicaihui 试了一下没有调试起来,我把minSdkVersion改成16,支持安卓4.4吗
可以
雪    币: 8
活跃值: 活跃值 (65)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hzzheyang 活跃值 2020-7-28 17:18
17
0
已经star+fork
雪    币: 151
活跃值: 活跃值 (487)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
StriveMario 活跃值 2020-7-28 17:36
18
0
像游戏那种surfaceview绘制出来的, 可以操作的了吗?
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 18:26
19
0
StriveMario 像游戏那种surfaceview绘制出来的, 可以操作的了吗?
可以 直接对activity分发对应的点击点击就好了
雪    币: 151
活跃值: 活跃值 (487)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
StriveMario 活跃值 2020-7-28 19:21
20
0
珍惜Any 可以 直接对activity分发对应的点击点击就好了
大佬666
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_vtqoqpot 活跃值 2020-7-28 20:02
21
0
滑块验证码怎么做??
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-28 22:01
22
0
mb_vtqoqpot 滑块验证码怎么做??
拿到滑块的view直接滑到指定位置就行
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
Wut.. 活跃值 2020-7-29 10:49
23
0
有安装教程吗,大佬
雪    币: 105
活跃值: 活跃值 (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caicaihui 活跃值 2020-7-29 12:13
24
0
有的功能比较深,想通过一件点击到想要的功能,比如说微信的清空聊天记录,启动Activity后,如何判断是自动打开的还是人工打开的
雪    币: 34
活跃值: 活跃值 (977)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
珍惜Any 活跃值 2020-7-29 13:47
25
0
caicaihui 有的功能比较深,想通过一件点击到想要的功能,比如说微信的清空聊天记录,启动Activity后,如何判断是自动打开的还是人工打开的
你可以自己启动他的activity 在Intent里面加个自己的 flag啊
游客
登录 | 注册 方可回帖
返回