Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
smithery.ai avatar

Radare2

  • 74 installs
  • smithery.ai

Helps with ai & agent building tasks during AI-assisted development.

About

radare2 is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • radare2
  • AI & Agent Building
  • AI-coding skill

Radare2 by the numbers

  • 74 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #5,535 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/smithery.ai --skill radare2

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs74
Repositorysmithery.ai

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

Radare2 Reverse Engineering

Radare2 (r2) is a complete framework for reverse engineering and binary analysis.

Quick Start

Open a binary for analysis:

r2 -A binary      # Open with auto-analysis
r2 -d binary      # Open in debug mode
r2 -w binary      # Open in write mode (for patching)

Essential Commands

Navigation & Analysis

CommandDescription
aaaAnalyze all (functions, refs, calls)
aflList all functions
s addrSeek to address
s mainSeek to main function
pdfPrint disassembly of current function
pd 20Print 20 instructions

Information Gathering

CommandDescription
iFile info
ieEntrypoints
iSSections
iiImports
iEExports
izStrings in data sections
izzAll strings in binary

Cross-References

CommandDescription
axt addrFind xrefs to address
axf addrFind xrefs from address
afxXrefs in current function

Visual Modes

CommandDescription
VVisual mode
VVGraph mode
vVisual panels

Debugging

CommandDescription
db addrSet breakpoint
dcContinue execution
dsStep instruction
dsoStep over
drShow registers
dmMemory maps

Searching

CommandDescription
/x 9090Search hex bytes
/ stringSearch string
/R patternSearch ROP gadgets
/c opcodeSearch assembly pattern

Writing & Patching

CommandDescription
wa nopWrite assembly at current position
wx 90Write hex bytes
wao nopWrite opcode (replaces instruction)

Common Workflows

Analyze Unknown Binary

r2 -A binary
> i           # Basic info
> iS          # Check sections
> afl         # List functions
> s main      # Go to main
> pdf         # Disassemble

Find Interesting Strings

r2 binary
> izz~password    # Search for "password" in strings
> izz~flag        # Search for "flag"
> axt @@ str.*    # Find xrefs to all strings

Trace Function Calls

r2 -A binary
> afl~sym.        # List imported functions
> axt sym.strcmp  # Find where strcmp is called
> s [address]
> pdf

Patch Binary

r2 -w binary
> s 0x401000      # Seek to instruction
> pd 1            # View current instruction
> wa jmp 0x401050 # Patch with jump
> wao nop         # Or NOP it out

Debug Session

r2 -d binary
> aaa
> db main         # Break at main
> dc              # Run
> dr              # View registers
> ds              # Step
> px 32 @ rsp     # View stack

Persistent Sessions (Large Binaries)

For large binaries, avoid re-analyzing on every command. Use one of these approaches:

Option 1: r2 HTTP Server

Start r2 with HTTP server, then send commands via curl:

# Terminal 1: Start server (keeps session alive)
r2 -q -c 'aaa; =h 9090' binary

# Terminal 2+: Send commands without re-analyzing
curl -s "http://localhost:9090/cmd/afl"
curl -s "http://localhost:9090/cmd/pdf%20@%20main"
curl -s "http://localhost:9090/cmd/axt%200x401000"

Option 2: r2pipe with Persistent Process

import r2pipe
r2 = r2pipe.open("binary")
r2.cmd("aaa")  # Analyze once
# Now run many commands on same session
print(r2.cmd("afl"))
print(r2.cmd("pdf @ main"))
print(r2.cmd("izz~flag"))
# Session stays open until:
r2.quit()

Option 3: Projects (Save/Restore Analysis)

r2 binary
> aaa              # Analyze (slow)
> Ps myproject     # Save project
> q

# Later, restore instantly:
r2 -p myproject binary
> afl              # No re-analysis needed

Option 4: Named Pipe

# Create pipe and start r2
mkfifo /tmp/r2pipe
r2 -q -i /tmp/r2pipe binary &

# Send commands
echo "aaa" > /tmp/r2pipe
echo "afl" > /tmp/r2pipe

Large Binary Tips

  • Use aa instead of aaa for faster initial analysis
  • Limit analysis depth: e anal.depth=5
  • Analyze only specific functions: af @ 0x401000
  • Skip analysis entirely: r2 -n binary then analyze on-demand
  • Use rabin2 for quick info without loading into r2

Non-Interactive Analysis

For one-off commands, use r2 with -q (quiet) and -c:

# List all functions
r2 -q -c 'aaa; afl' binary

# Disassemble main
r2 -q -c 'aaa; s main; pdf' binary

# Get strings containing "flag"
r2 -q -c 'izz~flag' binary

# Get imports
r2 -q -c 'ii' binary

# Analyze and output JSON
r2 -q -c 'aaa; aflj' binary | jq .

Companion Tools

rabin2 - Binary Info

rabin2 -I binary    # File info
rabin2 -z binary    # Strings
rabin2 -i binary    # Imports
rabin2 -e binary    # Entrypoints
rabin2 -S binary    # Sections

rasm2 - Assembler/Disassembler

rasm2 -a x86 -b 64 'nop'           # Assemble
rasm2 -a x86 -b 64 -d '90'         # Disassemble
rasm2 -a arm -b 32 'mov r0, 1'     # ARM assembly

rahash2 - Hashing

rahash2 -a md5 binary
rahash2 -a sha256 binary
rahash2 -a all binary

rafind2 - Pattern Search

rafind2 -x 4141 binary    # Find hex pattern
rafind2 -s "flag" binary  # Find string

Architecture-Specific Notes

x86/x64

  • Use e asm.syntax=att for AT&T syntax
  • Common calling conventions: cdecl, fastcall, System V AMD64

ARM

  • e asm.arch=arm and e asm.bits=32 or 64
  • Check for Thumb mode with e asm.bits=16

MIPS

  • e asm.arch=mips
  • Big/little endian: e cfg.bigendian=true/false

Tips

1. Use ? after any command for help: pd?, a?, s? 2. Append j for JSON output: aflj, ij, izj 3. Append q for quiet output: aflq 4. Use @@ for iteration: pdf @@ fcn.* 5. Use ~ for grep: afl~main 6. Use ~: for column selection: afl~:0 7. Save project with Ps name and load with Po name

See references/REFERENCE.md for advanced usage.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.