Skip to main content

移动端自动化

移动端的自动化往往基于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={})
'''