Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >r2frida:基于Frida的远程进程安全检测和通信工具

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

作者头像
FB客服
发布于 2024-06-25 01:27:56
发布于 2024-06-25 01:27:56
36100
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行
关于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、已在LinuxWindows、macOS、iOSAndroid的x64、arm32和arm64上测试; 17、不需要在主机中安装Frida; 18、支持使用代理运行的插件扩展r2frida命令; 19、...

工具安装

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ r2pm -ci r2frida

除此之外,我们也可以访问该项目的【https://github.com/nowsecure/r2frida/releases】下载最新版本的预编译r2frida。

工具编译

依赖

radare2 pkg-config(Windows不需要) curl or wget make, gcc npm, nodejs(即将去除)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git

命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone https://github.com/nowsecure/r2frida.git$ cd r2frida$ make$ make user-install

工具使用

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ 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代理文件路径

使用样例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ r2 frida://0     # 与frida -p 0相同,连接至一个本地会话

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ r2 frida://rax2   # 连接至第一个名为rax2的进程

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ r2 frida:///bin/ls

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

添加其他参数运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ r2 frida://"/bin/ls -al"

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ r2 frida://spawn/usb/         # 枚举设备

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

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

命令解析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:i         # 获取目标详情

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

:?         # 显示所有可用命令

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

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

:dt fread   # 跟踪'fread'函数

:dt-*      # 删除所有跟踪

许可证协议

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

项目地址

r2frida:

https://github.com/nowsecure/r2frida

https://www.radare.org/ https://www.frida.re/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
简单实践Radare2
但现在我们还是看不到代码,还是命令行,我们可以用v切换为显示模式,代表visual mode,有英文详细名词好记
用户1423082
2024/12/31
1420
简单实践Radare2
利用frida与ida实战脱壳360加固
1、最近一直在搞工控设备方面的漏洞挖掘,其中遇到一个应用程序进行渗透时遇到请求参数被加密或者签名的情况, 在请求数据被修改后提示异常, 导致无法有效地进行漏洞挖掘,因此把最近关于脱壳的方法做个记录,逆向反编译应用进行查看
Power7089
2020/07/27
3.1K0
利用frida与ida实战脱壳360加固
Android动态调试(1)
为什么不用IDA,因为贵。 为什么不用gdb,因为lldb的出现,取代gdb只是迟早的事情,可以说gdb是Depracated。
无情剑客
2020/12/10
1.4K0
RADARE2+FRIDA=R2FRIDA Best Dynamic Debugging Tool (Weibo Crack)
然后用frida-ls-devices工具获取 usb device id ;接着用frida-ps -U | grep xhs获取完整包名
吾爱小白
2020/07/07
1.8K0
实用FRIDA进阶:脱壳、自动化、高频问题
前面我们聊到了Frida在内存漫游、hook anywhere、抓包等场景中地用法,今天我们聊Frida在脱壳、自动化的用法以及经常被问到的高频问题。
bosh123
2021/01/23
4.6K0
【APP 逆向百例】Frida 初体验,root 检测与加密字符串定位
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
K哥爬虫
2023/01/12
1.9K0
【APP 逆向百例】Frida 初体验,root 检测与加密字符串定位
radare2逆向笔记
最近刚开始学习逆向(Reverse Engineering), 发现其学习曲线也是挺陡峭的, 而网上的 许多writeup文章主旨总结就六个字:“你们看我屌吗?” …几近炫技而对初学者不太友好. 所以
evilpan
2023/02/12
7600
搭建frida+木木模拟器运行环境
直接去官网下载. http://mumu.163.com/ 此过程省略… 下载后首先:
李玺
2021/11/22
1.1K0
搭建frida+木木模拟器运行环境
移动安全渗透测试清单 2022
多合一移动安全框架的移动安全渗透测试列表,包括 Android 和 iOS 应用程序渗透测试。
信安之路
2022/10/04
2.5K0
Radare2静态分析apk
在Radare2静态分析apk(1) 对Radare静态分析apk进行了简单的介绍。 补充一下: 通过r2 apk://URI可以直接对apk中的dex进行分析。
无情剑客
2020/12/01
1K0
Frida Internal - Part 2: 核心组件 frida-core
前文已经介绍了 frida 中的核心组件 frida-gum 以及对应的 js 接口 gum-js,但仅有这些基础功能并不能让 frida 成为如此受欢迎的 Instrumentation (hook) 框架。为了实现一个完善框架或者说工具,需要实现许多系统层的功能。比如进程注入、进程间通信、会话管理、脚本生命周期管理等功能,屏蔽部分底层的实现细节并给最终用户提供开箱即用的操作接口。而这一切的实现都在 frida-core 之中,正如名字所言,这其中包含了 frida 相关的大部分关键模块和组件,比如 frida-server、frida-gadget、frida-agent、frida-helper、frida-inject 以及之间的互相通信底座。本文主要节选其中关键的部分进行分析和介绍。
evilpan
2023/02/12
2.9K0
逆向分析“海莲花” APT木马的花指令反混淆工具
本文中,CheckPoint研究人员基于对“海莲花” 木马程序的分析,编写了一段绕过其混淆技术的反混淆工具-APT32GraphDeobfuscator.py,在逆向分析过程中,利用该工具,最终可以消除混淆指令,清晰地显示出“海莲花” 木马的运行调用流程,对木马分析和相关安全研究人员有借鉴帮助之用。
FB客服
2019/05/17
1.6K0
逆向分析“海莲花” APT木马的花指令反混淆工具
安卓Frida Hook基础
设置环境变量WORKON_HOME为下面自己建立好的路径,当然默认也可以不设置,默认在用户目录下
用户1423082
2024/12/31
2560
安卓Frida Hook基础
安卓Frida Hook进阶
frida关于nativefunction的文档:https://frida.re/docs/javascript-api/#nativefunction
用户1423082
2024/12/31
3150
安卓Frida Hook进阶
安卓Frida Hook之objection
Objection 是一种用于移动应用安全测试和逆向工程的开源工具,特别是针对 Android 应用程序。它提供了一套强大的功能和命令行工具,帮助安全研究人员、渗透测试人员和开发人员分析和评估移动应用的安全性。
用户1423082
2024/12/31
4330
安卓Frida Hook之objection
ios逆向之frida安装与使用
frida tools主要有Frida CLI、frida-ps、frida-trace、frida-discover、frida-ls-devices、frida-kill等命令工具
qife122
2022/05/19
5.2K0
ios逆向之frida安装与使用
frida学习笔记
因为想学习怎么hook安卓程序,网上搜了一些资料,有xposed和frida两种。 xposed不便于调试,frida方便调试。所以先从学习frida入手。 以下过程是本菜鸡参考网络教程实践的坎坷路程,记录下来以备以后自己重复时参考。
用户2135432
2023/10/21
1.1K0
frida学习笔记
如何在iOS应用程序中用Frida来绕过“越狱检测”?
本文我将为大家展示,如何在iOS应用程序中使用Frida来绕过越狱检测。在正式开始之前,让我们先来简单了解下本文的具体流程。 以下是本文将要介绍的内容: Frida框架介绍 Frida在iOS上的设置 将Frida连接到一个iOS进程 dump类和方法信息 使用Frida进行iOS应用程序的运行时操作 总结 Frida介绍 Frida是一款基于python + javascript 的hook与调试框架。它允许你将 JavaScript 的部分代码或者你自己的库注入到 windows、macos、
FB客服
2018/02/24
2.8K0
如何在iOS应用程序中用Frida来绕过“越狱检测”?
精品连载丨安卓 App 逆向课程之二逆向神器 frida 的介绍
前阵子受《Xposed模块编写的那些事》[1]这篇文章的帮助很大,感觉有必要写一篇文章。现在最火爆的又是frida,该框架从Java层hook到Native层hook无所不能,虽然持久化还是要依靠Xposed和hookzz等开发框架,但是frida的动态和灵活对逆向以及自动化逆向的帮助非常巨大。
崔庆才
2020/06/17
2.9K0
精品连载丨安卓 App 逆向课程之二逆向神器 frida 的介绍
系统app调试以及jdb调试
Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
无情剑客
2021/01/23
2.8K0
相关推荐
简单实践Radare2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档