0x1 安装frida
在安装frida之前需要提前安装python3,这里使用的python版本是3.8.1,python具体安装细节略过。
pip安装frida:
pip install frida
pip install frida-tools
使用`frida --version`查看frida版本。<br /><br />这里需要简单说一句,frida是典型的C/S架构,使用pip安装的只是客户端,还需要安装对应版本的客户端在安装模拟器或者安卓真机上。server地址:[https://github.com/frida/frida/releases](https://github.com/frida/frida/releases)<br />
0x2 安装genymotion
genymotion直接在官网上下载即可:https://www.genymotion.com/download/
genymotion的虚拟机功能由virtual box来实现,所以直接下载带有virtual box的版本即可。
安装后界面如下,点击+
号可以灵活的安装各种版本安卓系统。
对于安卓虚拟机的选择,推荐使用安卓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。
0x4 安装frida服务端
下载版本匹配的frida server,genymotion中的虚拟机架构为x86,下载 frida-server-xx.x.x-android-x86.xz
即可。下载完成后,使用adb将server发送到安卓模拟器。
adb push D:\ATMP\TMP\frida-server-15.1.1-android-x86\frida-server_86 /tmp
然后使用adb shell提升权限并运行frida-server。
使用frida-ps -U
测试是否连接成功。
0x05 测试hook功能
hook脚本如下:
// hook.js
function main(){
Java.perform(function (){
console.log("Inside java perform!")
})
}
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代码
如果出现问题,可以尝试开启模拟器开发者模式来解决问题,Settings-About Phone,点击Build Number 5次开启开发者模式。