Windows 构建需 meson 加 msvc 或 mingw 编译器;反编译器、r2frida 等能力需通过 r2pm 单独安装插件;卸载全部系统安装需 sudo make purge。

radare2
radareorg活跃维护类 UNIX 的逆向工程框架和命令行工具集,用于反汇编、二进制分析与恶意软件取证,支持脚本化操作。
UNIX-like reverse engineering framework and command-line toolset
git clone https://github.com/radareorg/radare2
radare2/sys/install.shREADME 未说明硬件要求;支持 Windows(XP 起 x86/x64/arm64)、Linux、macOS、Android、BSD 等多种操作系统,未提及 GPU 或显存。
面向 Unix 工程师的开源逆向工程框架,用命令行分析、反汇编和调试任意架构的二进制
类 UNIX 的逆向工程框架和命令行工具集,用于反汇编、二进制分析与恶意软件取证,支持脚本化操作。
核心能力
- 提供库、工具与插件一体的逆向工程工具集
- 支持本地或远程 gdb/windbg 调试程序
- 可查看内核内存并读写编辑本地文件
- 内嵌 Javascript 解释器并支持 r2pipe 脚本化
- 用 r2pm 包管理器浏览安装插件与工具
容易踩的坑
- 6.2.6最新正式版2026-11-05 · 2026-11-05 18:32 UTC
Release Notes
Codename: "fcn.do" Version: 6.2.6 Previous: 6.2.4 AbiDiff: 152-174 (22) Commits: 1237 Contributors: 43
curl -Ls https://github.com/radareorg/radare2/releases/download/6.2.6/radare2-6.2.6.tar.xz | tar xJv radare2-6.2.6/sys/install.shHighlights
Authors
Aaron Thomas Adam - Zyph. Tech. Ali Ahmet Memiş Andrei Bacescu Andrei Bacescu Angelo Ayton Bhavay Goyal Francesco Tamagni Huzaifa Iftikhar HuzaifaChaudary Jay Hemnani Kayyo321 Kirby Kuehl Kisnner Obando Kushagra Mar Marcel Alexandru Nitan Matt Fulghum Mluo2011 Mohammed Hassan Nathan Chandrasekar Noah1 Ole André Vadla Ravnås Priyanshu Kumar SAIREX Yashvardhan Thanvi aeonframework arxhr007 astralia bdunahu condret dependabot[bot] h4ck-u jayhemnani9910 kaii-k mfulghum pancake pancake pancake phix33 potato qiyuhuating 祈雨
Changes
abi
- Completely eliminate CbPrintf from RBin
anal
- Look up bin symbols at rebased addresses by their file vaddr
- Don't give C main and C++ helpers Swift self/error args
- Count stack frames of 8 KiB or more in aat
- Keep array declarators whole in c2 function args
- Fix slow analysis of wasm and pyc functions declaring huge argument counts
- Remember DWARF location list picks and bound .debug_loclists reads per load
- Cap DWARF multidimensional DWARF types to stop blowing up the memory usage
- Drop cons+core dependency from rtti_itanium recover_all
- Cap Itanium VMI base classes at 64 and make avrr interruptible
- Walk DWARF children through a per-unit sibling table to stop quadratic time on nested DIEs
- Bound JNI method table scanning and cap Java descriptors at 255 argument slots
- Fix #14078 - Mask AVR jump targets with the flash byte-address width
- Shrink fcn/bb structs and cache block order
- Bound and trim gopclntab names to reduce memory usage
- Use RVec (instead of RList) for RAnalFunction->bbs
- Add types.maxtrace to bound the type propagation trace per function
- Use sanitized names for the class rename lookups and keys
- Skip unmapped gaps to fix DoS in aav/V
- Compare sanitized base names when deduplicating class bases
- Keep three-operand esil ops in the aeg dataflow graph
- Walk MIPS del
- 6.2.42026-10-05 · 2026-10-05 19:52 UTC
查看更新说明
Release Notes
Codename: "The Magnetician" Version: 6.2.4 Previous: 6.2.2 AbiDiff: 142-152 (10) Commits: 453 Contributors: 18
curl -Ls https://github.com/radareorg/radare2/releases/download/6.2.4/radare2-6.2.4.tar.xz | tar xJv radare2-6.2.4/sys/install.shHighlights
Authors
Abhi Angelo Ayton Ch1p Jon Palmisciano Mustafa Senoglu Priyanshu Kumar Suyun curoky dependabot[bot] kisnner mmustafasenoglu pancake pancake pancake phix33 potato sid xXAbieGamingXx
Changes
abi
- Eliminate the CbPrintf calls from RDebug
- Eliminate CbPrintf from RAnal
- Use RVec in RFlag
anal
- Avoid repeated CFG walks when chopping noreturn blocks
- Keep landing pads when chopping at a noreturn call
- Restore the stack depth when sp is set from bp
- Cache decoded ops to speedup backtracking type matching
- Stop function walks at symbols hidden behind class flags
- Run aae with just VAL, no more OPEX hacks
- Cache clobbered regs from dyncc profiles (20% faster)
- Cache calling convention lookups
- Take a split block's entry depth from the function walk
- Track stack frames larger than 8 KiB
- Add golang cc
- Default Swift binaries to the swift calling convention
- Fix the arm32 swift cc self, error and argument registers
- Keep swift self and error names through type propagation
- Fix opcode mask bit order and invalidating bits
- Analyze and emulate A64 consistent conditional branches
- Add A-key pointer authentication function preludes
- Don't register partial xrefs with aae
- Silence the noisy aae hints
- Fix microMIPS invalid instruction recovery in both backends
- Fix #21246 - Keep microMIPS instruction boundaries in
pdf - Fix #13850 - Recover stack strings passed to char pointer arguments
- Fix stack array indices across stack adjustments
- Read swift self and error roles from the linkage name
- Give the swift cc the platform clobber and preserve sets
- Rewind stack types with the bytes on a bbstate restore
- Rewind the stack with the registers on a bbstate restore
- Optimize trycatch analysis using binary metadata
- Resolve ARM64 stub island branches with a:sixi
- Use the active ARM configuration for pointer scans
- Restore incremental analysis after writes
- Fix Thumb ESIL scan alignment after skipped instructions
- Cache calling-convention argument locations per function
- Invalidate cached function ref counts with an xref generation counter
- Keep the other xrefs of an address when deleting one it does not have
- Recover small register arguments from shared operand metadata
- Share stack variable recovery and x86 access construction
- Fix #26760 - Refresh inferred x86-16 arguments
- Fix typed frame recovery and preserve renamed prototypes
- Preserve function prototypes during variable recovery
- Add fpret register names in callconvs
- Refer an arm64 load through the last adrp to the slot it reads
- Fix ARCompact branch conditions and immediate decoding
- Fix arm64 DWARF variable locations against sp and x29
- Resolve fcncc when assigned
- Fix arg class homing for spills, scanf and aliases
- Home each arg on the next free register of its class
- Resume switch tables from the walk instead of recursing into the
- 6.2.22026-09-06 · 2026-09-06 17:32 UTC
查看更新说明
Release Notes
Codename: "infandmore" Version: 6.2.2 Previous: 6.2.0 AbiDiff: 132-142 (10) Commits: 388 Contributors: 22
curl -Ls https://github.com/radareorg/radare2/releases/download/6.2.2/radare2-6.2.2.tar.xz | tar xJv radare2-6.2.2/sys/install.shHighlights
Authors
0xf00sec AGhebrea Aayush Khanna Angelo Ayton Bernhard M. Wiedemann Claude Jinbao Chen Kirby Kuehl Kleopatra Poritsi Mohammed Hassan Priyanshu Kumar Ruffalo Lavoisier Vaibhav Srivastava Vectrain51 mmustafasenoglu pancake pancake pancake phix33 phix33 potato root
Changes
abi
- Make RIOBind reads return byte counts
- Deprecate r_bin_is_static as requested by R2_590
anal
- Dont recover fp vars in frame-less functions
- Fix switch ownership when analyzing overlapping blocks
- Add arm64 swift convention for fpu args
- Rename default register arguments once when recovery ends
- Handle subregister arguments on x64
- Fix wrong variadic detection when eax is written before testing al
- Fix calling convention for arm64/swift fpargs
- Refresh VARTYPE metadata after variable renames
- Dont reuse fp args after calls
- Simplify floating-point argument recovery
- Add dyncc floating-point argument registers
- Memoize cc arg counts and skip fp walk on integer ops
- Recover float args from a separate fparg register sequence
- Fix readAhead UB in the function analysis loop
- Remove duplicate counted read bookkeeping
- Fix partial reads in analysis consumers
- Fix jump tables truncated by short reads
- Stop walking pc-relative indirect jumps as jump tables
- Analyze disconnected exception handler blocks
- Fix RAnalOp leaks in the disasm, diff and debugger decode loops
- Fix aeg folding ops without a dfg handler into constants
- Fix the memory leak and quadratic cost of aoj with many opcodes
- Fix dfg esil for goto and cmps
- Fix JSON disassembly architecture hints
- Use function call conventions for afsj arguments
- Fix fp local variable and arm32 reg tracking
- Resolve typed JNI table calls in analysis
- Typed JNI interface tables and indirection
- Materialize typed JNI native methods during analysis
- Add the new jni analysis plugin
- Stop afb and afbi from deleting switch cases that share a target
- Drop a stale arg from the float-formal expectation
- Separate a formal's ABI position from its sdb index
- Place formal parameters that DWARF leaves without a location
- Quiet aavrq to reduce noise in
aaa - Expose more switch details in the json output
- Forward register args through direct tail jumps like calls
- Match forwarded callee args by register instead of argnum
- Include the switch default target in block successor iteration
- Dont treat the returned int as a variadic marker
- Preserve registered types when linking DWARF prototypes
- Link DWARF types only when prototypes match
- Name local plt stubs in x86 retpoline layouts
- Free all flag metadata strings
- Name local plt stubs from their got relocs in aa
- Split the type propagation plugin into libr/anal/p/tp
- Warn fo
- 6.2.02026-08-07 · 2026-08-07 18:27 UTC
查看更新说明
Release Notes
Codename: "Febrer Deams" Version: 6.2.0 Previous: 6.1.8 AbiDiff: 110-132 (22) Commits: 503 Contributors: 25
curl -Ls https://github.com/radareorg/radare2/releases/download/6.2.0/radare2-6.2.0.tar.xz | tar xJv radare2-6.2.0/sys/install.shHighlights
Authors
AGhebrea Abhi Anton Bolshakov Claude Evgeny Kolmakov Hissssst MiKi Mohammed Hassan Mohammed Hassan OrbisAI Security ProMix Ricardo J. Rodríguez ada-l0velace arhwx dependabot[bot] gogolovefish neil nnguyen609 pancake pancake pancake phix33 phix33 potato ryawa
Changes
abi
- Pahole more structs to drop gaps and reduce struct size
- Make RCons authoritative for command help rendering
- Unify the struct and union member model into RAnalTypeMember
- Use BE bool flag (instead of int le) for utf16->utf8
anal
- Don't treat register moves as argument uses in rarg extraction
- Warn the user analyzing non-executable maps
- Use the target word size for pointer types in the anal type api
- Select the MIPS calling convention from the ELF o32/n32 abi
- Keep the function frame size in second passes
- Honor anal.vars.newstack in the esil analysis
- Stop treating ARM stack restores as arguments
- Resolve emu call arguments through the calling convention layer
- Restore bb regstate for the type propagation
- Test nested struct field typing from arm64 return value stores
- Add the ppc64 ELFv2 calling convention and select it from the ELF ABI
- Fix powerpc calling conventions
- Make the afvs stack delta frame relative like afvb
- Keep pointer dereference count in callee argument
- Name the stack canary from a register write index instead of trace position
- Fix cc stack arg slot offsets and bound the argslot scans
- Fix the double return-address skip in the callargs stack walk
- Add r_anal_cc_argslot and argval APIs resolving stack arg slots
- Meet conflicting pointer facts at void pointer regardless of rank and float conflicts at double
- Unify type ranking, memoize block reachability and make the parallel type meet order independent
- Merge conflicting type facts from parallel paths with an explicit lattice
- Keep fail-only fallthrough edges in the function graph
- Fix arm64 =SN syscall register alias to follow asm.os
- Use stateful decoding in the /r, aea and aespc linear sweeps
- Follow deref chains when typing struct fields from return values
- Fix UCALL bitmask misuse in aaft that skipped return-value stores
- Unify struct and union field picking and simplify the const retype in aaft
- Propagate callee types into struct and union fields during aaft behind types.fields
- Add anal.gpseed to seed a PIC base register during ESIL analysis
- Use r_anal_block_successor_addrs_foreach to build the function graph
- Add asm.cmt.reguse comments
- Expose dyncc register role APIs
- Add reguse analysis hints
- Synthesize struct types from pointer-argument acce
- 6.1.82026-06-23 · 2026-06-23 12:51 UTC
查看更新说明
Release Notes
Codename: "Exploit Twist" Version: 6.1.8 Previous: 6.1.6 AbiDiff: 107-110 (3) Commits: 236 Contributors: 18
curl -Ls https://github.com/radareorg/radare2/releases/download/6.1.8/radare2-6.1.8.tar.xz | tar xJv radare2-6.1.8/sys/install.shHighlights
Authors
Abhi Evgeny Kolmakov Jon Palmisciano Kevin Stubbings Lazar Aleksic Luisss003 Nitan Alexandru Marcel Ole André Vadla Ravnås ada-l0velace bdunahu dependabot[bot] pancake pancake pancake phix33 phix33 potato randomjack94dev
Changes
abi
- The sdb_remove has been deprecated as dupe for sdb_unset
analysis
- Keep duplicate single-instruction import trampolines distinct on name collision
- Autoname import call stubs after the imported function
- Don't create string metadata at addresses inside analysed functions
- Add pebble script for stub scans
- Optimize SDB key renames in analysis metadata
- Ship the syscall tables for PebbleOS
- Render array stack var element accesses as name[i] in disasm
- Shadow phantom stack vars overlaid by an array-typed variable's extent
- Optimize a:six and add more tests for it
- Fix afv mislabeling DWARF register locals as args by honoring isarg
- Fix PPC bctrl losing CALL type under capstone6 via BCCTR/BCCTRL alias ids
arch
- Harden PPC64 TOC tracking by invalidating toc_map on register clobber, call and return
- Invalidate the PPC TOC register cache on function return
- Validate asm.cpu against plugin CPU list
- Default cpu for avr is now ATxmega128a4u
- Fix PIC disassembler on big endian hosts
- More ARM big endian fixes
- Update capstone v5/next, bigendian, m68k and x64 fixes
asm
- Apply the pseudo filter only once in rasm2 and pad
bin
- Fix obf reload stacking duplicate bin objects and io maps
- Autoresolve anal.gp for ppc32 via small-data
- Handle as cyclic memory the raw string map address wraparounds
- Honor paddr in raw strings
- Fix raw string rebasing for non-VA sections
- Fix #10722 - Respect mapaddr on raw strings
- Optimize dyldcache local symbol matching
- Fix #26079 - Local symbols missing in dyldcache
- In ftab/gns1 use segment tags for proper archinfo
- Harden GNS1 loader
- Add FTAB extractor plugin
- Improve GNS1 detection to solve dyldcache false positives
- Require spaced arguments for iz+
- Fix dyldcache local symbol offset matching
- Add
R_DYLDCACHE_NO_DEPSoption for shallow filtering - Auto-resolve PPC64 TOC base (anal.gp) for ET_REL and ELFv2
- Fix fuzzed PE timeout bug, clamping vsize
- Reduce false positives in the PL PEs id
- Add Rust and D demanglers
- Add new C++ demangler
- Add IBM XL demangler
- Add ARM ABI demangler
- Add ldmap.r2.js script to load sourceline from ldscript map files
- Fix more bigendian parsing bugs for PE
- Fix kernelcache parsing on bigendian
- Fix SFC parsing on big endian
- Fix big endian parsing bug for MDT
- Implement idd command
- Apply PPC64 TOC16 relocations to addis/ld immediates on ET_REL
- Clean LE endian-safe parser
- Detect ppc32 e500/e500mc cpu from .PPC.EMB.apuinfo note
- Fix memory leaks in the mdmp parser
- Fix misaligned PPC ET_REL REL24/REL14 relocation targets
build
- Fix riscv_cs cap
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Radare2: Libre Reversing Framework for Unix Geeks
Current git master branch is 6.2.7, next release will be 6.2.8.
Description
r2 is a complete rewrite of radare. It provides a set of libraries, tools and
plugins to ease reverse engineering tasks. Distributed under LGPLv3, despite
each plugin can have different licenses (see r2 -Lj for details)
The radare project started as a simple command-line hexadecimal editor focused on forensics. Today, r2 is a full-featured low-level command-line tool with support for scripting with the embedded Javascript interpreter or via r2pipe.
r2 can edit files on local hard drives, view kernel memory, and debug programs locally or via a remote gdb/windbg servers. r2's wide architecture support allows you to analyze, emulate, debug, modify, and disassemble any binary.
Installation
Download the last released binaries.
The recommended way to install radare2 is from Git repository source:
git clone https://github.com/radareorg/radare2
radare2/sys/install.sh
- Run
sys/install.shfor the default acr+make+symlink installation - meson/ninja (muon/samu also works) and make builds are supported.
Nix
radare2 provides Nix packaging under dist/nix.
Source Build
- r2 can be installed from
gitor viapipusingr2env. - Windows builds require meson and msvc or mingw as compilers
- To uninstall the current build of r2 run
make uninstall - To uninstall ALL the system installations of r2 do:
sudo make purge
On Windows use the .bat scripts and 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
Popular Plugins:
Using the r2pm tool you can browse and install many plugins and tools that use radare2.
- iaito: The official Qt graphical interface
- keystone Assembler instructions using the Keystone library
- decai Decompiler based on AI
- r2ai Run a Language Model in localhost with Llama inside r2!
- r2dec: A decompiler based on r2 written in JS, accessed with the
pddcommand - r2diaphora: Diaphora's binary diffing engine on top of radare2
- r2flutter: Dart/Flutter AOT snapshot analysis for Android and iOS apps
- r2frida: The frida io plugin. Start r2 with
r2 frida://0to use it - r2ghidra: The standalone native ghidra decompiler accessible with
pdg - r4ghidra: Feel the radare joy inside your Ghidra
- r2papi High level api on top of r2pipe
- r2pipe Script radare2 from any programming language
- r2poke Integration with GNU/Poke for extended binary parsing capabilities
- goresym: Import GoReSym symbol as flags
- r2yara Run Yara from r2 or use r2 primitives from Yara
- radius2: A fast symbolic execution engine based on boolector and esil
- r2sarif import/extend/export SARIF documents
- r2hermes Disassembler and analyzer for React Native Hermes bytecode
- r2renef Renef IO Plugin for Radare2 - Dynamic Android Instrumentation
- r2unity: Inspect Unity IL2CPP metadata and native binaries from radare2
- warrp Native radare2 plugin for the binary ninja's WARP format
Usage
These are the first steps to use r2, read the book or find tutorials for more details
$ 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
Many plugins are included in r2 by default. But you can extend its capabilities by using the r2pm package manager.
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
Resources
- Official Book: Read about r2 usage
- COMMUNITY.md: Community engagement and loose guidelines
- CONTRIBUTING.md: Information about reporting issues and contributing. See also Contributing
- DEVELOPERS.md: Development guidelines for r2
- SECURITY.md: Instructions for reporting vulnerabilities
- USAGE.md: Some example commands
- INSTALL.md: Installation instructions using make or meson
Documentation
Learn more about r2 watching youtube talks from r2con. There are also many blogposts, slidedecks and the official radare2 book, but it's always a good idea to join any of the official chats and drop your questions or feedback there.
Community
- Website: https://www.radare.org/
- Discord: Server
- Mastodon: @radareorg
- Telegram: Main and Side channels
- irc.libera.chat:
#radare,#radare_side - Matrix:
#radare:matrix.org
Supported Platforms
Operating Systems
Windows (since XP for x86/x64/arm64), Linux, Darwin, GNU/Hurd, Apple's {Mac,i,iPad,watch}OS, Android, Wasmer, [Dragonfly, Net, Free, Open] BSD, Z/OS, QNX, SerenityOS, Solaris, AIX, Haiku, Vinix, FirefoxOS.
Architectures
i386, x86-64, Alpha, ARM, AVR, BPF, sBPF, MIPS, PowerPC, SPARC, RISC-V, SH, m68k, S390, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, PDP11, m680x, V850, CRIS, XAP (CSR), PIC, LM32, 8051, 6502, i4004, i8080, Propeller, EVM, OR1K Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, xcore, NIOS II, Java, Dalvik, Pickle, WebAssembly, MSIL, EBC, TMS320 (c54x, c55x, c55+, c64x), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI, lm32, MSIL, InfernoDis, UXN, Cosmac, PythonBytecode, Sharp sm5xx MCPus, FreeScale QIQa, MCORE, mcs96, RSP, SuperH-4, VAX, KVX, Am29000, LOONGARCH, JDH8, s390x, STM8, Epson E0C62.
File Formats
ELF, Mach-O, Fatmach-O, PE, PE+, MZ, COFF, XCOFF, OMF, TE, XBE, SEP64, BIOS/UEFI, BFLT, Pebble apps, Apple Dyldcache, Kernelcache, MCLF trustlets, DEX, ART, Java class, Android boot image, Plan9 executables, Amiga HUNK, ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump), PDP11, XTAC, CGC, DotNet, WASM (WebAssembly binary), Commodore VICE emulator, DOL, QNX, WAD, OFF, TIC-80, GB/GBA, PSX, PRG (C64), Apple Classic PEF, NDS, z64, and N3DS ...
FileSystems
Mount in userland several filesystems like NTFS, FAT, HFS+, EXT, APFS, BeosFS, BFS, MINIX, ReiserFS, SFS, ubifs, ufs, jfs, ISO9660, UDF, xfs