温馨提示×

如何用radare2反汇编linux

小樊
43
2026-10-03 11:41:44
栏目: 智能运维

下面给你一个用 radare2 在 Linux 下反汇编程序的实用入门指南,从安装到常见操作。


一、安装 radare2(Linux)

Debian / Ubuntu

sudo apt update
sudo apt install radare2

从源码安装(推荐,版本最新)

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

安装完成后检查:

r2 -v

二、基本反汇编流程

1. 用 radare2 打开程序

r2 ./target_binary

或只读模式(不修改文件):

r2 -r ./target_binary

2. 分析二进制文件

进入 radare2 后,先进行分析:

aaa

aaa = 分析函数、符号、引用等(最常用)

查看分析进度:

afl

列出所有函数(function list)


3. 进入某个函数反汇编

假设有一个 main 函数:

s main

(seek 到 main)

然后:

pdf

pdf = print disassembly of function

示例输出:

┌ 23: int main (int argc, char **argv);
│ 0x00401136      push rbp
│ 0x00401137      mov rbp, rsp
│ 0x0040113a      mov edi, str.Hello
│ 0x0040113f      call sym.puts
│ 0x00401144      mov eax, 0
│ 0x00401149      pop rbp
└ 0x0040114a      ret

三、常用反汇编命令速查

命令 作用
aaa 全分析
afl 列出函数
s addr 跳到地址
pdf 反汇编当前函数
pd 20 反汇编 20 条指令
pdf @ main 直接反汇编 main
izz 查看字符串
ai 查看指令信息
e asm.bytes=true 显示机器码
e asm.flavor=att 切换为 AT&T 语法

四、图形化反汇编(非常推荐)

V

进入可视化模式

再按:

p

切换不同视图(图形 / 汇编 / 十六进制)

退出:

q

五、查看字符串和引用

查看字符串

izz

查找字符串引用

izz~password

然后:

axt @ addr

六、示例:完整流程

r2 ./crackme
aaa
afl
s main
pdf

七、常见注意点

  • strip 过的程序:函数名可能消失,用 afl + 地址分析
  • 动态链接:用 ii 看导入函数
  • ARM / MIPS:radare2 自动识别架构
  • 调试:可加 -d 参数
    r2 -d ./program
    

如果你愿意,我可以:

  • 给你 具体某个二进制示例的反汇编解释
  • 对比 radare2 vs objdump / Ghidra
  • 教你 如何找 main / 破解逻辑 / 逆向 flag

你现在是想学基础使用还是实战逆向?

0 踩