Frida初探(模拟器测试)

Frida 是一款针对移动应用的动态分析工具。它允许开发人员、安全研究人员和逆向工程师在运行中的应用程序中进行动态修改和调试。Frida 提供了一种简单而强大的方式来理解应用程序的内部工作原理,并帮助用户对其进行修改和扩展。

使用 Frida,您可以在运行的移动应用中注入 JavaScript 或本机代码以执行各种任务,例如监视函数调用、修改函数返回值、拦截网络请求、绕过应用程序的安全检查、动态修改应用程序的行为等等。Frida 可以在多种操作系统上使用,例如 Android、iOS、Windows、macOS 和 Linux。

1.安装Frida模块,pip install frida

2.安装frida-tools模块,pip install frida-tools

3.下载运行在目标机上的frida-server端,官网地址:Releases · frida/frida · GitHub

注意在模拟器上运行下载的是X86版本,电脑是64位的,下了X86_64版本运行一直报错,可能跟模拟器有关

使用模拟器测试的原因是真机root比较麻烦

附上模拟器中查看的芯片信息

4.将下载好的服务器文件解压,通过命令adb push到模拟器/data/local/tmp/路径下

修改文件权限并运行,非Root机器无法运行

可以看到已经启动运行

5.下载使用的雷电模拟器,一定要打开root模式

模拟器上安装需要测试的应用

模拟器设置

6.python测试脚本

AppFuncs是一个单例模式的类

com.chenke.AndroidCore是这个类的package

Frida测试是应用的进程名,使用命令frida-ps -U可以查看确认

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

jscode = """
    Java.perform(function(){  
        var AppFuncs = Java.use('com.chenke.AndroidCore.AppFuncs'); 
        var instance = AppFuncs.getInstance();
        instance.testFrida.implementation = function() {
            send('Statr! Hook!');
            return 'Change String!';
        };
    });
"""

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

process = frida.get_remote_device().attach('Frida测试') #得到设备并劫持进程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()

7.运行测试脚本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤面不加鱼丸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值