在浏览器中打开网址https://github.com/frida/frida/releases,下载以下4个文件:
需要注意,下载的frida-server版本要与计算机端安装的Frida版本一致。
Frida是一个全平台的Hook框架,但是本书介绍的是Android端的,所以下载Android端使用的frida-server即可。
arm、arm64、x86、x86_64指的是CPU架构。一般情况下,移动端使用arm和arm64,安卓模拟器中使用x86、x86_64。本书采用的测试机是谷歌的pixel 1代,CPU是arm64的架构。因此,使用frida-server-14.2.18-android-arm64.xz文件。需要注意的是,这是一个压缩包,请解压后使用。
将frida-server通过adb推送到手机设备中,并给予可执行权限,然后在root权限下运行。具体命令如下:
正常启动frida-server后,另开一个命令行终端,使用frida-ps-U命令来测试Frida客户端是否能够正常连接frida-server。如果正常运行,则会列出Android设备上当前正在运行的进程。
参数-U代表USB,是指让Frida检查USB设备。也可以使用frida-ps-R,但是需要进行端口转发。执行adb forward tcp:27042 tcp:27042后,再执行frida-ps-R也可以看到Android设备上当前正在运行的进程。
frida-server运行不了、运行报错、连接不上的常见原因如下。
·frida-server平台没有选对,如在arm64机型上选择x86的frida-server来使用。
·没有给予可执行权限,导致运行后提示Permission denied。
·frida-server版本与计算机端Frida版本不匹配,导致连接时出现各种问题。
·某些Frida版本与Xposed存在冲突。
本章介绍的是Frida的逆向环境配置,实际上Android逆向需要配置的环境比这多得多。如反编译dex需要的jadx、jeb工具,反编译so文件需要的IDA工具,开发App应用程序需要的AndroidStudio,各种抓包工具等。配置环境的过程是烦琐耗时的,但这也是逆向开发和安全研究人员的基本功。