温馨提示×

centos怎样查看反汇编指令

小樊
49
2026-09-06 07:23:39
栏目: 智能运维

在 CentOS(或其他 Linux 发行版)上查看反汇编指令,通常有以下几种常见方式,取决于你想反汇编什么(可执行文件、进程、内核模块等)。


一、使用 objdump 查看可执行文件/目标文件反汇编

1. 安装(一般已默认安装)

yum install -y binutils

2. 基本用法

objdump -d 可执行文件

示例:

objdump -d ./a.out

3. 常用参数

objdump -d -M intel ./a.out     # Intel 语法(默认是 AT&T)
objdump -S ./a.out              # 源码 + 汇编混合
objdump -D ./a.out              # 反汇编所有段

二、使用 gdb 查看运行或调试中的反汇编

1. 安装

yum install -y gdb

2. 进入 gdb

gdb ./a.out

3. 查看反汇编

(gdb) disassemble main

使用 Intel 语法:

(gdb) set disassembly-flavor intel
(gdb) disassemble main

查看某地址:

(gdb) disassemble 0x400526

三、查看正在运行进程的反汇编

1. 用 gdb 附加进程

gdb -p 进程PID

然后:

(gdb) disassemble

或查看某个函数:

(gdb) disassemble 函数名

四、使用 nm / readelf 辅助分析

nm ./a.out          # 查看符号
readelf -h ./a.out  # 查看 ELF 头

五、内核或模块反汇编(进阶)

内核函数反汇编

cat /proc/kallsyms | grep 函数名

配合 gdb vmlinux 使用(需调试内核)。


六、快速对比示例

场景 命令
静态反汇编 objdump -d file
带源码 objdump -S file
调试中 gdb filedisassemble
运行中进程 gdb -p pid
Intel 语法 -M intelset disassembly-flavor intel

如果你能说明:

  • ✅ 是 用户程序 / 内核 / 动态库
  • ✅ 想用 AT&T 还是 Intel 语法
  • ✅ 是否需要在 运行时 查看

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

0