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 | abspathLocal:* frida://?                        # 显示工具帮助信息和退出* frida://                         # 枚举本地进程* frida://0                        # 连接至frida-helper* frida:///usr/local/bin/rax2        # 生成进程的绝对路径* frida://rax2                     # 生成进程的相对路径local/bin需在PATH中设置* frida://spawn/$(program)         #在当前系统生成一个新的进程* frida://attach/(target)            # 在当前主机连接至目标PIDUSB:* 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设备中生成+恢复一个AppRemote:* frida://attach/remote/10.0.0.3:9999/558 # 连接远程frida-server的pid 558R2FRIDA_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.mzph.cn/bicheng/31010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好用的抖音短视频矩阵系统推荐:筷子剪辑,超级编导。抖去推

目前短视频矩阵行业如火如荼,为大家推荐几款比较好用的短视频矩阵系统。 第一款叫做筷子剪辑,由筷子科技开发,网页版应用工具,无需下载安装 主打视频剪辑,支持一键成片,视频发布等,&#xff0…

RS-232协议详解:深入理解与实际应用

RS-232协议详解 RS-232协议,也称为推荐标准232,是一种用于串行通信的标准协议。它在计算机和外围设备之间的通信中广泛应用。本文将详细介绍RS-232协议的各个方面,包括其历史、工作原理、信号类型、连接方式、应用场景等。希望通过这篇文章&a…

靠这套车载测试面试题系列成功哪些20k!

HFP测试内容与测试方法 2.3 接听来电:测试手机来电时,能否从车载蓝牙设备和手机侧正常接听】拒接、通话是否正常。 1、预置条件:待测手机与车载车载设备处于连接状态 2、测试步骤: 1)用辅助测试机拨打待测手机&…

24年计算机等级考试22个常见问题解答❗

24年9月计算机等级考试即将开始,整理了报名中容易遇到的22个问题,大家对照入座,避免遇到了不知道怎么办? 1、报名条件 2、报名入口 3、考生报名之后后悔了,不想考了,能否退费? 4、最多能够报多少…

计网课设-发送TCP数据包

一、效果展示 二、代码实现 import nmap import socket import tkinter as tk from tkinter import messagebox,Listbox from threading import Thread#获取自身IP,从而确定当前局域网范围 def get_ip_address():#创建了一个socket对象,socket.AF_INET表…

国际版多商户商城小程序源码(Android+IOS+H5)

一站式全球购物新体验 功能介绍 精准分类、我的团队、开通会员我的返利、我的订单、快速购买 邀请返利、购物车、我的提现 一、引言:为何选择国际版多商户商城小程序? 随着全球化的步伐不断加快,越来越多的人开始追求国际化的购物体验。国…

FreeBSD在zfs挂接第二块ssd 硬盘

为FreeBSD机器新增加了一块ssd硬盘:骑尘 256G 先格式化分区硬盘 进入bsdconfig 选Disk Management 选择ada1 ,也就是新增加的硬盘 选择auto 然后选择Entire Disk 提示信息 The existing partition scheme on this disk (MBR) │ …

代码随想录训练营Day 64|卡码网98. 所有可达路径(深搜)

1.所有可达路径 98. 所有可达路径 | 代码随想录 代码&#xff1a; &#xff08;深搜&#xff09;邻接矩阵表示 #include <iostream> #include <vector> using namespace std; vector<int> path; vector<vector<int>> result; void dfs(const ve…

小摩法兴纷纷转多,看涨港股的时机来了吗?

恒生指数今日高开一度上涨89点报18520点&#xff0c;创近两周高。之后持续震荡下行&#xff1b;恒指临近中 午跌幅扩大&#xff0c;恒生科技指数一度跌近1.5%。截止收盘&#xff0c;恒生指数跌0.52%&#xff0c;盘面上&#xff0c;石油、煤炭、环保、建筑节能等板块涨幅居前&a…

新手下白对Latex下手啦!

第一次使用latex&#xff0c;浅浅地记录一下子吧。 首先我们一般会下载一个latex模板&#xff0c;如果想知道咋下载&#xff0c;评论去告诉俺哟&#xff01; 新手小白首先要看懂结构&#xff0c;不然完全下不了手&#xff0c;本文就以IEEE的模板&#xff0c;从头往下讲咯~ 第…

OpenAI 推出“模型规范”:塑造责任制的人工智能的框架

为了提升人工智能开发的责任性和透明度&#xff0c;OpenAI 最近发布了一份名为“模型规范”的初步草案。这份文件首次明确了其 API 和 ChatGPT 模型行为的指导原则&#xff0c;并通过博客形式对外公布。 OpenAI 在博客中解释说&#xff1a;“我们之所以发布此文档&#xff0c;…

云渲染全攻略:平台精挑细选与技巧指南

在数字化浪潮中&#xff0c;创意产业的每一步进步都得益于技术革新。云渲染技术以其卓越的效率和灵活性&#xff0c;已成为推动影视、建筑、游戏等创意行业快速发展的关键力量。本文将为您提供一份详尽的云渲染指导手册&#xff0c;涵盖平台挑选策略和操作技巧&#xff0c;助您…

Centos7.9安装kerberos

文章目录 一、背景二、Kerberos安装部署2.1kerberos服务端必要软件安装2.2配置krb5.conf2.3配置kdc.conf2.4配置kadm5.acl2.5创建Kerberos数据库2.6启动Kerberos服务2.7创建Kerberos管理员principal2.8客户端安装kerberos2.9Kerberos功能验证 本人其他相关文章链接 一、背景 亲…

科普文章:怎么远程监控电脑屏幕?三种监控电脑屏幕的方法

远程监控公司电脑屏幕是一项重要的管理手段&#xff0c;它不仅有助于提升工作效率&#xff0c;还能确保公司信息安全和合规性。随着远程办公的普及&#xff0c;这一需求变得日益重要。下面我将详细介绍几种实现远程监控公司电脑屏幕的方法&#xff0c;以及实施过程中需要注意的…

线程池的简介

定义 线程池就是使用多线程的方式&#xff0c;将任务添加到队列中任务都是runnable或者callable的实现类 优点 线程和任务分离&#xff0c;任务可以复用线程池统一管理线程&#xff0c;线程可以复用避免因为开启和销毁线程造成的资源浪费 官方线程池的参数分析 深度理解 线程池…

JVM 相关知识整理

文章目录 前言JVM 相关知识整理1. 新生代和老年代2. 对象的分配过程3. Full GC /Major GC 触发条件4. 逃逸分析4.1.示例4.2. 使用逃逸分析&#xff0c;编译器可以对代码做如下优化 5. 对象的内存分配6. Minor GC 与 Major GC/Full GC的比较:7. 什么对象进入老年代7.1. 大对象直…

2024年金地杯山西省大学生数学建模竞赛B题D题论文代码分析

2024金地杯数学建模B题和金地杯数学建模D题32页论文和代码已完成&#xff0c;代码为B题D题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求…

【ARMv8/v9 GIC 系列 4.1 -- GIC CPU Interface 访问支持情况】

文章目录 GIC CPU Interface 访问支持Bit[27:24]: GIC CPU接口汇编代码实现访问小结 GIC CPU Interface 访问支持 在ARMv8架构中&#xff0c;ID_AA64PFR0_EL1是一个系统寄存器&#xff0c;提供了有关处理器功能的详绀信息。这个寄存器的位[27:24]专门用于描述GIC&#xff08;通…

Microsoft Edge浏览器安装crx拓展插件教程

1、首先打开edge浏览器&#xff0c;点击顶部地址栏。 2、在地址栏中输入"edge://flags/#extensions-on-edge-urls"并按下回车。2、在地址栏中输入"edge://flags/#extensions-on-edge-urls"并按下回车。 3、进入后&#xff0c;将图示选项改为“已禁用”。 …

微信小程序轮播图

效果图 详情可见 微信小程序 参照&#xff1a;swiper | uni-app官网 代码&#xff1a; <!--轮播图-- > <swiper interval"2000" autoplay"true" circular"true" style"height: 300px;"><swiper-item style&qu…