frida安装以及简单使用

1 安装frida【PC】

pip install frida==16.0.1

在这里插入图片描述

1. 下载egg

https://pypi.doubanio.com/simple/frida/

在这里插入图片描述

2. 放入指定目录

在这里插入图片描述

3. 再次安装

pip install frida==16.0.1

在这里插入图片描述

2 安装frida-tools【PC】

pip install frida-tools==12.0.1
pip install frida-tools -> 最新

在这里插入图片描述

3 frida-server【手机端】

1. 查看CPU架构

adb shell getprop ro.product.cpu.abi

2. 下载frida-server

https://github.com/frida/frida/releases

在这里插入图片描述

3. 上传到手机

下载的是一个压缩包,需要将压缩包解压,然后将解压出来的文件(非文件夹)上传至手机的/data/local/tmp/目录下。

- 【电脑】文件上传到设备
	>>>adb push C:\2345Downloads\...  /sdcard/
- 【手机】将frida-server..文件移动到手机的 /data/local/tmp 目录
	>>>adb shell
	>>>su -
	>>>cd sdcard
	>>>mv frida-server-16.0.1-android-x86_64  /data/local/tmp/
- 【进入】
	>>>cd /data/local/tmp
- 【授权】授予可执行的权限
	>>>chmod 777 frida-server-16.0.1-android-x86_64

启动和Hook

1.端口转发

adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
import subprocess

subprocess.getoutput("adb forward tcp:27042 tcp:27042")
subprocess.getoutput("adb forward tcp:27043 tcp:27043")

2.获取进程

# 枚举手机上的所有进程 & 前台进程
import frida

# 获取设备信息
rdev = frida.get_remote_device()
print(rdev)

# 枚举所有的进程
processes = rdev.enumerate_processes()
for process in processes:
    print(process)

# 获取在前台运行的APP
front_app = rdev.get_frontmost_application()
print(front_app)

3.hook脚本

①:附加

import frida
import sys

# 连接手机设备
rdev = frida.get_remote_device()

# Hook手机上的那个APP(app的包名字)
session = rdev.attach("名称") 

scr = """
Java.perform(function () {

    // 包.类
    var UserModel = Java.use("hook的类名");

    // Hook,替换
    UserModel.方法名.implementation = function(str,str2,str3,callback){
        console.log(str,str2,str3);

        // 执行原来的方法
        this.方法(str,str2,str3,callback);
    }

});
"""

script = session.create_script(scr)
def on_message(message, data):
    print(message, data)


script.on("message", on_message)
script.load()
sys.stdin.read()

②:spawn模式

import frida
import sys

# 连接手机设备
rdev = frida.get_remote_device()

# Hook手机上的那个APP(app的包名字)
pid = rdev.spawn(["包名"])
session = rdev.attach(pid)
scr = """
Java.perform(function () {

    // 包.类
    var UserModel = Java.use("hook的类名");

    // Hook,替换
    UserModel.方法名.implementation = function(str,str2,str3,callback){
        console.log(str,str2,str3);

        // 执行原来的方法
        this.方法(str,str2,str3,callback);
    }

});
"""

script = session.create_script(scr)
def on_message(message, data):
    print(message, data)


script.on("message", on_message)
script.load()
rdev.resume(pid)
sys.stdin.read()

4.hook脚本-md5加密

import frida
import sys

# 连接手机设备
rdev = frida.get_remote_device()

# Hook手机上的那个APP(app的包名字)
session = rdev.attach("车")

scr = """
Java.perform(function () {

    // 包.类
    var SecurityUtil = Java.use("com.autohome.ahkit.utils.SecurityUtil");
    
    // Hook,替换
    SecurityUtil.encodeMD5.implementation = function(str){
        console.log("md5加密,明文:",str);
        var res = this.encodeMD5(str);
        console.log("md5加密,密文:",res);
       //调用栈
        console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
        return res;
    }
    

});
"""

script = session.create_script(scr)
def on_message(message, data):
    print(message, data)


script.on("message", on_message)
script.load()
sys.stdin.read()
### Frida 安装教程 #### Python 版本兼容性注意事项 由于某些版本的 Python 可能无法通过传统的 `pip` 命令完成安装,因此建议使用稳定的 Python 版本(如 3.8 或 3.9)。如果当前使用的 Python 是较新的版本(例如 3.12),可能会遇到类似以下错误提示: > xmlrpc.client.Fault: `<Fault -32500: 'RuntimeError: PyPI no longer supports the XMLRPC package_releases method.` 此时可以尝试切换到支持的 Python 版本或者调整安装方式[^5]。 #### 使用 Pip 进行安装 对于大多数用户而言,可以通过以下命令来安装 Frida 的核心库及其工具集。推荐的稳定版本组合如下所示: ```bash pip install frida==14.2.18 pip install frida-tools==9.2.5 ``` 此版本经过测试,在多种环境中表现良好[^2]。 #### 下载并部署 Frida-Server 为了使 Frida 能够在目标设备上运行,还需要下载对应的 **frida-server** 文件,并将其放置于目标设备中。具体操作流程如下: 1. 访问官方发布页面获取适合的目标架构和系统的文件链接。例如针对 Android ARM64 架构可选用以下地址: ```plaintext https://github.com/frida/frida/releases/download/12.8.0/frida-server-12.8.0-android-arm64.xz ``` 2. 将下载好的压缩包解压后得到二进制文件 `frida-server`。 3. 利用 ADB 工具将该文件传输至模拟器或真实设备中的 `/data/local/tmp/` 目录下,并赋予执行权限: ```bash adb push frida-server /data/local/tmp/ adb shell chmod +x /data/local/tmp/frida-server ``` 4. 启动服务端程序以便建立连接: ```bash adb shell "/data/local/tmp/frida-server &" ``` 上述步骤完成后即可正常通信[^3][^4]。 #### 验证安装成功与否 最后一步是验证整个环境搭建是否顺利完成。可以在终端输入简单的脚本来检测是否存在任何异常情况: ```python import frida device = frida.get_usb_device() print(device.name) ``` 当输出对应设备名称时,则表明一切准备就绪[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值