Radare2使用全解
字数 734 2025-08-25 22:58:56

Radare2 使用全解

1. 简介

Radare2 是一款功能强大的逆向工程框架,支持多种平台和文件格式。它由多个组件组成,每个组件负责不同的功能:

  • rax2:数值转换
  • rasm2:反汇编和汇编
  • rabin2:查看文件格式
  • radiff2:文件差异比较
  • ragg2/ragg2-cc:生成shellcode
  • rahash2:哈希算法和加密算法
  • radare2:整合了上述工具的主程序

2. 安装

从官方GitHub仓库获取源代码并安装:

git clone https://github.com/radare/radare2
cd radare2
sys/install.sh

3. 组件详解

3.1 rax2 (数值转换)

rax2 -s 414141  # 返回 "AAAA"

3.2 rabin2 (文件格式分析)

常用命令:

rabin2 -I hello_pwn  # 显示文件信息
rabin2 -l hello_pwn  # 显示依赖库
rabin2 -zz hello_pwn # 显示字符串信息

修改文件选项:

rabin2 -O?  # 查看可修改选项
rabin2 -O p/.text/r a.out  # 修改.text段权限为只读

3.3 rasm2 (汇编/反汇编)

rasm2 -L | head  # 查看支持的架构
rasm2 -a arm "nop;nop;nop;"  # ARM汇编
rasm2 -a arm -d 0000a0e10000a0e10000a0e1  # ARM反汇编

3.4 ragg2/ragg2-cc (shellcode生成)

示例C代码:

int main() {
    write(1,"hi\n", 3);
    exit(0);
}

编译为shellcode:

ragg2-cc -a x86 -b 32 -d -o test test.c  # 生成ELF文件
ragg2-cc -a x86 -b 32 -d -x test.c  # 生成16进制shellcode

使用xor编码器:

ragg2 -B shellcode_hex  # 使用xor编码

3.5 rahash2 (哈希计算)

rahash2 -L  # 查看支持的算法
rahash2 -a md5 -s admin  # 计算"admin"的MD5

4. radare2 主程序

4.1 基本使用

r2 target_bin  # 分析文件
r2 -d target_bin  # 调试模式

命令格式:
[.][times][cmd][~grep][@[@iter]addr!size][|>pipe]

4.2 分析命令

aaa  # 完整分析
af @ main  # 分析特定函数
pdf @ main  # 打印函数汇编代码

4.3 图形模式

VV  # 进入图形模式
# 图形模式下操作:
# hjkl - 移动
# p/P - 切换图形模式
# : - 输入命令
# ! - 执行命令
# 空格 - 切换图形/文本模式

4.4 补丁功能

r2 -w target_bin  # 以可写模式打开
wa "nop;nop;nop;"  # 写入汇编指令
wx 90909090  # 写入16进制数据
Vp  # 可视化汇编/补丁
A   # 在可视化模式下编辑

4.5 搜索功能

/  # 搜索字符串
/r  # 搜索ROP gadgets
aae  # 动态检测交叉引用

4.6 反编译功能

pdc  # 查看伪代码

4.7 ESIL 模拟执行

e asm.esil = true  # 显示ESIL代码
ae?  # ESIL相关命令

5. 高级功能

5.1 脚本和自动化

Radare2支持多种脚本语言接口,包括Python、JavaScript等。

5.2 插件系统

Radare2有丰富的插件系统,可以扩展功能。

6. 总结

Radare2是一个功能全面的逆向工程框架,特别适合在以下场景使用:

  • 跨平台逆向分析
  • 文件格式修改和补丁
  • 无F5反编译支持的平台
  • 需要模拟执行的场景

通过熟练掌握Radare2的各种组件和功能,可以高效地进行二进制分析和修改工作。

Radare2 使用全解 1. 简介 Radare2 是一款功能强大的逆向工程框架,支持多种平台和文件格式。它由多个组件组成,每个组件负责不同的功能: rax2:数值转换 rasm2:反汇编和汇编 rabin2:查看文件格式 radiff2:文件差异比较 ragg2/ragg2-cc:生成shellcode rahash2:哈希算法和加密算法 radare2:整合了上述工具的主程序 2. 安装 从官方GitHub仓库获取源代码并安装: 3. 组件详解 3.1 rax2 (数值转换) 3.2 rabin2 (文件格式分析) 常用命令: 修改文件选项: 3.3 rasm2 (汇编/反汇编) 3.4 ragg2/ragg2-cc (shellcode生成) 示例C代码: 编译为shellcode: 使用xor编码器: 3.5 rahash2 (哈希计算) 4. radare2 主程序 4.1 基本使用 命令格式: [.][times][cmd][~grep][@[@iter]addr!size][|>pipe] 4.2 分析命令 4.3 图形模式 4.4 补丁功能 4.5 搜索功能 4.6 反编译功能 4.7 ESIL 模拟执行 5. 高级功能 5.1 脚本和自动化 Radare2支持多种脚本语言接口,包括Python、JavaScript等。 5.2 插件系统 Radare2有丰富的插件系统,可以扩展功能。 6. 总结 Radare2是一个功能全面的逆向工程框架,特别适合在以下场景使用: 跨平台逆向分析 文件格式修改和补丁 无F5反编译支持的平台 需要模拟执行的场景 通过熟练掌握Radare2的各种组件和功能,可以高效地进行二进制分析和修改工作。