游戏测试 基于 frida 的 Android 移动自动化测试框架方案研究

ZedBug · 2022年05月19日 · 最后由 范顿顿 回复于 2023年11月21日 · 8335 次阅读

前言

frida 是时下热门的跨平台 hook 框架,在 Android 移动上也有良好的表现。

同时支持 java 和 native hook,支持 js 和 python 脚本。

虽然说 frida 大多数情况下用于安全逆向分析,用来做自动化测试似乎有点高射炮打蚊子。不过我已经看到论坛有人研究过 xp 版本的测试框架,

而且 frida 确实是我日常使用非常高的一个工具,所以对我来说学习成本来说基本为 0。

基于 hook 我觉得 frida 确实有非常高的上限,据我已知已经有团队使用自研的 frida 去做相关内容。

frida 测试方向

无需 root 加入 frida

载入 frida-gadget.so 到目标程序中即可,无需 root 环境。

UI 测试点击

针对界面的 hook 点击,也可以直接 hook 拉起页面。可以做到和 appium 同样的操作,同时可以接入页面启动相关的速度检测。

网络测试

针对所使用的网络库进行发包和解包 hook,可以实现类似 fidder 的功能

  • 数据拦截
  • 改包
  • 伪造数据返回

异常日志收集

针对 apk 的日志输出包括 java 和 native 层,在测试同时收集起来也是方便的。

rpc 和群控

frida 自带 rpc,配合前面的 ui 自动化。通过端口映射完全可以做到群控测试。

其他

总体来说方案可行,只是对于不使用 frida 的人成本有点高。

我计划写一个小框架工具去降低这个使用门槛。

最后自我介绍

📫 姓名昵称

ZedBug

🔭 工作内容

安卓系统网络流量数据获取测试
安卓逆向漏洞分析
安卓安全防护
安卓测试自动化
安卓游戏自动化开发测试

🌱 核心技术研究方向

安卓游戏自动化开发测试 (框架研究)
安卓逆向安全防护 (加固加壳/代码混淆)
安卓测试自动化
安卓风控防护与对抗
安卓 ROM 定制与裁剪

共收到 4 条回复 时间 点赞

请问,这种方式和基于 airtest 的 UI 自动化,各自的优缺点在哪呢

请问有后续吗

水山 回复

airtest ui 自动化是 cs 架构就是原生层提供 ui 自动化 api + tcpsever, pc 上的 client 给他发请求。 关键是需要提供自动化相关 api 这些 api 如是 unity 类的需要嵌入到被测应用中。
如果用 hook 的方式把被测应用 api 直接插装进去就不需要在打包时把平台相关 api 打进去

最近对利用 hook 的方式实现 平台相关 UI 自动化很感兴趣,感谢楼主提供一种方案。
这个平台相关 UI 自动化指的是,比如 android 它是 android 官方 4.4 提供的 uiautomator, 如果是 unity 则是 airtest 类似的 pocosdk,我希望利用 hook 把 pocosdk 插到目标进程里。
第一部分先实现利用 hook 调用 uiautomator 自动化实现一下无嵌入的 android ui 自动化

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册