【APP逆向04】Frida的下载与安装

发布时间 2024-01-12 23:10:19作者: Tony_xiao
  • 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={})
# 会使用,包名和应用名