Android|Android Hook工具之Frida 安装配置教程

Frida是一款基于Python + JavaScript的Hook调试框架,可以将自己编写的JavaScript代码注入到Windows,MACOS,Linux, iOS,Android和QNX 的应用中从而进行Hook,其实Frida功能不仅仅是Hook,还包括以下这些功能:

  • 访问进程的内存
  • 在应用程序运行时覆盖一些功能
  • 从导入的类中调用函数
  • 在堆上查找对象实例并使用这些对象实例
  • Hook,跟踪和拦截函数等等
Frida官网地址:https://www.frida.re.
Frida可以运行在多个平台上,这次主要讲解使用MacOS当宿主机的使用方式
  • 宿主机系统:Mac OS
  • Android手机: 已Root过的Android 手机或使用Android模拟器也可以(PS:我使用的华为荣耀6p的Android 6.0系统,模拟器没用过不知道会不会有坑)
  • Frida: Frida有多重安装方式,这里主要记录一下常用的两种方式。
    方式一: 直接通过Pip安装Frida,一般Mac系统上都会有Python环境,如果没有则需要先安装python(最好用最新的版本)安装完Python后继续安装pip,打开终端输入sudo easy_install pip命令进行安装
sudo easy_install pip Password:

安装完pip后就可以安装Frida了,直接输入sudo pip install frida即可(安装时间比较长耐心等待,最好使用VPN)
sudo pip install frida pip install frida-tools

方式二: 直接下载对应平台的Python版本的安装包,比如:当前系统是Mac OS-10.12,Python是2.7,那么就应该下载:frida-10.6.52-py2.7-macosx-10.12-intel.egg ,下载完成后直接安装即可
下载地址: https://pypi.python.org/pypi/frida
安装完成后,直接在终端中输入frida-ps命令查看,如果能显示当前系统进程则证明安装成功
frida-ps PIDName ------------------------------------------------- 416AirPlayUIAgent 596Android Studio 551AppleSpell.service 529CoreServicesUIAgent 264Dock 266Finder 402FolderActionsDispatcher 553Google Chrome 505LaterAgent 517QQ 530QQ jietu plugin

  • Frida-server: 直接去官网下载:https://github.com/frida/frida/releases 对应的版本即可,注意:Frida-server的版本必须跟你宿主机的Frida版本一致,比如我宿主机Frida的版本是10.6.52,Android手机是arm64的,那么应该下载:rida-server-10.6.52-android-arm64.xz 文件。
    下载后解压文件,并将文件重命名为: frida-server, 重命名完成后使用adb push命令推送到手机中
adb push frida-server /data/local/tmp/

推送完成后将frida-sever赋予执行的权限,并运行Frida-server,使用以下命令:
adb shell su cd /data/local/tmp/ chmod 777 frida-server ./frida-server

注1: 如果frida-server没有启动,查看一下你是否使用的是Root用户来启动,如果使用Root用户则应该是#
注2: 如果要启动frida-server作为后台进程、可以使用这个命令./frida-server &
正常启动后,另开一个终端,使用frida-ps -U命令检查Frida是否正常运行,如果正常运行则会列出Android设备上当前正在运行的进程.
frida-ps -U PIDName ----------------------------------------------- 383531:0 3724HwCamCfgSvr 3954adbd 5011android.process.acore 5029android.process.media 3739bastetd 3736check_longpress 3764check_longpress 13962com.UCMobile:channel 14462com.UCMobile:push

参数-U 代表USB,意思让Frida检查USB设备,使用frida-ps -R 也可以,但是需要进行转发。执行adb forward tcp:27042 tcp:27042后执行frida-ps -R也可以看到手机上的进程.
到此为止,Frida工作环境已经准备好了,下一篇文章介绍一下Android Hook工具之Frida 基础使用
【Android|Android Hook工具之Frida 安装配置教程】参考资料:
https://www.frida.re/docs/installation/

    推荐阅读