0x1 安装frida

在安装frida之前需要提前安装python3,这里使用的python版本是3.8.1,python具体安装细节略过。
pip安装frida:

  1. pip install frida
  2. pip install frida-tools
  1. 使用`frida --version`查看frida版本。<br />![图片.png](https://cdn.nlark.com/yuque/0/2021/png/479381/1631176214716-6b8b9603-bea9-4e2e-92db-fc12b894b1e6.png#clientId=u33c3264f-9d0c-4&from=paste&height=45&id=uab438d95&name=%E5%9B%BE%E7%89%87.png&originHeight=58&originWidth=397&originalType=binary&ratio=1&size=2217&status=done&style=none&taskId=uc1fcff7b-1b6d-4a02-b8df-4af0b4f0ff1&width=305.5)<br />这里需要简单说一句,frida是典型的C/S架构,使用pip安装的只是客户端,还需要安装对应版本的客户端在安装模拟器或者安卓真机上。server地址:[https://github.com/frida/frida/releases](https://github.com/frida/frida/releases)<br />![图片.png](https://cdn.nlark.com/yuque/0/2021/png/479381/1631176358954-f3aeba0d-7a2b-49f6-ba80-9e6198d1ac6a.png#clientId=u33c3264f-9d0c-4&from=paste&height=149&id=u2eb1928e&margin=%5Bobject%20Object%5D&name=%E5%9B%BE%E7%89%87.png&originHeight=298&originWidth=1322&originalType=binary&ratio=1&size=30304&status=done&style=none&taskId=ueaf6c7c9-ce48-406d-979c-772fe49a512&width=661)

0x2 安装genymotion

genymotion直接在官网上下载即可:https://www.genymotion.com/download/
genymotion的虚拟机功能由virtual box来实现,所以直接下载带有virtual box的版本即可。
安装后界面如下,点击+号可以灵活的安装各种版本安卓系统。
图片.png
对于安卓虚拟机的选择,推荐使用安卓6.0以上版本,以免出现各种奇怪问题。
此外,还需要下载符合安卓虚拟机版本的 Genymotion_ARM_Translation,下载完成后直接拖拽进入即可。

0x3 Android SDK安装

在安卓模拟器和计算机之间传递文件需要安装ADB工具。而genymotion需要本地Android SDK来开启adb连接。而Android SDK包含了adb等工具,目前Android SDK是和Android Studio绑定在一起的,直接下载Android Studio即可。
genymotion需要按如图所示将ADB连接设置为本地的Android SDK。
图片.png

0x4 安装frida服务端

下载版本匹配的frida server,genymotion中的虚拟机架构为x86,下载 frida-server-xx.x.x-android-x86.xz 即可。下载完成后,使用adb将server发送到安卓模拟器。

  1. adb push D:\ATMP\TMP\frida-server-15.1.1-android-x86\frida-server_86 /tmp

然后使用adb shell提升权限并运行frida-server。
图片.png
使用frida-ps -U测试是否连接成功。
图片.png

0x05 测试hook功能

hook脚本如下:

  1. // hook.js
  2. function main(){
  3. Java.perform(function (){
  4. console.log("Inside java perform!")
  5. })
  6. }
  7. setImmediate(main)

使用adb install指令向模拟器安装apk,或者直接拖拽apk到genymotion也可。
使用frida hook该应用:frida -U -f com.devexpert.weather --no-pause -l hook.js

  • -U :USB连接
  • -f:开启一个新进程
  • com.xxx.xxx:要开启应用的包名
  • —no-pause:开启后恢复环境
  • -l hook.js:hook代码

图片.png
如果出现问题,可以尝试开启模拟器开发者模式来解决问题,Settings-About Phone,点击Build Number 5次开启开发者模式。
图片.png