温馨提示×

如何快速掌握centos反汇编指令

小樊
61
2026-10-03 05:24:28
栏目: 智能运维

要快速掌握 CentOS 下的反汇编指令,可以按“环境 → 工具 → 常用命令 → 实战练习”的路线来,不需要一开始啃完汇编全书。


一、准备环境(CentOS)

# 安装常用工具
sudo yum install -y binutils gcc gdb objdump readelf nasm
  • gcc:编译 C
  • objdump:反汇编
  • gdb:动态调试
  • readelf:查看 ELF 结构
  • nasm:写汇编用(可选)

二、核心反汇编工具与指令

1️⃣ objdump(最常用)

# 反汇编整个可执行文件
objdump -d a.out

# 反汇编并显示源码(需 -g 编译)
gcc -g -o a.out a.c
objdump -S a.out

# 只看 main 函数
objdump -d a.out | grep -A 30 '<main>:'

常用参数:

  • -d:反汇编
  • -S:源码+汇编
  • -M intel:Intel 语法(默认是 AT&T)
objdump -d -M intel a.out

2️⃣ gdb(动态反汇编)

gdb ./a.out

常用指令:

disassemble main        # 反汇编函数
disassemble             # 反汇编当前位置
x/10i $rip              # 查看当前指令
break main
run
stepi                  # 单步执行一条指令
info registers         # 查看寄存器

3️⃣ readelf(辅助理解)

readelf -h a.out      # ELF 头
readelf -S a.out      # 段表
readelf -s a.out      # 符号表

三、快速理解 AT&T vs Intel 语法

CentOS 默认 AT&T:

mov %rsp, %rbp

Intel(更直观):

mov rbp, rsp

✅ 建议初学用:

objdump -M intel

四、最短学习路径(3 天够用)

Day 1:能看反汇编

  • 写简单 C:
int add(int a, int b){
    return a+b;
}
  • 反汇编看 push / mov / ret

Day 2:结合 gdb

  • 单步执行
  • 看寄存器变化

Day 3:理解调用约定

  • x86_64:
    • 参数:RDI, RSI, RDX, RCX…
    • 返回值:RAX
    • 栈:RSP / RBP

五、推荐练习命令组合

gcc -g -o test test.c
objdump -S -M intel test
gdb ./test

六、如果你想“更快”

告诉我:

  • ✅ 是 x86 / x86_64 / ARM?
  • ✅ 目的是 逆向 / 漏洞 / 性能 / 面试?
  • ✅ 是否零汇编基础?

我可以直接给你定制 1 周速成路线 + 示例。

0 踩