radare2

C/C++ 2025-08-16

radare2 :UNIX极客的Libre倒转框架

当前的Git master分支为6.0.0 ,下一个版本将为6.0.2

  • 请参阅ABI稳定性文档。

描述

R2是重写的完整重写。它提供了一组库,工具和插件,以简化逆向工程任务。在LGPLV3下分发,尽管每个插件都可以具有不同的许可(有关详细信息,请参见r2 -Lj

Radare Project最初是一个简单的命令行十六进制编辑器,专注于取证。如今,R2是一种功能齐全的低级命令行工具,它支持使用嵌入式JavaScript解释器或通过R2Pipe进行脚本。

R2可以在本地硬盘驱动器,查看内核内存和通过远程GDB/WINDBG服务器上编辑文件。 R2的广泛体系结构支持使您可以分析,模拟,调试,修改和拆卸任何二进制文件。

安装

下载最后发布的二进制文件。

安装radare2的推荐方法来自GIT存储库来源:

radare2/sys/install.sh">
git clone https://g*ithub.**com/radareorg/radare2
radare2 /sys/install.sh
  • 为默认的ACR+Make+Symlink安装运行sys/install.sh
  • Meson/Ninja(Muon/Samu也有效),并支持制造构建。

来源构建

  • R2可以使用r2envgit或通过pip安装。
  • Windows Builds需要Meson和MSVC或Mingw作为编译器
  • 卸载当前R2运行的当前构建make uninstall
  • 卸载R2的所有系统安装: sudo make purge

在Windows上使用.bat脚本和MSVC:

preconfigure.bat       REM setup python, meson, ninja
configure.bat          REM run meson b + vs project
make.bat               REM run ninja -C b
prefix\bin\ radare2 .exe

流行插件:

使用r2pm工具,您可以浏览并安装使用radare2的许多插件和工具。

  • esilsolve:基于ESIL和Z3的符号执行插件
  • Iaito:官方QT图形接口
  • Keystone Assembler指令使用Keystone库
  • 基于AI的DECAI分解剂
  • R2AI在R2中使用Llama在Localhost中运行语言模型!
  • R2DEC:基于JS编写的R2的分解器,可使用pdd命令访问
  • R2DIAPHORA:diaphora的二进制扩散引擎在radare2上
  • R2Frida:Frida IO插件。使用r2 frida://0开始使用R2
  • R2GHIDRA:独立的本地Ghidra demompiler可与pdg访问
  • R4GHIDRA:感觉到吉德拉内的刺激
  • R2PAPI高级API在R2Pipe顶部
  • 来自任何编程语言的R2Pipe脚本radare2
  • R2POKE与GNU/POKE的集成,用于扩展二进制解析功能
  • Goresym:导入Goresym符号作为标志
  • R2yara从R2运行Yara或使用Yara的R2原语
  • RADIUS2:基于Boolater和Esil的快速符号执行引擎
  • R2SARIF导入/扩展/导出SARIF文档

用法

这些是使用R2的第一步,阅读本书或查找教程以获取更多详细信息

$ r2 /bin/ls   # open file in read-only
> aaa          # analyse the program (r2 -A)
> afl          # list all functions (try aflt, aflm)
> px 32        # print 32 byte hexdump current block
> s sym.main   # seek to main (using flag name)
> f~foo        # filter flags matching 'foo' (internal |grep)
> iS ; is        # list sections and symbols (rabin2 -Ss)
> pdf ; agf     # disassembly and ascii-art function graph
> oo+ ; w hello  # reopen in read-write and write a string
> ?* ~...       # interactive filter in all command help
> q            # quit

默认情况下,R2中包含许多插件。但是您可以使用R2PM软件包管理器扩展其功能。

r2pm -s < word >  # search packages matching a word
r2pm -Uci < pkg > # update database and clean install a package
r2pm -u < pkg >   # uninstall the given package
r2pm -l < pkg >   # list installed packages 

资源

  • 官方书:阅读有关R2使用的信息
  • 社区:社区参与和宽松指南
  • 贡献。md:有关报告问题和贡献的信息。另请参阅贡献
  • 开发人员.md:R2的开发指南
  • security.md:报告漏洞的说明
  • usage.md:一些示例命令
  • install.md:使用Make或Meson的安装说明

文档

了解有关R2观看R2Con的YouTube Talks的更多信息。也有许多博客文章,Slidecks和官方的radare2书,但是加入任何官方聊天并在此处放弃您的问题或反馈总是一个好主意。

社区

  • 网站:https://www.radare.org/
  • 不和谐:服务器
  • Mastodon:@radareorg
  • 电报:主频道和侧频道
  • #radare #radare_side
  • 矩阵: #radare:matrix.org

支持的平台

操作系统

Windows(XP(XP用于X86/X64/ARM64),Linux,Darwin,Gnu/Hurd,Apple's {Mac,I,i,iPad,Watch} OS,Android,Wasmer,Wasmer,[Draginfly,Net,Free,Free,open] BSD,Z/Z/Z/OS,QNX,QNX,Serenityos,Serenityos,Serenityos,solaris,solaris,aix,aix,haiku,haiku,vinix,firfox,firfox,firfox,firfox,firfox。

体系结构

I386,X86-64,Alpha,ARM,AVR,BPF,MIPS,POWERPC,SPARC,RISC-V,SH,SH,M68K,M68K,S390,XCORE,CR16,HPPA,HPPA,ARC,Blackfin,Z80,Z80,H8/300,H8/300,H8/300,V810,V810,V810,V810,V810,PDP11,M680X,v80x,v850,x80x,car,car,car,cars,car,car,car,car,cars,car,x. 8051,6502,I4004,I8080,螺旋桨,EVM,OR1K Tricore,Chip-8,LH5801,T8200,T8200,GameBoy,SNES,SNES,SNES,SPC700,MSP430,MSP430,Xcore,Xcore,Xcore,Xcore,Xcore,Xcore,Nios II,Nios II,Java,Java,Java,Dalvik,Dalvik,Dalvik,dalvik,dalvik,pickle,pickles,ebc54,ebc54,ebc 34 C55+,C64X),Hexagon,Brainfuck,Malbolge,Whitespace,DCPU16,Lanai,LM32,MCORE,MCS96,RSP,SUPSH-4,VAX,KVX,KVX,AM29000,AM29000,LOONGARCH,LOONGARCH,JDH8,JDH8,S390X,STM8。

文件格式

ELF, Mach-O, Fatmach-O, PE, PE+, MZ, COFF, XCOFF, OMF, TE, XBE, SEP64, BIOS/UEFI, Dyldcache, DEX, ART, Java class, Android boot image, Plan9 executables, Amiga HUNK, ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump), PDP11, XTAC,CGC,WASM(WebAssembly二进制),Commodore副仿真器,QNX,WAD,OFF,TIC-80,TIC-80,GB/GBA,NDS,NDS和N3DS,以及安装多个文件系统,例如NTFS,Fat,Fat,Fat,HFS+,Ext,Ext,...

包装状态

下载源码

通过命令行克隆项目:

git clone https://github.com/radareorg/radare2.git