一文带你了解对android的hook框架frida研究

3,119 阅读2分钟

1.frida原理

Frida是一款基于python + javascript 的hook框架,通杀android\ios\linux\win\osx等各平台,基于脚本的交互。

Frida大致原理是手机端安装一个server程序,然后把手机端的端口转到PC端,PC端写python脚本进行通信,而python脚本中需要hook的代码采用javascript语言。

2.Frida的优缺点

优点:在上面我们可以看到他的优点在于配置环境很简单,操作也很便捷,对于破解者开发阶段非常好用。支持Java层和Native层hook操作,在Native层hook如果是非基本类型的话操作有点麻烦。

  缺点:因为他只适用于破解者在开发阶段,也就是他没法像Xposed用于实践生产中,比如我写一个微信外挂用Frida写肯定不行的,因为他无法在手机端运行。也就是破解者用的比较多。

 

 

3.Frida 用python方式安装

image.png

2.手机端的frida-server的版本要和安装在电脑上的版本一致,不然会报错。

 

Frida-server下载地址:github.com/frida/frida…

下图就是版本不一致的错误。

image.png  

3.然后将Frida-server文件拷贝到模拟器上

命令: nox_adb push D:\11\frida-server-12.2.28-android-arm  //data//local//tmp

image.png

4.然后对Frida-server文件进行修改权限在shell环境中修改权限

命令:chmod 777 frida-server-12.2.28-android-arm

image.png

5. 运行frida-server-12.2.28-android-arm文件

命令: ./frida-server-12.2.28-android-arm

这个表示运行不成功,版本错误。

image.png

这样表示运行成功版本也没问题

image.png

6. 进行对模拟器的端口转发

image.png  

以上就完成模拟器对pc进行通信了,后面就是开始编写hook程序进行hook操作了。

 

 

4.进行frida的hook操作

 

在python安装(frida)的目录下执行frida命令的时候提示不是内部或者外部命令时候那么是需要安装frida-tools

命令:pip install frida-tools

image.png

 

查找进程pid及包名的命令: frida-ps -U (U表示USB)

image.png

 

显示安装成功的数据命令: frida-ps -R

image.png

 

Python执行获取设备相关的脚本

脚本如下:

image.png

运行脚本命令 python 11.py (需要将目录却换到放脚本文件的目录中)

下面显示的进行的效果(枚举手机上的所有进程)。

image.png

 

监控指定包的指定函数例如下面监控夜神模拟器中的浏览器包

命令:frida-trace -i “open” -U com.android.browser (open表示监控的函数, 最后表示包名)

image.png

 

用于启动frida和app但不会启动app的主程序

命令:frida -U com.android.browser

image.png