在日常分析安卓应用时,通常会有对应用进行hook的需求,用的比较多的hook框架有Xposed,frida,xhook等,正好最近接触Frida接触的较多,所以对Frida的一些常用操作做个记录,方便以后翻阅查询,同时也可以对学习frida的小伙伴有个参考的资料;
一般Frida逆向三阶段:
- 阶段一.分析程序执行逻辑,函数参数,函数返回值
- 阶段二.在1的基础上对数据进行修改,执行流程的控制,核心方法的调用
- 阶段三.在2的基础上实现对核心方法的封装调用,提供对外服务接口
1.1.安装python3环境
https://www.python.org/ 下载最新的直接安装
1.2.frida安装
推荐下面这个版本 非常稳定 实测
1.3.frida-server下载
frida-server下载需要注意的有两点:
1.安装的frida版本:需要下载与安装的frida版本对应的frida-server,否则会出错。
下载地址:https://github.com/frida/frida/releases
2.手机设备的架构:因为我的手机是arm64平台的所以选择的是android-arm64
下载完毕之后,解压后通过adb push到设备的临时目录下
1.4.启动frida服务并连接
adb shell进入设备shell环境,cd到临时目录下,给frida-server文件设置可执行权限使其可以运行
之后运行frida服务文件,注意需要通过root权限去运行
然后 进行端口转发
完毕后就可以在windows上运行简单的frida命令测试我们是否安装成功了
1.5.搭建frida开发环境
首先来看一下frida的常用功能
常见的参数及其含义:
举个例子:
2.1.frida查看当前设备进程
2.2.frida对指定方法进行trace
用的比较多的一般就是上面的两个功能,都是frida帮我们生成好了hook代码,直接拿来使用就行,简单方便,但有时候我们想自己定制些功能怎么办?
接下来看下如何通过编写js代码来实现对安卓APP中某些方法的hook。
在hook之前首先要熟悉我们需要hook的目标方法,应用包名,参数等基础信息。这里简单写了个demo,后面我们都通过这个demo来学习。