温馨提示×

centos反汇编指令含哪些

小樊
43
2026-10-20 16:55:43
栏目: 智能运维

在 CentOS(本质是基于 Linux 的内核 + GNU 工具链)中,所谓“反汇编指令”通常指用来把可执行文件、目标文件或内存中的机器码转换成汇编代码的命令和工具。下面按常用工具和对应指令来总结。


一、最常用的反汇编工具与指令

1. objdump(最常用)

GNU binutils 自带,适合反汇编 ELF 文件。

objdump -d test

反汇编所有可执行代码段。

objdump -D test

反汇编所有段(包括数据段)。

objdump -d -M intel test

使用 Intel 语法(默认是 AT&T)。

objdump -S test

混合显示源码 + 汇编(需要 -g 编译)。

objdump -d -m i386:x86-64 test

指定架构(如 x86-64)。


2. gdb(调试时反汇编)

适合运行时反汇编。

gdb ./test

进入后:

disassemble main

反汇编函数 main。

disassemble /m main

带源码的反汇编。

disassemble 0x400520, 0x400540

反汇编指定地址范围。

x/10i $pc

查看当前指令指针处的 10 条汇编。


3. ndisasm(简单裸机/Shellcode 反汇编)

来自 nasm 包。

ndisasm -b 32 shellcode.bin
ndisasm -b 64 shellcode.bin

4. readelf(辅助分析,不算严格反汇编)

用于查看 ELF 结构。

readelf -h test
readelf -S test
readelf -s test

二、按使用场景分类

✅ 反汇编可执行文件

  • objdump -d
  • gdb disassemble

✅ 反汇编目标文件(.o)

  • objdump -d file.o

✅ 反汇编 Shellcode / 二进制流

  • ndisasm
  • objdump -b binary -m i386 -D shellcode.bin

✅ 内核 / 模块反汇编

  • objdump -d vmlinux
  • crash + dis

三、AT&T vs Intel 语法对照(CentOS 默认)

AT&T(默认) Intel
mov %rax, %rbx mov rbx, rax
add $1, %eax add eax, 1

切换方式:

objdump -M intel

四、常见组合示例

# 编译
gcc -g -o test test.c

# 反汇编
objdump -d -M intel test

# 调试反汇编
gdb ./test
(gdb) disassemble main

如果你愿意,我可以:

  • 给你 CentOS 实际示例输出
  • 讲 内核态反汇编
  • 对比 CentOS vs Ubuntu 工具差异
  • 讲 如何从 crash / core 反汇编

你更关心哪一类?

0 踩