侧边栏壁纸
  • 累计撰写 45 篇文章
  • 累计创建 87 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Frida基础使用教程

Even
2022-10-14 / 0 评论 / 3 点赞 / 6085 阅读 / 3786 字

frida

一、frida介绍

Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。frida上层接口支持js、python、c等。

🔗 Frida官方github地址为:frida官方github地址

二、安装 frida-server

🔗 下载地址:https://github.com/frida/frida/releases

🔗 Android Tutorials地址:https://frida.re/docs/android/

查看cpu架构

adb shell getprop ro.product.cpu.abi
arm64-v8a

选择对应架构的server下载

server

三、启动 firida-server

  1. 操作步骤

    解压上面下载的文件,然后 push 到手机 /data/local/tmp,接着启动 firda-server 服务

  • 查看设备

    adb devices -l
    
  • 将文件传到手机

    adb push frida-server-16.0.1-android-arm64 /data/local/tmp
    
  • 进入shell

    adb shell
    # 或者
    adb content 192.xx.xx.xx:xx
    
  • 切换root权限

    su
    
  • 进入到文件目录

    cd /data/local/tmp
    
  • 修改权限

    chmod 777 /data/local/tmp/frida-server-16.0.1-android-arm64
    
  • 启动服务

    ./frida-server-16.0.1-android-arm64
    
  1. 端口映射
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
  1. 查看进程
frida-ps -U

查看进程

Hook的Python脚本

import frida  #导入frida模块
import sys    #导入sys模块

jscode = """  #从此处开始定义用来Hook的javascript代码
    Java.perform(function(){  
        var MainActivity = Java.use('com.example.testfrida.MainActivity'); //获得MainActivity类
        MainActivity.testFrida.implementation = function(){ //Hook testFrida函数,用js自己实现
            send('Statr! Hook!'); //发送信息,用于回调python中的函数
            return 'Change String!' //劫持返回值,修改为我们想要返回的字符串
        }
    });
"""

def on_message(message,data): #js中执行send函数后要回调的函数
    print(message)

process = frida.get_remote_device().attach('com.example.testfrida') #得到设备并劫持进程com.example.testfrida(该开始用get_usb_device函数用来获取设备,但是一直报错找不到设备,改用get_remote_device函数即可解决这个问题)
script = process.create_script(jscode) #创建js脚本
script.on('message',on_message) #加载回调函数,也就是js中执行send函数规定要执行的python函数
script.load() #加载脚本
sys.stdin.read()

四、frida命令

# 通过USB将Frida连接到iPad并列出正在运行的进程
$ frida-ps -U

# 列出正在运行的应用程序
$ frida-ps -Ua

# 列出已安装的应用程序
$ frida-ps -Uai

# 将Frida连接到特定设备
$ frida-ps -D 0216027d1d6d3a03

五、gadget

适用于当无法获取root权限时可以将gadget.so植入目标apk中重打包,通过修改应用,使得server以应用的权限启动

gadget

3

评论区