温馨提示×

centos反汇编指令怎查

小樊
41
2026-09-12 02:05:15
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)上,常用的**反汇编(disassembly)**工具和指令主要有以下几类,按使用场景给你梳理一下:


一、最常用的反汇编命令

1️⃣ objdump(最常用)

一般系统自带(来自 binutils)

objdump -d 可执行文件

常用选项:

objdump -d test          # 反汇编代码段
objdump -D test          # 反汇编所有段
objdump -S test          # 源码+汇编(需编译时加 -g)
objdump -d -M intel test # Intel 语法(默认是 AT&T)

示例:

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

2️⃣ gdb(调试时反汇编)

适合运行时分析

gdb ./test

进入 gdb 后:

disassemble main
disassemble 0x400500
disassemble /m main   # 混合源码

设置 Intel 语法:

set disassembly-flavor intel

3️⃣ ndisasm(针对裸二进制)

适合 shellcode、 boot 等

ndisasm -b 32 file.bin
ndisasm -b 64 file.bin

安装:

yum install nasm

4️⃣ readelf(查看结构,不直接反汇编)

配合 objdump 使用

readelf -h test
readelf -S test

二、查看某个函数的反汇编

objdump -d test | grep -A 20 "<main>:"

或:

gdb -q ./test
(gdb) disassemble main

三、CentOS 可能需要安装的包

yum install binutils gdb nasm

四、常见语法区别

  • AT&T(默认):
    mov %rsp, %rbp
    
  • Intel(推荐):
    mov rbp, rsp
    

五、如果你是想“查某个指令怎么用”

比如查 call、syscall 含义:

man 2 syscall

或参考:

  • Intel SDM
  • https://www.felixcloutier.com/x86/

如果你能说清楚:

  • 是 程序 / 内核 / shellcode / 驱动
  • 是 静态分析还是调试

我可以给你更精准的命令示例。

0 踩