frida安装以及使用

本文介绍了如何在电脑上安装和配置Frida工具,通过hook技术实现在Java层对手机应用进行实时修改,包括Frida-Server的安装、与手机设备的连接、遇到问题的解决以及使用Python脚本控制hook过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

Java层和native层的逻辑都可以hook,电脑编写的和执行的脚本,修改之后无需重新编译和额外安装在手机上,环境配置简单,很好的支持跨平台

1.电脑安装frida

pip install frida-tools

2.frida-server下载安装

frida-server下载需要注意的有两点:
1.安装的frida版本:需要下载与安装的frida版本对应的frida-server,否则会出错。
先查看下手机的版本是32位还是64位

C:\Users\tyj>adb shell
flame:/ $ getprop ro.product.cpu.abi
arm64-v8a

可以看到我这里是64位的
:我所用手机是Goole Pixl4,已经root过解了BL锁

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

下载完成之后解压之后将解压的文件夹内容推过去

adb push frida-server-16.2.1-android-arm64 /data/local/tmp/

3.启动frida服务并连接

adb shell进入设备shell环境,cd到临时目录下,给frida-server文件设置可执行权限使其可以运行

(app) P:\APP逆向>adb shell
flame:/ $ cd /data/local/tmp/
flame:/data/local/tmp $ ls
frida-core-devkit-16.2.1-android-arm64.tar.xz frida-server-16.2.1-android-arm64

设置端口转发

#电脑端转发端口
adb forward tcp:27043 tcp:27043
adb forward tcp:27042 tcp:27042
# 手机运行frida-server
chmod 777 ./frida-server-16.2.1-android-arm64
./frida-server-16.2.1-android-arm64
adb shell "su - setenforce 0"

2.报错AttributeError: ‘_frida.Process’ object has no attribute ‘get_small_icon’
解决方案

pip3 install --upgrade frida-tools

3.安装测试应用
现在手机上安装对应的app,这里使用的崔大的app来测试,下载地址如下
http://app5.scrape.center
下载结束之后,在文件所在文件夹中通过adb安装

adb install app5.apk

保存文件,文件名:hook_java.js

Java.perform(() => {
  let MainActivity = Java.use('com.germey.appbasic1.MainActivity')
  console.log('start hook')
  MainActivity.getMessage.implementation = () => {
    send('Start Hook!')
    return '6'
  }
})

python脚本如下

import frida
import sys

CODE = open('hook_java.js', encoding='utf-8').read()
# PROCESS_NAME = 'com.germey.appbasic1'
PROCESS_NAME = 'AppBasic1'

def on_message(message, data):
    print(message)

process = frida.get_usb_device().attach(PROCESS_NAME)
print(process)
script = process.create_script(CODE)
script.on('message', on_message)
script.load()
sys.stdin.read()

执行结果如下,手机对应app结果也会修改

D:\ProgramData\Anaconda3\envs\app\python.exe P:\FridaDemo\Hook_Java.py 
Session(pid=8069)
start hook
{'type': 'send', 'payload': 'Start Hook!'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值