r2frida:基于Frida的远程进程安全检测和通信工具

关于r2frida

r2frida是一款能够将Radare2和Frida的功能合二为一的强大工具,该工具本质上是一个Radare2的自包含插件,可以帮助广大研究人员利用Frida的功能实现对目标进程的远程安全检测和通信管理。

Radare2项目提供了针对逆向工程分析的完整工具链,功能也比较稳定,而且还支持利用其他编程语言和工具来扩展其功能。而Frida则是一个动态指令工具包,可以通过注入JavaScript代码来对正在运行的目标进程执行检测和操作,而且还可以与脚本进行通信。

功能介绍

1、运行未修改的Frida脚本(使用:.命令);

2、在任意进程中执行C、JavaScript或TypeScript代码段;

3、支持在本地或远程系统连接、生成或启动进程;

4、枚举内存区域富豪、导出、协议、类和方法;

5、在代理内部或主机的内存中搜索值;

6、使用短命令替换方法实现或创建钩子;

7、在目标进程中加载库或框架;

8、支持Dalvik、Java、ObjC、Swift和C接口;

9、操作文件描述符和环境变量;

10、向进程和断点发送信号;

11、读/写进程内存;

12、调用函数、系统调用和原始代码段;

13、通过USB或TCP/IP连接Frida服务器;

14、枚举应用程序和进程;

15、跟踪寄存器、参数和函数;

16、已在Linux、Windows、macOS、iOS和Android的x64、arm32和arm64上测试;

17、不需要在主机中安装Frida;

18、支持使用代理运行的插件扩展r2frida命令;

19、...

工具安装

广大研究人员可以直接通过r2pm安装r2frida:

$ r2pm -ci r2frida

除此之外,我们也可以访问该项目的【Releases页面】下载最新版本的预编译r2frida。

工具编译

依赖

radare2

pkg-config(Windows不需要)

curl or wget

make, gcc

npm, nodejs(即将去除)

在GNU/Debian中,我们可以使用下列命令安装工具所需依赖组件:

$ sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git

命令

$ git clone https://github.com/nowsecure/r2frida.git

$ cd r2frida

$ make

$ make user-install

工具使用

为了方便测试,这里使用“r2 frida://0”在Frida中连接到pid0,并且在本地运行。

现在,我们可以运行“:?”命令来获取可用的命令列表:

$ r2 'frida://?'

r2 frida://[action]/[link]/[device]/[target]

* action = list | apps | attach | spawn | launch

* link   = local | usb | remote host:port

* device = '' | host:port | device-id

* target = pid | appname | process-name | program-in-path | abspath

Local:

* frida://?                        # 显示工具帮助信息和退出

* frida://                         # 枚举本地进程

* frida://0                        # 连接至frida-helper

* frida:///usr/local/bin/rax2        # 生成进程的绝对路径

* frida://rax2                     # 生成进程的相对路径local/bin需在PATH中设置

* frida://spawn/$(program)         #在当前系统生成一个新的进程

* frida://attach/(target)            # 在当前主机连接至目标PID

USB:

* frida://list/usb//                # 枚举第一个USB设备的进程

* frida://apps/usb//               # 枚举第一个USB设备的应用程序

* frida://attach/usb//12345        # 连接至第一个USB设备的给定pid

* frida://spawn/usb//appname       # 在第一个USB设备中生成一个App

* frida://launch/usb//appname      # 在第一个USB设备中生成+恢复一个App

Remote:

* frida://attach/remote/10.0.0.3:9999/558 # 连接远程frida-server的pid 558

  R2FRIDA_SAFE_IO=0|1              # 解决Android/thumb上的Frida问题

  R2FRIDA_DEBUG=0|1               # 用于调试参数解析行为

  R2FRIDA_COMPILER_DISABLE=0|1  # 禁用新的Frida TypeScript编译器(`:. foo.ts`)

  R2FRIDA_AGENT_SCRIPT=[file]      # r2frida代理文件路径

使用样例

$ r2 frida://0     # 与frida -p 0相同,连接至一个本地会话

我们可以通过进程名称或pid连接、生成或启动任意进程,下列命令将连接到第一个名为rax2的进程:

$ r2 frida://rax2   # 连接至第一个名为rax2的进程

$ r2 frida://1234  # 连接至指定pid

使用源码的绝对路径将生成一个进程:

$ r2 frida:///bin/ls

[0x00000000]> :dc        # 目标应用程序继续执行

添加其他参数运行:

$ r2 frida://"/bin/ls -al"

下列命令可以使用USB调试iOS/Android应用程序:

$ r2 frida://spawn/usb/         # 枚举设备

$ r2 frida://spawn/usb//        # 枚举iOS设备中的应用程序

$ r2 frida://spawn/usb//Weather # 运行Weather天气App

命令解析

:i         # 获取目标详情

.:i*        # 将目标进程详情导入至local r2

:?         # 显示所有可用命令

:dm       # 枚举映射,使用':dm|head'搜索程序基地址

:iE        # 枚举当前二进制的导出

:dt fread   # 跟踪'fread'函数

:dt-*      # 删除所有跟踪

许可证协议

本项目的开发与发布遵循MIT开源许可协议。

项目地址

r2frida:【GitHub传送门】

参考资料

https://www.radare.org/

Frida • A world-class dynamic instrumentation toolkit | Observe and reprogram running programs on Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD, and QNX

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/726827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Shell编程学习路线]——for循环应用技巧 语法和案例

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月20日16点21分 🀄️文章质量:96分 目录 ————前言———— for 循环语句 基本结构 图示原理…

设计程序,实现高精度圆周率的计算和存储,使用线性表突破程序设计语言内置变量的数值和有效数字范围限制

一、使用线性表突破程序设计语言内置变量的数值和有效数字范围的限制,为了实现高精度圆周率的计算,先根据数学公式进行对PI高精度运算,如图1-1。根据这个数学公式 π2 0nn!2n1‼ 即 Rn1Rn*n2n1,R11,sum π2* n1∞Rn 来…

02 Pytorch_NLP

1. N-gram n决定关联信息 2. TF____IDF TF:词频 IDF:逆向序列 假如:TF * IDF 就是当前的文件,那么乘积反而更大! 因为它只出现在 特定的文章中! TF-IDF 简介 TF-IDF(Term Frequency-Inverse…

Ansys Mechanical|学习方法

Ansys Mechanical是Ansys的旗舰产品之一,涉及的学科体系全面丰富,包括的力学分支主要有理论力学,振动理论,连续介质力学,固态力学,物理力学,爆炸力学及应用力学等。 在自媒体及数字经济飞速发展…

【CSS in Depth2精译】1.2 继承~1.3 特殊值

文章目录 1.2 继承1.3 特殊值1.3.1 inherit 关键字1.3.2 initial 关键字1.3.3 unset 关键字1.3.4 revert 关键字 1.2 继承 除了层叠,还有一种给元素设置样式的方式:继承。经常有人把层叠与继承的概念弄混淆。它们虽然有关联,但也应该分辨清楚…

react实现窗口悬浮框,可拖拽、折叠、滚动

1、效果如下 2、如下两个文件不需要修改 drag.js import React from "react"; import PropTypes from "prop-types";export default class DragM extends React.Component {static propTypes {children: PropTypes.element.isRequired};static defaultP…

什么是片上端接校准(On Die Termination Calibration)技术?

On Die Termination Calibration 随着对于数字系统性能要求的不断提高,对信号完整性的要求也越来越高,从而能够在更高的速率下可靠运行。信号线端接是信号完整性管理中的有用元件,可以在memory外部或memory内部使用。在DRAM器件中加入电阻端接…

ChatmoneyAI如狂风般席卷广告创意舞台,轻松闯荡财富之海!

本文由 ChatMoney团队出品 引言 在广告创意行业,创新和高效是赢得市场的关键。而我今天要分享的就是如何利用ChatmoneyAI这款强大的人工智能工具,打破创新难题,赚取丰厚收益。 让我告诉你一个小秘密,有客户曾在一个月内&#xf…

React Native性能优化红宝书

一、React Native介绍 React Native 是Facebook在React.js Conf2015 推出的开源框架,使用React和应用平台的原生功能来构建 Android 和 iOS 应用。通过 React Native,可以使用 JavaScript 来访问移动平台的 API,使用 React 组件来描述 UI 的…

MATLAB直方图有关的函数

histogram Histogram plot画直方图 histcounts 直方图 bin 计数 histcounts是histogram的主要计算函数。 discretize 将数据划分为 bin 或类别 histogram2 画二元直方图 histcounts2 二元直方图 bin 计数 hist和histc过时了。替换不建议使用的 hist 和 histc 实例 hist → \r…

202483读书笔记|《把你写进诗歌里》——人生是一场不知何时散场的约会,爱慕向来短暂,失去才是唯一出路

202483读书笔记|《把你写进诗歌里》——人生是一场不知何时散场的约会,爱慕向来短暂,失去才是唯一出路 摘录 《把你写进诗歌里(2020年度中国优秀诗歌)》,作者上官文露。并不惊艳,中英文双语对照的一本诗集&…

压缩pdf文件大小在线,在线免费压缩pdf

在现在办公中,PDF文档已经成为我们日常工作中不可或缺的一部分。然而,随着文档内容的不断丰富,PDF文件的大小也逐渐增大,这不仅占用了大量的存储空间,而且在传输和共享时也显得尤为不便。所以有时候我们需要把pdf压缩小…

connect-caption-and-trace——用于共同建模图像、文本和人类凝视轨迹预测

介绍 论文地址:https://arxiv.org/abs/2105.05964 源码地址:https://github.com/facebookresearch/connect-caption-and-trace 在过去,计算机视觉和自然语言处理领域的模型和算法的发展只有偶尔的重叠,但近年来,这两…

AI音乐大模型:是创意的助力还是产业的挑战?

近期音乐界迎来了一场前所未有的革命。随着多家科技公司纷纷推出音乐大模型,素人生产音乐的门槛被前所未有地拉低,一个崭新的“全民音乐时代”似乎已近在眼前。然而,在这场技术革新的浪潮中,关于AI产品版权归属、创意产业如何在AI…

服务器无法远程桌面连接,解决服务器进行无法远程桌面连接方法有哪些

当服务器无法建立远程桌面连接时,通常涉及多个层面的排查和修复。下面将详细列举一些专业的解决方法,以应对服务器远程桌面连接问题。 一、基础排查与验证 1. 确认网络连通性: - 使用ping命令检查客户端与服务器之间的网络连通性。 - …

数据结构之B数

目录 1.概述 2.特点 3.诞生 4.优缺点 4.1.优点 4.2.缺点 5.应用场景 6.C语言中的B树实现例子 7.总结 1.概述 B树(B-tree)是一种自平衡的树数据结构,广泛应用于数据库和文件系统中,以便高效地进行顺序读取、写入以及查找…

Cytoscape之操作界面介绍

Cytoscape 简介 Cytoscape是一个专注于开源网络可视化和分析的软件。软件的核心部分提供了网络显示、布局、查询等方面的基本功能。软件的核心可以通过插件架构进行扩展,这样就能快速地开发出新的功能。 Cytoscape 源自系统生物学,用于将生物分子交互网…

win10成功安装stable-diffusion-webui

目录 1.python下载安装 2.git下载安装 3.stable-diffusion-webui下载 4.安装s-d-webui的依赖包(用国内镜像提速) 5.git下载的stable-diffusion-webui,依赖包提示已安装,但运行webui-user.bat后,又开始下载 6.修改…

2024最新AI大模型-LLm八股合集(八)-Transformer模型

更多2024最新AI大模型-LLm八股合集可以拉到文末!!! MHA & MQA & MGA (1)MHA 从多头注意力的结构图中,貌似这个所谓的多个头就是指多组线性变换层,其实并不是,只有使用了一…

ARM Linux 设备树详细介绍(1)

1. ARM&Device&Tree 起源 Linus Torvalds 在 2011 年 3 月 17 日的 ARM Linux 邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发 ARM Linux 社区的地震,随后 ARM 社区进行了一系列 的重大修正。 在过去的 ARM Linux 中&…