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方式安装
2.手机端的frida-server的版本要和安装在电脑上的版本一致,不然会报错。
Frida-server下载地址:github.com/frida/frida…
下图就是版本不一致的错误。
3.然后将Frida-server文件拷贝到模拟器上
命令: nox_adb push D:\11\frida-server-12.2.28-android-arm //data//local//tmp
4.然后对Frida-server文件进行修改权限在shell环境中修改权限
命令:chmod 777 frida-server-12.2.28-android-arm
5. 运行frida-server-12.2.28-android-arm文件
命令: ./frida-server-12.2.28-android-arm
这个表示运行不成功,版本错误。
这样表示运行成功版本也没问题
6. 进行对模拟器的端口转发
以上就完成模拟器对pc进行通信了,后面就是开始编写hook程序进行hook操作了。
4.进行frida的hook操作
在python安装(frida)的目录下执行frida命令的时候提示不是内部或者外部命令时候那么是需要安装frida-tools
命令:pip install frida-tools
查找进程pid及包名的命令: frida-ps -U (U表示USB)
显示安装成功的数据命令: frida-ps -R
Python执行获取设备相关的脚本
脚本如下:
运行脚本命令 python 11.py (需要将目录却换到放脚本文件的目录中)
下面显示的进行的效果(枚举手机上的所有进程)。
监控指定包的指定函数例如下面监控夜神模拟器中的浏览器包
命令:frida-trace -i “open” -U com.android.browser (open表示监控的函数, 最后表示包名)
用于启动frida和app但不会启动app的主程序
命令:frida -U com.android.browser