🗒️Frida RPC

Frida-rpc的介绍与使用
Frida RPC
status
Published
type
Post
category
安卓逆向
date
Feb 23, 2024
slug
FridaRPC
summary
Frida-rpc的介绍与使用
tags
frida
password
icon
 
 

遇到so文件如何分析

  1. 硬核破解--》难度很大
  1. frida-rpc,直接调用手机中方法,传入参数,返回结果
  1. 自己写个app,放入它的so文件,我们主动调用
  1. unidbg,模拟手机的运行环境--》直接执行so文件
 

frida-rpc是什么

frida 提供了一种跨平台的 rpc (远程过程调用)机制,通过 frida rpc 可以在主机和目标设备之间进行通信,并在目标设备上执行代码 rpc:远程过程调用 -后端开发--》微服务中会经常使用到
 

工作原理:

notion image

流程图描述

  • [宿主程序]:启动Frida,准备调用RPC方法。
  • [注入Frida脚本]:将JavaScript脚本注入目标进程。
  • [定义RPC方法]:在JavaScript脚本中定义RPC方法。
  • [调用RPC方法]:宿主程序通过Frida API调用RPC方法。
  • [执行操作]:在目标进程中执行RPC方法。
  • [返回结果]:将执行结果返回给宿主程序。
  • [双向通信]:可进行额外的数据交换和通信。
notion image
notion image
 

如何使用frida-rpc

使用Frida RPC涉及到几个关键步骤,包括编写注入的Frida脚本、定义RPC方法,以及在宿主程序中调用这些方法。以下是一个基本的使用Frida RPC的指南:

1. 安装Frida

首先,确保你已经安装了Frida。可以通过Python的pip包管理器安装:

2. 编写Frida脚本

创建一个JavaScript脚本,用于注入到目标进程中。在这个脚本里,你需要定义一些可以作为RPC方法的函数。例如:

3. 启动Frida并注入脚本

在宿主程序(如Python脚本)中,使用Frida来注入上面的JavaScript脚本到目标进程。例如:

4. 调用RPC方法

一旦脚本被注入并加载,你就可以在宿主程序中通过脚本对象调用RPC方法。例如:

5. 实现双向通信

如果需要,你的Frida脚本可以通过send函数发送消息到宿主程序,并在宿主程序中通过设置message事件处理函数来接收这些消息。

示例

这里是一个完整的示例,展示了如何在Python宿主程序中使用Frida RPC来调用注入脚本的函数。

JavaScript脚本(my_script.js)

Python宿主脚本

 

某app示例

注意事项
  • 目标进程:确保你有权限并能够定位到目标进程。
  • 调试:Frida脚本在运行时可能会遇到错误,确保你有办法调试这些脚本(例如通过console.log)。
  • 性能考虑:记住,注入代码和执行RPC方法可能会对目标应用的性能产生影响。
以上就是使用Frida RPC的基本步骤和考虑。实际应用中可能需要根据具体情况进行调整。
 

📎 参考文章

  • 一些引用
  • 引用文章
 
 
上一篇
root检测和绕过方案
下一篇
Frida反调试
Loading...