用 radare2 在 CentOS 上反汇编一个程序,流程和其他 Linux 发行版基本一致。下面给你一个从安装到反汇编的完整示例。
sudo yum install -y git make gcc
git clone https://github.com/radareorg/radare2.git
cd radare2
./sys/install.sh
安装完成后检查:
r2 -v
CentOS 默认仓库通常没有 radare2,但第三方仓库可能有:
sudo yum install epel-release
sudo yum search radare2
如果没有,推荐用源码安装。
示例:用 C 写一个简单程序
// test.c
#include <stdio.h>
int main() {
printf("Hello CentOS\n");
return 0;
}
编译:
gcc -m64 -O0 -o test test.c
r2 test
常用选项:
r2 -d test # 调试模式
r2 -A test # 自动分析
如果没用 -A 启动,手动分析:
aaa
说明:
aaa:深度分析函数、符号、引用aaaa:更激进(慢)afl
示例输出:
0x00401000 main
0x00401020 printf
s main
pdf
说明:
s main:跳转到 mainpdf:打印反汇编(disassemble function)ie
或:
i
| 命令 | 作用 |
|---|---|
aaa |
自动分析 |
afl |
列出函数 |
s <addr> |
跳转到地址 |
pdf |
反汇编当前函数 |
pd <n> |
反汇编 n 条指令 |
px |
十六进制 dump |
i |
文件信息 |
iz |
字符串 |
pdf @ main |
直接反汇编 main |
q |
退出 |
r2 -v-m64 或 -m32如果你愿意,我也可以:
只要把你的使用场景告诉我即可。