温馨提示×

新手怎么学centos反汇编指令

小樊
37
2026-10-06 03:09:32
栏目: 智能运维

如果你是一个新手,想学习 CentOS 下的反汇编指令,可以按下面这个路线来,既不枯燥也容易上手。


一、先搞清楚几个概念(很重要)

在 CentOS 里说“反汇编”,通常指:

  • 反汇编:把机器码(二进制)转成汇编代码
  • 常见场景:
    • 分析 ELF 可执行文件
    • 调试 C/C++ 程序
    • 学习 Linux 底层 / 安全 / 逆向

常用工具:

  • objdump ✅(最基础)
  • gdb ✅(调试 + 反汇编)
  • readelf(看 ELF 结构)
  • nm(看符号)

二、CentOS 环境准备

1. 安装必要工具

sudo yum install -y binutils gdb gcc
  • binutils → 包含 objdump
  • gdb → 调试器
  • gcc → 用来生成测试程序

三、从最简单的例子开始

1. 写一个小 C 程序

// hello.c
#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int x = add(3, 4);
    printf("%d\n", x);
    return 0;
}

编译(不要优化,方便看):

gcc -O0 -g -o hello hello.c

四、用 objdump 反汇编(新手第一步)

基本反汇编

objdump -d hello

只看 main 函数:

objdump -d hello | grep -A 20 '<main>:'

反汇编 + 源码对照(强烈推荐)

objdump -S hello

你会看到:

push   %rbp
mov    %rsp,%rbp
...

这就是 x86-64 汇编


五、用 gdb 学反汇编(更直观)

1. 启动 gdb

gdb ./hello

2. 查看函数反汇编

disassemble main

3. 边跑边看(推荐)

break main
run
nexti
disassemble

nexti = 单步执行一条汇编指令


六、新手必懂的汇编基础(x86-64)

不用全学,先记住这些:

指令 含义
mov 赋值
push/pop 栈操作
call 函数调用
ret 返回
add/sub 加减
cmp/jmp 判断跳转

寄存器:

  • rax:返回值
  • rdi, rsi:第1、2个参数
  • rbp/rsp:栈帧

七、推荐学习顺序(很重要)

  1. ✅ 会用 objdump -d
  2. ✅ 会用 gdb disassemble
  3. ✅ 能看懂 main 和函数调用
  4. ✅ 学 AT&T 汇编语法(CentOS 默认)
  5. ✅ 再学逆向 / 漏洞分析

八、学习资料(新手友好)

  • 《逆向工程核心原理》(入门)
  • 《程序员的自我修养》
  • B站搜:CentOS 反汇编 objdump
  • 官方文档:
    man objdump
    man gdb
    

如果你愿意,我可以:

  • 帮你 逐行解释一段反汇编代码
  • 教你 如何看函数调用过程
  • 给你 新手练习小任务

你现在是想 学逆向安全,还是 搞懂程序底层运行?

0 踩