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

admin 2024年6月20日22:05:53评论40 views字数 2607阅读8分41秒阅读模式
r2frida:基于Frida的远程进程安全检测和通信工具
关于r2frida

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

r2frida:基于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
除此之外,我们也可以访问该项目的【https://github.com/nowsecure/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]/
/[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 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= # 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:
https://github.com/nowsecure/r2frida

原文始发于微信公众号(FreeBuf):r2frida:基于Frida的远程进程安全检测和通信工具

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月20日22:05:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   r2frida:基于Frida的远程进程安全检测和通信工具https://cn-sec.com/archives/2868169.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息