freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

r2frida:基于Frida的远程进程安全检测和通信工具
Alpha_h4ck 2024-06-14 12:19:18 158683

关于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/

https://www.frida.re/

# 通信安全 # Radare2 # Frida # Frida Hook # 进程安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1023 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录