APP自动化全站爬取探索

386 阅读2分钟

1. Humanoid

Humanoid 可以像人类一样浏览 Android 应用程序。使用深度学习技术从人类使用应用程序的痕迹中借鉴经验。 目前 Humanoid 可以和 DroidBot 配合使用。当 DroidBot 以基于模型的策略探索 Android 应用程序时,它将根据当前 UI 状态生成多个可能的输入事件。Humanoid 对事件进行排序,使得最有可能由人类执行的事件将首先被触发。

【参考论文】 arxiv.org/pdf/1901.02…

github.com/yzygitzh/Hu…

安装依赖 python3.6 tensorflow==1.15 keras==2.2.5 ...

不支持tf2.x, 注意版本对应

启动

python agent.py -c config.json

2. droidbot

DroidBot 是一款适用于 Android 的轻量级自动化测试工具。它可以向 Android 应用程序发送随机或脚本输入事件,更快地实现更高的测试覆盖率,并在测试后生成 UI 转换图UTG

github.com/honeynet/dr…

No module named 'androguard.core.bytecodes'异常 解决办法

# 修改 droidbot/app.py

from androguard.core.apk import APK
# from androguard.core.bytecodes.apk import APK

启动

adb 设备要连接好,并下载好目标apk(不用提前安装)

droidbot -a D:\WORKDIR\code\PycharmProjects\droidbot\apk\xs.apk -o output

注意要设备root权限

使用 droidbot -a D:\WORKDIR\code\PycharmProjects\droidbot\apk\xs.apk -o output -humanoid localhost:50405

执行完成后,可以看下他的整个浏览路径

41092500-F40A-4226-8FCF-ACC59ED18710.jpg

Humanoid模型是基于tf1.x模型,在interactionmining.org/rico 数据及上训练的,可以根据实际情况二次训练,我测试下来,对一些常规APP,基本骨架都能探测到,并生成截图,当然,droidbot还可以对APP方法及UI结构进行分析,常规的一些自动化事件都可以支持。

结果会保存所有截图和可能的事件,不过他不不会去重,所以会重复浏览,所以我测试时都是强制停止了。

另外一点是针对搜索、表单输入一类就无能为力了,毕竟是UI自动化,针对数据的比较定制化的确实也不在范畴之内,不过要是稍微加上一些定制化功能弥补这些,对一个APP内的全站爬取几乎就比较全了。