移动端自动化
移动端的自动化往往基于adb,你可以通过下载雷电模拟器或其他模拟器来获得它,然后在模拟器上进行自动化测试。这里以雷电模拟器为例,介绍如何使用Frida进行移动端自动化。
1. 安装 Frida
首先,我们需要在 Python 环境中安装 Frida。打开终端,输入以下命令:
pip install frida-tools
pip install frida
2. 下载 Frida 服务端
接着,我们需要下载 Frida 服务端。你可以在 Frida 的 GitHub 仓库中找到对应的版本。
例如,如果你需要的版本是 16.1.11,你可以下载 frida-server-16.1.11-android-x86_64.xz
。请根据你的设备和需求选择合适的版本。
3. 解压 Frida 服务端
下载完成后,我们需要对 Frida 服务端进行解压。解压后,你会得到一个名为 frida-server-16.1.11-android-x86_64
的文件。
4. 准备 Frida 服务端
为了方便后续操作,我们将 Frida 服务端重命名并移动到一个方便的位置。例如,你可以将它重命名为 frida-s
,并移动到 C:\leidian\LDPlayer9\
目录下(雷电模拟器自带adb)。
5. 设置 Android 设备
接下来,我们需要在 Android 设备上进行一些设置。
如果你是使用自己的手机插桩:打开设备的开发者模式,并允许 USB 调试。然后,设置设备的 Root 权限。 如果你是使用雷电模拟器插桩:在设置-其他设置-打开root权限后重启。
6. 重启 ADB 服务
为了确保 ADB 服务正常运行,我们需要先停止,然后再启动 ADB 服务。在终端中输入以下命令:
CMD
cd C:\leidian\LDPlayer9\
adb kill-server
adb start-server
# 将 Frida 服务端上传到 Android 设备上
adb push frida-s /data/local/tmp/
# 启动 Frida 服务端
adb shell
CMD-adb shell
# 获取 root 权限
su
# 切换到 Frida 服务端所在的目录
cd data/local/tmp
# 设置 Frida 服务端的权限
chmod 777 frida-s
# 启动 Frida 服务端
./frida-s
至此,你已经成功安装并启动了 Frida。你可以开始使用 Frida 进行动态代码插桩了(成功的代码没有任何提示,No news is good news)。
另起一个CMD窗口,输入以下命令:
CMD
cd C:\leidian\LDPlayer9
adb forward tcp:27042 tcp:27042
9. 使用 Frida
C:\leidian\LDPlayer9\test.py
import frida
# 获取远程设备
remote_dev = frida.get_remote_device()
print(remote_dev)
# 获取前台应用
front_app = remote_dev.get_frontmost_application()
print(front_app)
# 枚举进程
processes = remote_dev.enumerate_processes()
for process in processes:
print(process)
# 输出结果如下
'''
Device(id="socket", name="Local Socket", type='remote')
Application(identifier="jp.co.hit_point.tabikaeru", name="旅行青蛙", pid=3249, parameters={})
.....
Process(pid=2925, name="logcat", parameters={})
Process(pid=2940, name="memfd:frida-helper-32 (deleted)", parameters={})
'''