【APP逆向04】Frida的下载与安装
-
HOOK是什么?
- Hook 框架是一种技术,用于在运行时拦截和修改应用程序的行为。通过 Hook,你可以劫持应用程序的方法调用、修改参数、篡改返回值等,以达到对应用程序的修改、增强或调试的目的。
-
常见的hook框架
- Xposed Framework:Xposed 是一个功能强大的开源 Hook 框架,可以在不修改应用程序源代码的情况下,对应用程序进行各种修改。它允许你编写模块来拦截和修改应用程序的方法调用,修改应用程序的行为和逻辑。
- Frida:Frida 是一个跨平台的动态 Hook 框架,支持安卓和其他操作系统。它提供了一个强大的 JavaScript API,可以在运行时对应用程序进行 Hook,包括方法拦截、参数修改、调用注入等。Frida 可以用于安全研究、逆向工程和应用程序调试等方面。(本文选择)
-
下载与安装
注意点:
1.手机端,需要安装 frida-server
2.python解释器环境中的frida模块版本必须和 手机端使用的frida-server版本要一一对应
-
1.电脑端安装
- pip install frida==16.1.7
- pip install frida-tools==12.3.0
-
2.手机端安装frida-server
- 2.1:下载地址:https://github.com/frida/frida/releases;
- 2.2:查看手机架构,adb shell getprop ro.product.cpu.abi
- 2.3:找到对应版本,对应架构的包下载;
- 2.4:解压,然后上传到手机上 /data/local/tmp
- 2.5:赋予可执行权限, chmod 777 frida-server-16.1.7-android-arm64
- 2.6:运行frida-server;如果报错-试着重启电脑或者电脑端输入命令:adb shell setenforce 0
-
启动并hook应用
- 1.在电脑端配置端口转发
## # 手机端启动了frida-server服务--->>电脑端要跟它通信--->>通过某个端口做通信--->>以后发送到电脑端 27042端口的数据--->>转发到手机的27042端口
## 方式一:使用命令(在电脑端的cmd窗口中)
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
## 方式二:使用python代码,右键运行即可
import subprocess # python中执行系统命令的一个模块
subprocess.getoutput("adb forward tcp:27042 tcp:27042")
subprocess.getoutput("adb forward tcp:27043 tcp:27043")
# 以后手机端每次启动了frida-server,都要执行端口转发,否则会报错
- 2.打印手机所有进程与前端进程
import frida
#1 获取设备信息 必须手机端启动了frida-server并且做了端口转发
rdev = frida.get_remote_device()
# 2 枚举所有的进程
# processes = rdev.enumerate_processes()
# for process in processes:
# print(process)
# 3 打印出前台在运行的app
front_app = rdev.get_frontmost_application()
print(front_app)
# Application(identifier="com.topjohnwu.magisk", name="Magisk", pid=23019, parameters={})
# Application(identifier="com.anhuitong.manage", name="爱学生", pid=24988, parameters={})
# 会使用,包名和应用名