学习 CentOS 下的反汇编指令,本质上是学习 Linux 平台上的汇编与反汇编工具链,以及 x86/x64 汇编基础。下面我按“从零到能上手”的路径给你一个系统学习路线。
在 CentOS 上,“反汇编”通常包含三类目标:
不同目标,工具和学习重点不同。
sudo yum install -y gcc gcc-c++ gdb binutils
sudo yum install -y objdump readelf nasm
常用工具说明:
objdump:反汇编 ELFgdb:调试 + 查看汇编readelf:分析 ELF 结构nasm:写汇编用(可选)// test.c
int add(int a, int b) {
return a + b;
}
编译(不优化,方便看):
gcc -O0 -c test.c -o test.o
反汇编:
objdump -d test.o
你会看到类似:
0000000000000000 <add>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 89 7d fc mov %edi,-0x4(%rbp)
7: 89 75 f8 mov %esi,-0x8(%rbp)
a: 8b 45 fc mov -0x4(%rbp),%eax
d: 03 45 f8 add -0x8(%rbp),%eax
10: 5d pop %rbp
11: c3 ret
✅ 这是最推荐的学习方式:
C → 汇编 → 反汇编对照学
objdump -d ./a.out # 反汇编
objdump -S ./a.out # 汇编+源码对照
objdump -x ./a.out # 查看 ELF 信息
gdb ./a.out
(gdb) disassemble main
(gdb) layout asm
(gdb) info registers
进入函数后:
(gdb) disas
rax / rbx / rcx / rdxrsp / rbprdi / rsi(函数参数)push rbpmov rbp, rspobjdump -d /bin/ls | less
readelf -s a.out
strip a.out
objdump -d a.out
你可以直接说:
我可以给你针对性练习 + 示例二进制 + 一步步实验。
要不要我直接带你做 “第一个 CentOS 反汇编实验”?